An elegant OOP with mixins + AOP for JavaScript.


Version 1.x

Major version: 1.1


1.1.3 introduces a check against a wrong type of super (e.g., making a super call for numeric property), adds new CI targets, and fixes a version for bower.

Blog entry: 1.1.3: micro update.


Technical update: a massive cleanup of internals to make them more readable and maintainable.

Blog entry: 1.1.2: technical release.


Minor update that includes two bug fixes:

  • Bugfix: a stray comma in a test file, which acted up in legacy browsers.
  • Bugfix: dcl.mix() was called directly in the base modules preventing it from being monkey-patched.

Blog entry: Micro update: 1.1.1.


Major update, which includes support for legacy browsers (IE < 9). It doesn’t affect existing users, because it doesn’t change the API or its semantics, but provides an option for legacy applications.

  • Added metadata for an extended Dojo release.
  • Internal code is better formatted, better documented, variables are renamed to use more suggestive names.
  • Added legacy.js module, which is a substitute for mini.js in legacy environments.

Blog entry: 1.1: legacy.

Major version: 1.0


Technical release. No functional changes, just a new tag and new file with metadata for bower.

Blog entry: 1.0.4: added to Bower.


Minor update, which includes a bug fix, and improved testing.

  • Bugfix: in some cases when using a native constructor created without dcl it was not called when creating an object. This bug is fixed and relevant tests were added.
  • All tests are consolidated using heya-unit. No more manual tests.
  • Added an automated testing in PhantomJS environment.
  • Increased test coverage.

Blog entry: Update: 1.0.3.


An update to accommodate some security restrictive embedded environments.

  • Some instances of new Function were replaced with function(){} to bypass Content Security Policy restrictions, because new Function even without any parameters is considered to be eval (???), and forces to allow eval globally.

Blog entry: Micro update: 1.0.2.


Minor update, mostly housekeeping.

  • Added getInherited() as an alias for inherited.get() to simplify its use. Now there is no need to use call() or apply() to specify its instance.
  • Added tests for dcl exceptions.
  • Added tests for canned advices and mixins.
  • Changed export names for <script> inclusion.
  • Error messages are better formatted.
  • Minor clean up, better comments, documentation updates.

Blog entry: 1.0.1 is out.


The initial public release.

Blog entry: 1.0 is public.