newsease.js - News: GNU ease.js 0.2.9 released

 
 
Latest News
GNU ease.js 0.2.9 released posted by mikegerwitz, Wed 08 Nov 2017 04:18:46 AM UTC
GNU ease.js 0.2.8 released posted by mikegerwitz, Sat 16 Jul 2016 04:30:15 AM UTC
GNU ease.js 0.2.7 released [stable] posted by mikegerwitz, Tue 27 Oct 2015 03:19:48 PM UTC
GNU ease.js 0.2.6 released posted by mikegerwitz, Sat 15 Aug 2015 04:35:31 AM UTC
GNU ease.js 0.2.5 release [stable] posted by mikegerwitz, Thu 28 May 2015 05:46:52 AM UTC

GNU ease.js 0.2.9 released

Item posted by Mike Gerwitz <mikegerwitz> on Wed 08 Nov 2017 04:18:46 AM UTC.

This release succeeds v0.2.8, which was released 15 July, 2016.  There are no backwards-incompatible changes, but certain default behaviors have changed (see changes below).  Support continues for ECMAScript 3+.

Changes between 0.2.8 and 0.2.9
-------------------------------

  • Class constructors are now virtual by default.  The manual has been updated with information about this change.


  • Method overrides are now implicitly virtual.  This is consistent with other object-oriented languages and solves the problem with breaking stackable traits if the author forgets to supply `virtual' to an overridden (intended-to-be-stackable) method.  The manual has been updated.


  • New methods `Class.assertInstanceOf' and its alias `Class.assertIsA' have been added to eliminate boilerplate of enforcing polymorphism.  They are like `Cass.isInstanceOf' and `Class.isA' respectively, but will fail by throwing a TypeError.  The manual has been updated to include these two methods, along with some rewording of the containing section.


  • `Class.extend(Base)', where `Base' is a class, will now assume that you forgot the class definition and throw an error rather than trying to use Base' as the definition object.


  • [bugfix] Using `#constructor' (alias of `#__construct') in Error subtypes will no longer complain about an attempt to redefined `#__construct'.


  • `Constructors' section of manual has been reworded and references to poor practices (static classes, Singletons) have been removed.


  • Manual (and website) examples modernized to use ECMAScript 6 syntax.  Users must still write ES3 syntax if they want to use ease.js in ES3 environments, of course.


  • INSTALL file added to repository (removed from .gitignore).  This was previously (and unintentionally) only available in the distribution archives.


  • Copyright years updated on combined and minified distributions.


This release contains a number of bugfixes for traits, which is stable but
still under development:

  • [bugfix] Methods of trait class supertypes now apply with the correct context.  (Feature added in 0.2.7)


  • [bugfix] Traits extending classes may now be named using the `Trait('Name').extend(C, dfn)' notation.  (Feature added in 0.2.7)


  • [bugfix] Can now mix in traits with class supertypes that define constructors.  (Feature added in 0.2.7)


  • [bugfix] `this.__inst' in traits now correctly references the object mixed into; previously, this was `undefined'.


I apologize for the (extreme) delay in this release: the process was stalled for many months while waiting for certain legal documents after my employer was purchased by another company.

Release notes for past releases are available at:
  https://www.gnu.org/software/easejs/release-notes.html

More information, including an online manual, can be found on GNU's website:
  https://gnu.org/software/easejs

 

Back to the top

Powered by Savane 3.13-4448.
Corresponding source code