[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GNU ease.js 0.2.9 released

From: Mike Gerwitz
Subject: GNU ease.js 0.2.9 released
Date: Tue, 07 Nov 2017 23:11:38 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)

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+.

About GNU ease.js
GNU ease.js is a classical object-oriented framework for JavaScript,
intended to eliminate boilerplate code and "ease" the transition into
JavaScript from other object-oriented languages.  Features include
simple and intuitive class definitions; classical inheritance;
abstract classes and methods; traits as mixins; interfaces; public,
protected, and private access modifiers; static and constant members;
and more.  Please see the comprehensive documentation at
<> for more information,
examples, and implementation details.

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:

More information, including an online manual, can be found on GNU's

Getting GNU ease.js
Here are the compressed sources and a GPG detached signature[*]:

Alternative download options are available at:

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify easejs-0.2.9.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver --recv-keys 

and rerun the 'gpg --verify' command.

Free Your JavaScript!

Explore why online freedoms are of practical importance with
my LibrePlanet 2016 talk:

Mike Gerwitz
Free Software Hacker+Activist | GNU Maintainer & Volunteer
GPG: D6E9 B930 028A 6C38 F43B  2388 FEF6 3574 5E6F 6D05

Attachment: signature.asc
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]