Version 0.2.5
Released 28 May 2015

GNU ease.js can be downloaded in a variety of formats, depending on the environment in which it will be used. Releases are always stable and production-ready.

The tarball contains the full source code, combined files for debugging GNU ease.js itself, combined files for development using GNU ease.js, minified files for production, and scripts needed to rebuild. The production and development links contain the JavaScript files needed to run GNU ease.js, the latter being unminified to allow easily stepping through the code with a debugger.

You should verify the above files using their associated signatures to ensure that they have not been altered. This can be done by placing both files in the same directory and running the command:

$ gpg --verify file.sig

where file is the full filename, such as easejs-latest.tar.gz. If you do not have the public signing key, you may download it by running this command:

$ gpg --keyserver --recv-keys 8EE30EAB


ease.js is available via npm for use with Node.js. Please be warned that package signature checks are not performed by npm.

$ npm install easejs


See Chapter 1 of the manual for more information on downloading and integrating ease.js into your own projects.

Release Notes

Below are the release notes for the current release of GNU ease.js. Historical release notes are also available. GPG signatures for each of the releases and their respective notes can be found in their respective tags in the Git repository.

0.2.5: GNU ease.js 0.2.5 released [stable]

This is a feature release, focused primarily on the continued development of

This release succeeds v0.2.4, which was released 07 Aug, 2014.  There are no
backwards-incompatible changes; support continues for ECMAScript 3+.

Changes between 0.2.4 and 0.2.5:
  - [doc] Manual has been updated to reflect an implementation detail that
    causes `this.__super` to remain in scope after a call to a private
    - This is not a bug, but is undefined behavior.

  Trait support is currently under development and will be undocumented
  until v0.3.0; it is included currently as a preview and is functional and
  comprehensively tested, but is incomplete.  For a list of outstanding
  tasks, see `README.traits`.

  * [preview] Traits may now "extend" classes.
    - Extending a class C denotes compatibility with C's interface: the
      trait may then only be mixed into C or its subtypes.
    - Extending traits is not yet supported, but will be in the next
    - Releated test cases:
      - test/Trait/{Abstract,ClassExtend}Test.js

  - [preview] Staging object returned by `#use` calls---representing an
    eventual mixin---now statisfy the `Class.isClass` predicate.

Examples of Trait use can be found in the extensive test cases (test/Trait)
and in the resources found on the ease.js homepage:

Historical release notes are available at:

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.5.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 8EE30EAB

and rerun the 'gpg --verify' command.

Free Your JavaScript!

See the FSF's Free JavaScript Campaign at

Are you a JavaScript developer? Consider joining the campaign's JavaScript
Developers Task Force mailing list at

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.