44f1f5494a
Changes since previous version (2.2.0): pkgsrc: use the included Makefile.cmdline to build duktape, rather than custom command in pkgsrc Makefile. Don't assume ${CC} is gcc while doing so XXX - it looks like the ABI has changed (silently) from 2.2.0 without a corresponding libtool version bump from upstream. caveat buildor 2.3.0 (2018-08-04) + When C++ exception support is enabled use a separate duk_fatal_exception (inherits from std::runtime_error) to propagate fatal errors (uncaught errors, assertions) out of Duktape when using the default fatal error handler (GH-1915) + Update UnicodeData.txt and SpecialCasing.txt used for building internal Unicode control data to Unicode version 10.0.0 (GH-1851) + Add support for Symbol.hasInstance (@@hasInstance) check for 'instanceof' operator and duk_instanceof() API call; also add Symbol.hasInstance and Function.prototype[@@hasInstance] (GH-1821) + Add support for Symbol.toStringTag (@@toStringTag) in Object.prototype.toString() (GH-1822) + Add support for Symbol.isConcatSpreadable (@@isConcatSpreadable) in Array.prototype.concat() (GH-1823) + Add support for Symbol.toPrimitive (@@toPrimitive) in ToPrimitive() internal algorithm and duk_to_primitive() API call (GH-1825) + Invoke Proxy 'has' trap in Array.prototype.concat() when inspecting the elements of the Proxy target (GH-1823) + Remove DUK_USE_NONSTD_ARRAY_CONCAT_TRAILER because the underlying ES5.1 specification "bug" was fixed in ES2015 (GH-1823) + Remove DUK_USE_NONSTD_ARRAY_MAP_TRAILER because ES5.0/ES5.1 behavior actually did match the "non-standard" behavior provided by the option (GH-1823) + Add duk_random() to allow C code access to the same random number source as ECMAScript code (GH-1815) + Add duk_push_new_target() to allow C code to access new.target; at present this is for completeness because without actual class support it's only useful to detect constructor calls which can already be done using duk_is_constructor_call() (GH-1745) + Add experimental API call variants for plain C literals, for example duk_push_literal(ctx, "key") and duk_get_prop_literal(ctx, "propname"), which allow e.g. better performance; calls added: duk_push_literal(), duk_get_prop_literal(), duk_put_prop_literal(), duk_has_prop_literal(), duk_del_prop_literal(), duk_get_global_literal(), duk_put_global_literal() (GH-1805) + Add duk_get_global_heapptr() and duk_put_global_heapptr() for completeness (GH-1805) + Automatically pin strings accessed using the C literal API call variants such as duk_get_prop_literal(ctx, "propname") between mark-and-sweep rounds to facilitate literal caching and to reduce string table traffic; this behavior can be disabled by disabling DUK_USE_LITCACHE_SIZE in configure.py (GH-1813) + Add a lookup cache for C literals to speed up string table lookups when using API call variants such as duk_get_prop_literal(ctx, "propname"); the cache relies on literals being pinned between mark-and-sweep rounds, and can be disabled by disabling DUK_USE_LITCACHE_SIZE in configure.py (GH-1813) + ES2015 Number constructor properties: EPSILON, MIN_SAFE_INTEGER, MAX_SAFE_INTEGER, isFinite(), isInteger(), isNaN(), isSafeInteger(), parseInt(), parseFloat() (GH-1756, GH-1761) + Assume only natural alignment (DUK_USE_ALIGN_BY=8) on all platforms to minimize compiler assumptions regarding unaligned accesses (which can be an issue even on x86); applications working with a low memory target may want to force DUK_USE_ALIGN_BY in configuration (GH-1783, GH-1784) + Base64 decoder is now more lenient for padding: accepts missing padding ('Zm'), partial padding ('Zm='), standard padding ('Zm=='), and extra padding ('Zm===' etc), also for concatenated documents ('Zm===Zm' decodes to 'ff' for example) (GH-1789) + Base64 encoder and decoder performance improvements for both fast path and slow path variants (GH-1789) + Make base64 support optional and drop it from lowmem base configuration; define DUK_USE_BASE64_SUPPORT to enable it (GH-1789) + Make hex support optional and drop it from lowmem base configuration; define DUK_USE_BASE64_SUPPORT to enable it (GH-1789) + Add C++ name mangling wrappers (extern "C") for extras (GH-1780, GH-1782) + Add a duk_uint64_t to duk_hbuffer_fixed forced alignment union trick just in case double and uint64_t alignment requirements differ (GH-1799) + Add a CBOR encoder/decoder as an extra (GH-1781, GH-1800, GH-1801) + Add a minimal ES2015 Promise polyfill into the distribution (GH-1865) + Include <exception> only when compiling as C++ with C++ exception support enabled (GH-1838, GH-1839) + Allow undefined timeout in eventloop example setTimeout() and setInterval() bindings, minor cleanups and improvements (GH-1866, GH-1879, GH-1884) + Revise Number.prototype.toFixed() 'this' binding and fractionDigits argument validation order to match ES2015 where the 'this' binding is validated first (GH-1887) + Add Makefile.jsoncbor to the distributable (GH-1885) + Makefile.sharedlibrary portability improvements (GH-1922, GH-1923) + Change spelling from ECMAScript to ECMAScript throughout the internal source code; as far as external behavior is concerned this only affects a few debug prints (GH-1894) + Fix NULL pointer dereference in error augmentation when DUK_USE_TRACEBACKS was disabled (GH-1909) + Fix potential dangling pointer use in Duktape thread termination handling; the dangling pointer could cause unsafe memory behavior (GH-1845, GH-1868) + Fix performance.now() property attributes to 'wec' (earlier 'wc') (GH-1821) + Fix debugger StepOver behavior when a tailcall happens in a nested function (not the function where stepping started from) (GH-1786, GH-1787) + Fix trailing single line comment handling for Function constructor; new Function('return "foo" //') previously failed with SyntaxError (GH-1757) + Fix some lexer bugs related to parsing in RegExp mode (interpret leading '/' as part of a RegExp) or not (interpret '/' as division) (GH-1779) + Fix DUK_BOOL_{MIN,MAX} defines for unsigned duk_bool_t (GH-1769) + Fix 'defined but not used' warning for Windows (GH-1775) + Fix potential uninitialized data use when Windows Date provider FileTimeToSystemTime() or FileTimeToLocalFileTime() failed (GH-1953) + Fix some Clang warnings by avoiding undefined behavior by default, define DUK_USE_ALLOW_UNDEFINED_BEHAVIOR to reduce the explicit undefined behavior checks for better footprint/performance (GH-1777, GH-1795, GH-1796, GH-1797, GH-1798) + Fix some compilation warnings triggered when DUK_NORETURN is not defined; the internal DUK_WO_NORETURN() is used to include unreachable dummy statements when the noreturn attribute is not available, e.g. DUK_WO_NORETURN(return 0;); (GH-1790) + Fix a few casts in duk_trans_socket_windows.c to avoid errors in a C++ build (GH-1773) + Fix harmless -Wcast-align warnings on armhf (GH-1793) + Various compiler warning fixes (GH-1788, GH-1932, GH-1924, GH-1950, GH-1951, etc) + Add automatic workaround for union aliasing issues with FreeBSD + -m32 + Clang prior to 5.0; the aliasing issues cause packed duk_tval to work incorrectly (see https://github.com/svaarala/duktape/blob/master/misc/clang_aliasing.c), and the workaround is to use unpacked duk_tval prior to Clang 5.0 (GH-1764) 2.2.1 (2018-04-26) + Fix trailing single line comment handling for Function constructor; new Function('return "foo" //') previously failed with SyntaxError (GH-1757) + Fix DUK_BOOL_{MIN,MAX} defines for unsigned duk_bool_t (GH-1769) + Fix debugger StepOver behavior when a tailcall happens in a nested function (not the function where stepping started from) (GH-1786, GH-1787) + Fix potential dangling pointer use in Duktape thread termination handling; the dangling pointer could cause unsafe memory behavior (GH-1845, GH-1868) |
||
---|---|---|
.. | ||
patches | ||
DESCR | ||
distinfo | ||
Makefile | ||
PLIST |