Features Download
From: Mike Gerwitz <mikegerwitz <at> gnu.org>
Subject: Announcing GNU ease.js v0.2.0 and the Importance of Free JavaScript
Newsgroups: gmane.org.fsf.announce
Date: Sunday 16th March 2014 06:33:40 UTC (over 2 years ago)
I am pleased to announce version 0.2.0 of GNU ease.js, the first of many
releases as part of the GNU project. This release contains exciting new
features, a couple bug fixes, and extensive test case cleanup. The project
has also been relicensed under the GNU GPLv3+ to help in the fight against
non-free JavaScript (detailed below).

Changes between 0.1.1 and 0.2.0:
  * [license] Relicensed under the GPLv3+ (previously LGPLv3+)
  * [bug fix] this.__super now mirrors stack rather than being clobbered
      after return from an ease.js method call
  * [bug fix] Protected member overrides of super-supertypes are now
      properly handled
  * [preview] Support for traits as mixins
    - This is an initial development preview of trait/mixin support
      (motivated heavily by Scala) and is currently undocumented in the
    - Complete documentation will be available once remaining trait TODOs
      are addressed; until that time, see test/Trait/*Test.js for
      comprehensive examples and rationale. Performance tests are available
      in the test/perf directory for comparison with non-trait usage.
    - The implementation is stable, but not yet complete; see README.traits
      for more information.
  - Proxy methods and the associated `proxy' keyword are now documented
      (proxies were introduced in v0.1.1)
  + All older non-performance JS test cases are now part of the new suite
    - Extensive test cleanup and consistent formatting
    - All tests now contain rationale (as part of preceding comment block)
  - Now uses autotools; see README for instructions
  * v0.1 (LGPL'd) series is now unmaintained; users are encouraged to
      upgrade to 0.2.0 and be mindful of the terms of the new license

The project's new home is now at <https://www.gnu.org/software/easejs>;
easejs.org now redirects to the appropriate page, and so you should not
to update your bookmarks.

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.0.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 keys.gnupg.net --recv-keys 8EE30EAB

and rerun the 'gpg --verify' command.

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
intuitive class definitions; classical inheritance; abstract classes and
methods; traits as mixins; interfaces; public, protected, and private
modifiers; static and constant members; and more. Please see the
comprehensive documentation at
for more information,
examples, and implementation details.

The Importance of Making JavaScript Code Free
[For more information on the FSF's Free JavaScript campaign, please see

Web pages increasingly include JavaScript code, which raises the same
ethical concerns as software written in any other language: Non-free
JavaScript can rob you of your right to study, modify, and share the
software that you are running.  Unlike traditional software, JavaScript
usually enters your machine without prompting and often without your
knowledge---the simple act of visiting a web page may install and execute
a non-free program within your web browser.

JavaScript provides an often frictionless cross-platform distribution
mechanism that can be exploited without your permission; this amplifies
the effects of some of the most insidious anti-features, such as spying
on your activities and tracking your movements.  If a web page executes
non-free code, how are you able to audit it (or have someone else do so
on your behalf) to ensure that it is not malicious?  Further, how are
you or others able to modify the software to remove the malicious code?
(Unfortunately, the latter can be complicated even with free JavaScript,
but it can be done.)

But non-malicious programs sometimes need changes too.  You deserve
control over all software that runs on your computer; why should you
sacrifice this freedom simply because JavaScript creates the illusion
of remote execution?

How many web sites have you visited today that download JavaScript
onto your computer?  How many of them respect your freedoms?  I chose
to license ease.js under the GPLv3+ because I believe that non-free
JavaScript should be eliminated, not enabled.  Please help to spread
the word and join me in writing free JavaScript; without it, we will
have an Internet that is locked away from free software users; this is
not the spirit in which the Internet was created.

More information on the JavaScript trap is available here:

To join in on the FSF's Free JavaScript campaign:

More information on free software and its freedoms:

Thank GNUs
Special thanks to Brandon Invergo for his help during the GNU submission
process and for his auto{conf,make} advice and patches; RMS for extensive
proofreading and advice on "The Importance of Making JavaScript Code Free";
and the many others at the FSF and GNU Project that were involved in this

Mike Gerwitz
Free Software Hacker | GNU Maintainer
FSF Member #5804 | GPG Key ID: 0x8EE30EAB
CD: 2ms