|
|
|
================
|
|
|
|
Duktape releases
|
|
|
|
================
|
|
|
|
|
|
|
|
Released
|
|
|
|
========
|
|
|
|
|
|
|
|
0.1.0 (2013-02-14)
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* Initial alpha release
|
|
|
|
|
|
|
|
* Core features work: compiler, executor, regexps, garbage collection
|
|
|
|
|
|
|
|
* Most built-ins incomplete or missing
|
|
|
|
|
|
|
|
0.2.0 (2013-02-27)
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* Built-ins implemented: Boolean, Date, JSON
|
|
|
|
|
|
|
|
* Date built-in has initial, minimal local time / locale support
|
|
|
|
|
|
|
|
* Initial internal documentation: regexp, datetime, json
|
|
|
|
|
|
|
|
0.3.0 (2013-03-16)
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* Built-ins implemented: global object, Object, String
|
|
|
|
|
|
|
|
0.4.0 (2013-03-31)
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* Built-ins: Array, Number, completing built-ins
|
|
|
|
|
|
|
|
0.5.0 (2013-05-17)
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* Built-in number conversion primitives
|
|
|
|
|
|
|
|
* Cleanup built-ins, improve test cases for built-ins
|
|
|
|
|
|
|
|
0.6.0 (2013-09-21)
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* First round of public API cleanup, and add basic API documentation
|
|
|
|
|
|
|
|
* First version of duktape.org website
|
|
|
|
|
|
|
|
0.7.0 (2013-10-30)
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* Traceback support improved
|
|
|
|
|
|
|
|
* Clean up and document error object properties
|
|
|
|
|
|
|
|
* Add prototype objects for buffer and pointer values, and make them object
|
|
|
|
coercible
|
|
|
|
|
|
|
|
* Proper support for big, little, and "middle endian" environments
|
|
|
|
|
|
|
|
* Single file combined source distributable
|
|
|
|
|
|
|
|
* Portability and bug fixes
|
|
|
|
|
|
|
|
0.8.0 (2013-12-18)
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* Remove DUK_PROFILE model, explicit DUK_OPT_xxx feature options added for
|
|
|
|
tuning the build (see web docs)
|
|
|
|
|
|
|
|
* Register shuffling added to compiler which mostly eliminates constant and
|
|
|
|
temporary register limits
|
|
|
|
|
|
|
|
* Reduce code footprint, make built-in data 'const' so that it compiles
|
|
|
|
into the 'text' section
|
|
|
|
|
|
|
|
* Augment errors created when a built-in error constructor is called as
|
|
|
|
a normal function (e.g. "var e = Error('test')")
|
|
|
|
|
|
|
|
* Enforce string/buffer length limits to avoid corner cases with strings
|
|
|
|
and buffers close to size_t limit
|
|
|
|
|
|
|
|
* Ecmascript E5.1 test cases and fixes
|
|
|
|
|
|
|
|
* Mark-and-sweep stringtable leak fixed, affected mostly builds without
|
|
|
|
reference counting
|
|
|
|
|
|
|
|
* Run a few mark-and-sweep passes in duk_destroy_heap() to give finalizers
|
|
|
|
a chance to run in most (but not all) cases
|
|
|
|
|
|
|
|
* Coroutine yield fixes
|
|
|
|
|
|
|
|
* Portability and bug fixes
|
|
|
|
|
|
|
|
0.9.0 (2014-02-02)
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* Added duk_gc() API call to force GC, implemented duk_map_string() and
|
|
|
|
duk_decode_string()
|
|
|
|
|
|
|
|
* Added extended JSON format variants JSONX and JSONC; NULL pointer
|
|
|
|
values string now coerce to "null" instead of e.g. "(nil)" to match
|
|
|
|
JSONX format
|
|
|
|
|
|
|
|
* Added input line number to compiler error messages (e.g. SyntaxErrors)
|
|
|
|
|
|
|
|
* Added support for function declarations outside function or program top
|
|
|
|
level (also known as "function statements"), with V8-like semantics
|
|
|
|
|
|
|
|
* Renamed __duk__ to Duktape for more consistency with Ecmascript conventions,
|
|
|
|
and made the following cleanups:
|
|
|
|
|
|
|
|
- removed somewhat useless 'build'
|
|
|
|
- added 'env'
|
|
|
|
- replaced 'addr' and 'refc' with 'info' which gives more internal info
|
|
|
|
- merged 'setFinalizer' and 'getFinalizer' into a single 'fin' call
|
|
|
|
- compatibility properties available for now (e.g. __duk__), but will
|
|
|
|
be removed after this release
|
|
|
|
|
|
|
|
* Removed array size limit for very large array joins
|
|
|
|
|
|
|
|
* Improve Unicode handling of Greek final sigma
|
|
|
|
|
|
|
|
* Make mark-and-sweep interval relative to current heap size (measured as
|
|
|
|
combined object and string count)
|
|
|
|
|
|
|
|
* Add DUK_OPT_NO_VOLUNTARY_GC to disable voluntary mark-and-sweep entirely;
|
|
|
|
this is useful in timing sensitive applications like games
|
|
|
|
|
|
|
|
* Preliminary internal support for periodic bytecode executor interrupts
|
|
|
|
which can be used to implement executor step limits, profiling, and
|
|
|
|
debugging
|
|
|
|
|
|
|
|
* More feature options for build tuning
|
|
|
|
|
|
|
|
* More self tests to detect obscure compiler bugs, two's complement
|
|
|
|
arithmetic, etc (enable with DUK_OPT_SELF_TESTS)
|
|
|
|
|
|
|
|
* Fixed several compile warnings, fixed warnings generated by GCC -Wextra
|
|
|
|
|
|
|
|
* Fixed some incorrect assertions (with no underlying bug)
|
|
|
|
|
|
|
|
* Fixed a coroutine termination bug which caused assertion errors and
|
|
|
|
occasional segfaults when an uncaught error terminated a thread with
|
|
|
|
a catch point active
|
|
|
|
|
|
|
|
* Fixed a tailcall bug: the current activation was not closed which
|
|
|
|
caused variable lookups to fail if an inner function accessed
|
|
|
|
variables in the surrounding activation
|
|
|
|
|
|
|
|
* Fixed a few bound constructor bugs
|
|
|
|
|
|
|
|
* Fixed handling of "get" and "set": they were handled as reserved words
|
|
|
|
which prevented valid statements like "var set = 1;"
|
|
|
|
|
|
|
|
* Fixed a switch-case bug where code was accepted before the first
|
|
|
|
case/default clause
|
|
|
|
|
|
|
|
* Fixed a switch-case bug where successive case clauses with no code
|
|
|
|
in-between was not handled correctly
|
|
|
|
|
|
|
|
* Fixed a for statement control flow bug when the third clause of the for
|
|
|
|
statement was empty and a continue was used
|
|
|
|
|
|
|
|
* Fixed error lineNumber bug triggered when there was more than 127
|
|
|
|
source lines between successive compiled statements
|
|
|
|
|
|
|
|
* Fixed some line terminator handling issues
|
|
|
|
|
|
|
|
* Fixed relational operator ToPrimitive() coercion order, for some
|
|
|
|
operators coercion order was reversed
|
|
|
|
|
|
|
|
* Fixed 'with' statement in strict mode (did not throw SyntaxError)
|
|
|
|
|
|
|
|
* Fixed strictness handling of an indirect eval call from a strict
|
|
|
|
function (eval incorrectly inherited strict mode)
|
|
|
|
|
|
|
|
* Several test262 and underscore.js test case fixes (other than above)
|
|
|
|
|
|
|
|
* Windows compatibility for both WIN32 and WIN64, tested with MinGW (x86),
|
|
|
|
MINGW-w64 (x64), VS2010 Express (x32), VS2013 Express (x32 and x64)
|
|
|
|
|
|
|
|
* Portability fixes for non-C99 platforms (like MSVC in VS2010)
|
|
|
|
|
|
|
|
* Drop 'full distributable' build, which is replaced by the public GitHub
|
|
|
|
repo; simplify Makefiles etc accordingly (this change is not visible in
|
|
|
|
the source distributable)
|
|
|
|
|
|
|
|
Planned
|
|
|
|
=======
|
|
|
|
|
|
|
|
0.10.0 (2014-03-XX)
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
* Add Duktape.compact() and Duktape.line()
|
|
|
|
|
|
|
|
* Add a message argument to fatal handler function callback, simplify
|
|
|
|
internal fatal error and panic handling
|
|
|
|
|
|
|
|
* Compact function templates and instances to reduce memory footprint
|
|
|
|
|
|
|
|
* Execute finalizers for all objects, even reachable ones, when a heap
|
|
|
|
is freed to allow native resources to be freed reliably
|
|
|
|
|
|
|
|
* C typing wrapped throughout to allow porting to more exotic platforms,
|
|
|
|
e.g. platforms where "int" is a 16-bit type
|
|
|
|
**FIXME: under work**
|
|
|
|
|
|
|
|
* Improve self tests to include byte order validation
|
|
|
|
|
|
|
|
* Fix O(depth^2) inner function parsing issue, inner functions are now
|
|
|
|
only parsed once and deeply nested inner functions are no longer a
|
|
|
|
performance issue
|
|
|
|
|
|
|
|
* On platforms requiring a specific alignment, use an alternate object
|
|
|
|
property table memory layout to reduce memory footprint
|
|
|
|
|
|
|
|
* Fix a bug in regexp handling of non-capturing groups inside quantifier
|
|
|
|
expressions
|
|
|
|
|
|
|
|
* Portability fixes for Crossbridge (Flash), NetBSD
|
|
|
|
|
|
|
|
* Warning fixes for non-default feature options and a few exotic compilers
|
|
|
|
|
|
|
|
* Duktape can now be compiled with Emscripten and executed with e.g. V8,
|
|
|
|
"Dukweb" provides an example where Duktape runs on a web page, with
|
|
|
|
Duktape and the browser Javascript environment interacting
|
|
|
|
|
|
|
|
0.11.0 (2014-XX-XX)
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
1.0.0 (2014-XX-XX)
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
* Feature complete baseline release
|
|
|
|
|
|
|
|
1.1.0 (2014-XX-XX)
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* Debugger
|
|
|
|
|
|
|
|
2.0.0 (XXXX-XX-XX)
|
|
|
|
------------------
|
|
|
|
|
|
|
|
* Ecmascript 6 features will be implemented in v2.x.x at the earliest
|
|
|
|
(some individual features may be cherry picked into v1.x.x)
|
|
|
|
|