Add some more polyfills: Object.assign() and Performance.now().
The RegExp.prototype.compile() polyfill cannot be implemented at the moment
because it needs to overwrite some RegExp instance properties which are
currently protected.
Use immediate assignment to avoid (quite theoretical) races when multiple
build targets re-evalute things like "git describe". Add build timestamp
to snapshot builds (this *does* have a race without immediate assignment).
Improve git describe options to mark dirty snapshot builds.
Immediate assignment avoids multiple evaluation and removes potential to
race with e.g. build timestamps. The changes made here don't really have
an impact because e.g. GIT_DESCRIBE won't change during a build.
Avoid value stack operations, explicit coercion calls and such when
comparing two normal (not NaN, infinity, or subnormal) values. This
improves performance in basic for loops and such.
Fix a few trivial typing issues in various guide sections. Add an explicit
example for creating new contexts which either share the globals of another
context, or have a fresh set of globals.
Test case improvements. Test case now demonstrates that trailing non-existent
elements require no real world non-standard behavior as for map() and concat().
With -f the rm command should not fail unless something is really wrong,
so wrong that we should stop, so a preceding minus is not necessarily a
good idea.
With this change, building an old Duktape version will use a specific
version of the closure compiler, so that changes in the closure compiler
won't trigger unexpected InitJS bugs. Apparently minifying can sometimes
break code, depending on what options are used.
Add an explicit --minify option to the make_dist.sh utility script to
allow more build flexibility. In particular, "none" removes dependency
on closure or other minifier.
The --minify option allows the callee to specify what InitJS minify method
to use: uglifyjs, uglifyjs2, closure, none. The "none" option is useful when
build time and dependencies are more important than a few kilobytes.
Remove some known issues which have been fixed - namely related to Array
map() behavior for trailing non-existent elements (which was recently
changed).
Add real world behavior for Array.prototype.map(): trailing non-existent
elements don't invoke the user callback but are counted towards the
result array length.