- JOII is now a proper AMD/CommonJS Module
- No more global scope leaking in node environments (can still be done on-demand using
useGlobal()
) - Replaced build-tool grunt (concat & uglify-js) with ISC.
- Added serialization support (by cjmanca)
- Fixed scope leaking by generated setters
- Various bugfixes: Proper inheritance through multiple levels of parent classes, interface reference issues fixed
- Custom constructor methods. You can now use your own constructor method instead of the default
__construct
. - Custom callable methods. Same as constructors, but apply to the __call method (call class as a function).
- Fixed issue #10
- More IE8 (and below) compatibility fixes
- Various IE8 (and below) compatibility fixes
- Fixed initializr casing
- Various bug- and codestyle fixes
- Added
JOII.isInstance()
to verify if an object is an instance of a JOII class.
- Added fluid interfacing support.
this.__api__
returns the public scope of an instance.
- Properties are now always private
- Getter/Setter generation
- Added type support
- Added constants
- Added Enum-types
- Enhanced visibility for properties and methods
- Various bugfixes
- Improved performance
- Reworked the entire codebase
- Using grunt & npm for unit testing and deployment
The following features have been removed / relocated:
final
parameter only accepts boolean "true", properties are definedfinal
on the property declaration directly.- Removed the "Public API" feature to define public methods using a return value from the constructor
- Removed support for plug-ins, as they are a potentional security breach and can easily mess up class definitions.
- Added the
final
parameter to mark a class or a set of properties final.
- IMPORTANT Removed builtin DependencyInjection. Please use the Dependency Injection package
- Added the ability to extend interfaces.
- Added plugin support, allowing classes to be registered within the JOII-namespace.
- Small optimizations (removed redeclarations of variables)
- Renamed "arguments" to "args" as "arguments" is a reserved keyword (d'oh)
- Bugfix: Prototype (the framework) was messing up the registered interfaces list by injecting undefined elements to the interfaces array. The implementation check-mechanism now skips "undefined" variables.
- Optimization: V8 was unable to optimize certain internal functions.
- Bugfix: Interfaces & plugins weren't properly applied when a public class API was defined.
- Minor bugfixes
- Polished public API support
- Fixed an issue where objects remained static from parent classes (related to issue #4)
- Fixed issue #4
- Polished dependency injection support (dropped the 'injects' parameter from class declarations)
Make a subset of a class available to the public while keeping the rest 'protected' by returning an object from the class constructor. Check out the last section of the page at http://joii.harold.info/documentation/classes for an example.
Added a feature to register classes as services. For more information about dependency injection, some folks at stackoverflow can provide you with some nice answers: http://stackoverflow.com/questions/130794/what-is-dependency-injection
- Reworked entire library, only objects are accepted as function bodies to enforce code structure and reliability.
- Initial release of JOII.