[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GNU ease.js 0.2.2 released [stable]
GNU ease.js 0.2.2 released [stable]
Tue, 29 Apr 2014 03:38:04 -0400
This is the third release of the 0.2 series with a focus on interoperability
when dealing with native prototypes. Additionally, GNU ease.js now considers
non-ease.js objects to adhere to an interface (without having to implement
it) so long as the object implements all methods and the proper number of
arguments, which allows users to integrate with ease.js classes without
having to use ease.js themselves. It further allows defining interfaces for
existing objects to ensure API conformance. Finally, to make definitions
more concise and more natural to prototypal developers, underscore-prefixed
members are now implicitly private; this can be overridden with an explicit
Changes between 0.2.1 and 0.2.2:
* [doc] Added interoperability chapter to manual.
* Members with an underscore prefix (e.g. _foo) are now implicitly
- This can be overridden by explicitly specifying an access modifier.
- Follows common conventions in modern object-oriented languages and
permits concise definitions that are more natural to users of
* This is backwards-incompatible if there is code that accesses
underscore-prefixed members as public or protected without explicitly
providing the visibility keyword in the member definition.
* Interfaces are now interoperable with vanilla ECMAScript objects
- This allows for runtime polymorphism within ease.js methods without
having to use ease.js.
- Also allows creating interfaces for pre-existing objects (e.g. W3C DOM
objects) to ensure adherence to an API.
* Generated classes now have an `asPrototype` method for use as a
- Defers execution of class constructor, allowing prototypal subclassing
(for those preferring not to use ease.js, but wish to extend a class
generated from it).
* [bugfix] Classes inheriting from prototypes will now properly proxy
assignments to properties on the prototype.
- Note that ease.js can only detect properties that are initialized in
the prototype's constructor; otherwise, you must manually declare it
public within the class definition to ensure proper proxying.
- [bugfix] Classes inheriting from prototypes will now properly handle
- Parent prototype methods are implicitly virtual, unlike ease.js
methods; see test/Class/InteropTest.js for rationale.
- [bugfix] Class.isInstanceOf once again attempts blind native instanceof
without preemptive function check.
- v0.2.1 first checked to see if the argument was a function to prevent
use of a try/catch; unfortunately, the proprietary browser IE9+ seems
to treat certain DOM constructors (e.g. HTMLElement) as objects rather
than functions, yet the `instanceof` keyword works with them. This
reverts that change.
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
- [preview] Named trait staging of the form Trait("Foo") implemented
(analogous to Class("Foo")) and will no longer throw an obscure error.
- [preview] Trait API now exposed in combined source file.
- The v0.2.0 release exposed Trait via index.js, but the combined file
(intended for use client-side) was overlooked.
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.2.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.
Developers Task Force mailing list at
About GNU ease.js
intended to eliminate boilerplate code and "ease" the transition into
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/software/easejs/manual.html> for more information,
examples, and implementation details.
Free Software Hacker | GNU Maintainer
FSF Member #5804 | GPG Key ID: 0x8EE30EAB
Description: Digital signature
|[Prev in Thread]
||[Next in Thread]|
- GNU ease.js 0.2.2 released [stable],
Mike Gerwitz <=