@@ -7,12 +7,6 @@ Release overview
77
88Main changes in this release (see RELEASES.rst for full details):
99
10- * TBD.
11-
12- * DUK_USE_ALIGN_BY now always defaults to 8 (natural alignment) to avoid any
13- potentially unsafe assumptions about compiler behavior for unaligned memory
14- accesses and pointers (which may be an issue even on x86).
15-
1610* duk_xxx_literal() API call variants which take a plain C literal argument,
1711 for example duk_get_prop_literal(ctx, -2, "myProperty"). The calls are
1812 conceptually similar to the duk_xxx_string() variants, but can take advantage
@@ -23,19 +17,39 @@ Main changes in this release (see RELEASES.rst for full details):
2317 literal to a heap string object quite fast (almost as fast as using a heapptr).
2418 For now the calls are experimental.
2519
20+ * More ES2015 support: Symbol.hasInstance, Symbol.toStringTag,
21+ Symbol.isConcatSpreadable, Symbol.toPrimitive, Proxy improvements,
22+ Number.EPSILON, Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER,
23+ Number.isFinite(), Number.isNaN(), Number.isSafeInteger(),
24+ Number.parseInt(), Number.parseFloat().
25+
26+ * Other API additions: duk_random(), duk_push_new_target(),
27+ duk_get_global_heapptr(), duk_put_global_heapptr().
28+
2629* When C++ exception support is enabled (DUK_USE_CPP_EXCEPTIONS), Duktape now
2730 uses a C++ exception throw also for fatal errors (e.g. uncaught error). The
2831 exception thrown has the type ``duk_fatal_exception `` which inherits from
2932 ``std::runtime_error `` so it has a ::what() method and a useful message.
3033
34+ * DUK_USE_ALIGN_BY now always defaults to 8 (natural alignment) to avoid any
35+ potentially unsafe assumptions about compiler behavior for unaligned memory
36+ accesses and pointers (which may be an issue even on x86).
37+
38+ * A new CBOR encoder/decoder extra which may be eventually merged (in some
39+ form) into Duktape itself. CBOR is a useful binary serialization format
40+ which is a superset of JSON and has an RFC specification.
41+
42+ * A Promise polyfill which will be used as a basis for the initial native
43+ implementation.
44+
45+ * Various fixes and portability improvements.
46+
3147Upgrading from Duktape 2.2
3248==========================
3349
3450No action (other than recompiling) should be needed for most users to upgrade
3551from Duktape v2.2.x. Note the following:
3652
37- * TBD.
38-
3953* If you are using DUK_USE_CPP_EXCEPTIONS note that fatal errors are now
4054 thrown using a C++ exception of the type ``duk_fatal_exception `` which
4155 inherits from ``std::runtime_error `` and will be caught by a boilerplate
@@ -77,6 +91,11 @@ from Duktape v2.2.x. Note the following:
7791 by default in the example low_memory.yaml configuration. Enable them
7892 manually if necessary using DUK_USE_BASE64_SUPPORT and DUK_USE_HEX_SUPPORT.
7993
94+ * The built-in base64 decoder is now more lenient. If you're relying on
95+ strictness or specific behavior of the base64 decoder, you should use an
96+ external decoder with the exact behavior desired (base64 decoders differ
97+ quite a lot with respect to various decoding corner cases).
98+
8099* Several -fsanitize=undefined warnings have been fixed in the default
81100 configuration using explicit checks to avoid undefined behavior. For
82101 example, floating point division by zero is avoided and behavior in that
0 commit comments