ease.js - News
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
Powered by Savane 3.14-8aba.
Corresponding source code