Version 0.2.9
Released 07 Nov 2017
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.
- Source Tarball—Full source code, debugging, development, production, and build files (.sig)
- Production—Minified, 13 kB gzipped (44 kB uncompressed) (.sig)
- Development—Unminified, 59 kB gzipped (255 kB uncompressed) (.sig)
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 keys.gnupg.net --recv-keys D6E9B930028A6C38F43B2388FEF635745E6F6D05
npm
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
Manual
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.9: GNU ease.js 0.2.9 released
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 <https://www.gnu.org/s/easejs/manual.html> 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: 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 Getting GNU ease.js ------------------- Here are the compressed sources and a GPG detached signature[*]: https://ftp.gnu.org/gnu/easejs/easejs-0.2.9.tar.gz https://ftp.gnu.org/gnu/easejs/easejs-0.2.9.tar.gz.sig Alternative download options are available at: http://www.gnu.org/software/easejs/download.html [*] 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 keys.gnupg.net --recv-keys D6E9B930028A6C38F43B2388FEF635745E6F6D05 and rerun the 'gpg --verify' command. Free Your JavaScript! --------------------- http://www.gnu.org/software/easejs/whyfreejs.html Explore why online freedoms are of practical importance with my LibrePlanet 2016 talk: https://media.libreplanet.org/u/libreplanet/collection/restore-online-freedom/