info-easejs
[Top][All Lists]
Advanced

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

[info-easejs] GNU ease.js 0.2.9 released


From: Mike Gerwitz
Subject: [info-easejs] 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
<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/

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

Attachment: signature.asc
Description: PGP signature


reply via email to

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