Commits on Oct 15, 2016
  1. Add missing INSTALL

    Autoconf generates INSTALL boilerplate, so I had added it to .gitignore in
    the past.  Unfortunately, I do include my own INSTALL file, which is present
    in the distribution, but has never been committed to the repo!
    Thanks to Stefan Schweter for pointing this out to me.
    * INSTALL: Added.
    * .gitignore (/INSTALL): Removed.
    committed Oct 15, 2016
Commits on Jul 21, 2016
  1. Fail mkrelease on npm publish failure

    * tools/mkrelease: exit on failed `npm publish'
    committed Jul 21, 2016
  2. Shorten combined min license header

    * tools/license-min.tpl: Shorten software URL;
      use HTTPS; and use range for copyright years
    committed Jul 21, 2016
  3. Copyright year updates for combined files

    * tools/*.tpl: Add 2015, 2016 to copyright years
    committed Jul 21, 2016
  4. Correct variable name in combined header

    Clearly a bad case of search/replace.
    * tools/combine.tpl: {util=>easejs}
    committed Jul 21, 2016
Commits on Jul 16, 2016
  1. Update copyright years on main Texinfo manual page

    * doc/easejs.texi: Add 201{5,6} to copyright years
    committed Jul 16, 2016
  2. Add "Transparent error subtyping" to README

    This also reorganized the list to match the website
    * Added "Transparent error subtyping".
      Reordered list.
    committed Jul 16, 2016
  3. Copyright year update on classes.texi

    * doc/classes.texi: Add 2016 to copyright
    committed Jul 16, 2016
  4. Add "Class Caveats" manual section

    This will grow.
    * doc/classes.texi (Class Caveats): Added with `this.__inst' documentation
    committed Jul 16, 2016
Commits on Jul 15, 2016
  1. Remove strong recommendation for `public' in manual

    * doc/classes.texi (Defining Classes): Remove the recommendation for using
      the `public' keyword always (instead of omitting it), and the reference
      stating that it may be required in the future.  This is not the case.
    committed Jul 15, 2016
  2. Transparent Error Subtyping

    Error subtyping (creating your own error types) in ECMAScript is notoriously
    crude, and getting it to work intuitively is even harder.  ease.js will now
    transparently handle all necessarily boilerplate when extending Error or its
    Take, for example, the common boilerplate for creating your own Error type:
        function ErrorSubtype( message )
            var err = new Error();
           = 'ErrorSubtype';
            this.message      = message || 'Error';
            this.stack        = err.stack;
            this.lineNumber   = err.lineNumber;
            this.columnNumber = err.columnNumber;
            this.fileName     = err.fileName;
        ErrorSubtype.prototype             = new Error();
        ErrorSubtype.prototype.constructor = ErrorSubtype;
    There are a number of problems with this:
      - That's a lot of boilerplate for any type you wish to create;
      - Some of those features may not be supported by your environment
        (e.g. column numbers or stack traces);
      - The stack trace will include `ErrorSubtype` _itself_ (as the top frame);
      - Consequently, the `{line,column}Number` and `fileName` will represent
        that top frame---the error constructor itself.
    With ease.js, it's just like extending any other class/constructor:
        Class( 'ErrorSubtype' )
            .extend( Error, {} );
    More information can be found in the "Error Subtypes" section of the manual.
    Happy Error hacking.  Maybe you'll actually want to create them now.
    committed Jul 15, 2016
  3. Error constructor integration into ClassBuilder

    This introduces the transparent subtyping.
    * doc/classes.texi (Error Subtyping): Section added
    * lib/ClassBuilder.js (ClassBuilder): Accepts ErrorCtor instance
      (build): Transparent Error subtyping
    * lib/class.js: Provide ErrorCtor instance to ClassBuilder
    * test/ClassBuilder/ErrorExtendTest.js: Add test case for transparent error
    committed Jul 15, 2016
  4. Error constructor `after' support

    * lib/ctor/ErrorCtor.js (createCtor): Add `after' parameter to be
      invoked by `__$$ector$$__' at end of function.
    * test/ctor/ErrorCtorTest.js: Add respective tests.
    committed Jun 26, 2016
  5. Add error constructor generator

    This produces the constructor used for Error subtypes.
    * lib/ctor/ErrorCtor.js: Added
    * test/ctor/ErrorCtorTest.js: Added
    committed Jun 26, 2016
Commits on Apr 22, 2016
  1. Add

    * Added
    committed Apr 22, 2016
Commits on Apr 6, 2016
  1. package.json licence field update to GPL-3.0+

    Apparently the SPDX license list used by NPM supports an "or later"
    identifier; that's good, as this is an incredibly important distinction; I
    was otherwise going to drop it and use my own custom identifier.
    * package.json: License field set to GPL-3.0{=>+}
    committed Apr 6, 2016
Commits on Dec 28, 2015
  1. whyfreejs link in

    committed Dec 28, 2015
Commits on Dec 24, 2015
  1. package.json license field update

    This uses the newer style.  Note that the license syntax does not support a
    very important part of the license---"or later"; this is actually GPLv3+.
    committed Dec 24, 2015
Commits on Dec 23, 2015
  1. Minor build improvements

    committed Dec 23, 2015
  2. {default=>all} target

    Latter is recognized by Automake.
    committed Dec 23, 2015
  3. dia check via configure

    committed Dec 23, 2015
Commits on Dec 22, 2015
  1. distcheck target fix

    `make distcheck` now works as expected (does not fail).
    committed Dec 22, 2015
  2. reproducibility (test cases)

    This is not strictly necessary (since order-modules does it), but let's be safe.
    committed Dec 22, 2015
  3. reproducibility

    Remove non-determinism from filesystem.
    committed Dec 22, 2015
  4. Re-add README

    Now that the README issue with npm is resolved, I'm re-adding this; README
    is standard, and really all GNU projects should have it.
    committed Dec 22, 2015
  5. Resolve potential reproducible build issues

    GNU ease.js is a pretty trivial case with respect to reproducibility---not
    much goes on during the build aside from concatenation and minification.
    Non-determinism is essentially confined to filesystem operations, which can
    be rectified by sorting using a static locale's collation sequence (which is
    done here).
    This does not resolve any concerns with autoconf-installed scripts (those in
    tools/), or the distribution tarball file metadata.
    committed Dec 22, 2015
Commits on Dec 19, 2015
  1. Move license below title

    This resolves a long-standing NPM issue whereby it was not rendering the
    README (instead saying that it does not exist)
    committed Dec 19, 2015
Commits on Oct 27, 2015
  1. Ignore known bad commits in signchk

    The two commits ignored here were a mistake.  Regrettable.
    This commit that introduces these ignores is signed, so these ignores can be
    committed Oct 27, 2015
  2. Remove misplaced function annotations for defineSecureProp

    Seemed like a good idea at the time, but now Closure Compiler complains.
    committed Oct 27, 2015
  3. Fix protected mixin override for ES3 fallbacks

    It's fun when you're about to make a release and find that ES3 fallback
    tests are failing.  That's also what happens when you decide not to run
    the combined tests until the last minute, because they usually don't fail.
    committed Oct 27, 2015
Commits on Oct 26, 2015
  1. Force check target on dist

    This is to ensure that final tests are run after combined files are generated.
    committed Oct 26, 2015
  2. Remove deleted README files from dist

    Replace with their equivalents.
    committed Oct 26, 2015