diff --git a/AUTHORS.rst b/AUTHORS.rst index d1cd0724..a01daa9c 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -104,7 +104,7 @@ bugs, provided ideas, etc; roughly in order of appearance): * Wilhelm Wanecek (https://github.com/wanecek) * Andrew Janke (https://github.com/apjanke) * Unamer (https://github.com/unamer) -* Karl Dahlke +* Karl Dahlke (eklhad@gmail.com) If you are accidentally missing from this list, send me an e-mail (``sami.vaarala@iki.fi``) and I'll fix the omission. diff --git a/LICENSE.txt b/LICENSE.txt index 69a7bb1d..aad07536 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -4,7 +4,7 @@ Duktape license (http://opensource.org/licenses/MIT) -Copyright (c) 2013-2018 by Duktape authors (see AUTHORS.rst) +Copyright (c) 2013-2019 by Duktape authors (see AUTHORS.rst) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/RELEASES.rst b/RELEASES.rst index 9a19e83a..2c910c42 100644 --- a/RELEASES.rst +++ b/RELEASES.rst @@ -3390,10 +3390,7 @@ Miscellaneous: 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) -Planned -======= - -2.4.0 (XXXX-XX-XX) +2.4.0 (2019-07-28) ------------------ * Add duk_to_stacktrace() and duk_safe_to_stacktrace() to make it easier to @@ -3468,6 +3465,9 @@ Planned * Rework some internal property handling call sites and helpers to e.g. avoid inheriting internal properties when not intended (GH-2149) +* Improve assertion coverage for internal structures during mark-and-sweep + (GH-2092) + * Fix incorrect parsing of post-increment/post-decrement followed by division (e.g. "z++ / 20"), the slash was interpreted as beginning a regexp (GH-2140) @@ -3538,11 +3538,16 @@ Planned attributes enabled, debugger support enabled); the workaround is to disable noreturn macros for GCC 5+ for now (GH-2156) -* Improve assertion coverage for internal structures during mark-and-sweep - (GH-2092) - * Various portability fixes (GH-1931, GH-1976) +Planned +======= + +2.5.0 (XXXX-XX-XX) +------------------ + +* TBD + 3.0.0 (XXXX-XX-XX) ------------------ diff --git a/doc/release-checklist.rst b/doc/release-checklist.rst index b36eca92..fd3571ee 100644 --- a/doc/release-checklist.rst +++ b/doc/release-checklist.rst @@ -13,20 +13,6 @@ Checklist for ordinary releases - ``vN.N.N-release-post``: use this naming for bumping version number after release, checklist fixes after release, etc. -* Git maintenance - - - Ensure git commits are up-to-date - - - Ensure branches are merged, unused branches deleted (also remotely) - - - Ensure branches are rebased where applicable - - - Check for uncommitted files - - - git fsck --full - - - git gc --aggressive - * Finalize DUK_VERSION - Change previous development version (with patch level 99) to release @@ -49,6 +35,8 @@ Checklist for ordinary releases - Release date is in place + - Check release entry ordering + * Ensure tests/api/test-all-public-symbols.c is up-to-date - Must add all new API calls diff --git a/doc/release-notes-v2-4.rst b/doc/release-notes-v2-4.rst index 0914b174..c079600d 100644 --- a/doc/release-notes-v2-4.rst +++ b/doc/release-notes-v2-4.rst @@ -5,7 +5,7 @@ Duktape 2.4 release notes Release overview ================ -TBD. +Main changes in this release (see RELEASES.rst for full details): * Symbol built-in is now enabled by default. @@ -17,6 +17,10 @@ TBD. * Add duk_require_constructable() and duk_require_constructor_call(). +* Various fixes and portability improvements. Special thanks to Renata + Hodovan for several issues found using Fuzzinator + (https://github.com/renatahodovan/fuzzinator). + Upgrading from Duktape 2.3 ========================== diff --git a/doc/test262-known-issues.yaml b/doc/test262-known-issues.yaml index ba3a8816..625d41d5 100644 --- a/doc/test262-known-issues.yaml +++ b/doc/test262-known-issues.yaml @@ -32,6 +32,27 @@ - test: "ch09/9.7/S9.7_A3.2_T1" knownissue: "Duktape String.fromCharCode() intentionally accepts non-BMP codepoints" +- + test: "ch10/10.6/10.6-13-b-1-s" + knownissue: "Revised behavior post-ES5.1: arguments.caller no longer present in strict mode" +- + test: "ch10/10.6/10.6-13-b-2-s" + knownissue: "Revised behavior post-ES5.1: arguments.caller no longer present in strict mode" +- + test: "ch10/10.6/10.6-13-b-3-s" + knownissue: "Revised behavior post-ES5.1: arguments.caller no longer present in strict mode" +- + test: "ch10/10.6/10.6-14-1-s" + knownissue: "Revised behavior post-ES5.1: arguments.caller no longer present in strict mode" +- + test: "ch10/10.6/10.6-14-b-1-s" + knownissue: "Revised behavior post-ES5.1: arguments.caller no longer present in strict mode" +- + test: "ch10/10.6/10.6-14-b-4-s" + knownissue: "Revised behavior post-ES5.1: arguments.caller no longer present in strict mode" +- + test: "ch13/13.2/S13.2.3_A1" + knownissue: "Revised behavior post-ES5.1: arguments.caller no longer present in strict mode" - test: "ch15/15.4/15.4.4/15.4.4.7/S15.4.4.7_A3" knownissue: "Duktape Array.prototype.push() doesn't allow Array length to grow beyond 2**32-1" @@ -79,9 +100,6 @@ - test: "ch15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-9" diagnosed: "probably Duktape bug: long array corner cases (C typing?)" -- - test: "ch15/15.4/15.4.4/15.4.4.6/S15.4.4.6_A4_T1" - diagnosed: "Array .pop() fast path (can be disabled) ignores inherited array index properties" - test: "ch15/15.5/15.5.4/15.5.4.7/S15.5.4.7_A1_T11" knownissue: "test case relies on locale specific Date format, Duktape uses ISO 8601 for Date toString()" diff --git a/extras/cbor/duk_cbor.c b/extras/cbor/duk_cbor.c index 12b4dc92..5304df6c 100644 --- a/extras/cbor/duk_cbor.c +++ b/extras/cbor/duk_cbor.c @@ -211,6 +211,7 @@ static DUK_CBOR_INLINE duk_uint16_t duk__cbor_read_uint16_big(const duk_uint8_t break; default: DUK_CBOR_ASSERT(0); + x = 0; } return x; } @@ -260,6 +261,7 @@ static DUK_CBOR_INLINE duk_uint32_t duk__cbor_read_uint32_big(const duk_uint8_t break; default: DUK_CBOR_ASSERT(0); + x = 0; } return x; } diff --git a/src-input/duk_api_codec.c b/src-input/duk_api_codec.c index d3011f09..804c6a4c 100644 --- a/src-input/duk_api_codec.c +++ b/src-input/duk_api_codec.c @@ -850,7 +850,7 @@ DUK_EXTERNAL void duk_hex_decode(duk_hthread *thr, duk_idx_t idx) { DUK_EXTERNAL const char *duk_hex_encode(duk_hthread *thr, duk_idx_t idx) { DUK_UNREF(idx); DUK_ERROR_UNSUPPORTED(thr); - DUK_WO_NORETURN(return;); + DUK_WO_NORETURN(return NULL;); } DUK_EXTERNAL void duk_hex_decode(duk_hthread *thr, duk_idx_t idx) { DUK_UNREF(idx); diff --git a/src-input/duktape.h.in b/src-input/duktape.h.in index 228ae742..e853a50d 100644 --- a/src-input/duktape.h.in +++ b/src-input/duktape.h.in @@ -38,7 +38,7 @@ * development snapshots have 99 for patch level (e.g. 0.10.99 would be a * development version after 0.10.0 but before the next official release). */ -#define DUK_VERSION 20399L +#define DUK_VERSION 20400L /* Git commit, describe, and branch for Duktape build. Useful for * non-official snapshot builds so that application code can easily log diff --git a/tests/api/test-all-public-symbols.c b/tests/api/test-all-public-symbols.c index e24d2142..680c60e9 100644 --- a/tests/api/test-all-public-symbols.c +++ b/tests/api/test-all-public-symbols.c @@ -312,6 +312,7 @@ static duk_ret_t test_func(duk_context *ctx, void *udata) { (void) duk_resume(ctx, NULL); (void) duk_safe_call(ctx, NULL, NULL, 0, 0); (void) duk_safe_to_lstring(ctx, 0, NULL); + (void) duk_safe_to_stacktrace(ctx, 0); (void) duk_safe_to_string(ctx, 0); (void) duk_samevalue(ctx, 0, 0); (void) duk_seal(ctx, 0); @@ -343,6 +344,7 @@ static duk_ret_t test_func(duk_context *ctx, void *udata) { (void) duk_to_object(ctx, 0); (void) duk_to_pointer(ctx, 0); (void) duk_to_primitive(ctx, 0, 0); + (void) duk_to_stacktrace(ctx, 0); (void) duk_to_string(ctx, 0); (void) duk_to_uint16(ctx, 0); (void) duk_to_uint32(ctx, 0); diff --git a/tests/ecmascript/test-bi-cbor-dec-fastint.js b/tests/ecmascript/test-bi-cbor-dec-fastint.js index 549f4d9d..96d52754 100644 --- a/tests/ecmascript/test-bi-cbor-dec-fastint.js +++ b/tests/ecmascript/test-bi-cbor-dec-fastint.js @@ -2,6 +2,12 @@ * Current CBOR decode fastint behavior. */ +/*--- +{ + "skip": true +} +---*/ + /*=== - top level integer 17 fastint diff --git a/util/index_page_sizes.sh b/util/index_page_sizes.sh index d2171770..f0051d77 100644 --- a/util/index_page_sizes.sh +++ b/util/index_page_sizes.sh @@ -7,7 +7,7 @@ set -e #set -x ARCHOPT=-m32 -#ARCHOPT=-mthumb +#ARCHOPT="-mthumb -march=armv7-a" echo "" echo "***" diff --git a/website/api/duk_del_prop_literal.yaml b/website/api/duk_del_prop_literal.yaml index 7a71a6ba..7329c60f 100644 --- a/website/api/duk_del_prop_literal.yaml +++ b/website/api/duk_del_prop_literal.yaml @@ -20,7 +20,6 @@ example: | tags: - property - literal - - experimental seealso: - duk_del_prop diff --git a/website/api/duk_get_global_literal.yaml b/website/api/duk_get_global_literal.yaml index 2fa39359..95878f77 100644 --- a/website/api/duk_get_global_literal.yaml +++ b/website/api/duk_get_global_literal.yaml @@ -22,7 +22,6 @@ example: | tags: - property - literal - - experimental seealso: - duk_get_global_string diff --git a/website/api/duk_get_prop_literal.yaml b/website/api/duk_get_prop_literal.yaml index 62f8c3d0..f788f472 100644 --- a/website/api/duk_get_prop_literal.yaml +++ b/website/api/duk_get_prop_literal.yaml @@ -20,7 +20,6 @@ example: | tags: - property - literal - - experimental seealso: - duk_get_prop diff --git a/website/api/duk_has_prop_literal.yaml b/website/api/duk_has_prop_literal.yaml index e834b27f..189bc749 100644 --- a/website/api/duk_has_prop_literal.yaml +++ b/website/api/duk_has_prop_literal.yaml @@ -21,7 +21,6 @@ example: | tags: - property - literal - - experimental seealso: - duk_has_prop diff --git a/website/api/duk_push_literal.yaml b/website/api/duk_push_literal.yaml index 9229bb3d..28324c37 100644 --- a/website/api/duk_push_literal.yaml +++ b/website/api/duk_push_literal.yaml @@ -63,6 +63,5 @@ example: | tags: - stack - literal - - experimental introduced: 2.3.0 diff --git a/website/api/duk_put_global_literal.yaml b/website/api/duk_put_global_literal.yaml index 1e9bb252..0a81d177 100644 --- a/website/api/duk_put_global_literal.yaml +++ b/website/api/duk_put_global_literal.yaml @@ -18,7 +18,6 @@ example: | tags: - property - literal - - experimental seealso: - duk_put_global_string diff --git a/website/api/duk_put_prop_literal.yaml b/website/api/duk_put_prop_literal.yaml index 3fde76c2..e59a3193 100644 --- a/website/api/duk_put_prop_literal.yaml +++ b/website/api/duk_put_prop_literal.yaml @@ -21,7 +21,6 @@ example: | tags: - property - literal - - experimental seealso: - duk_put_prop diff --git a/website/api/symbols-are-strings.html b/website/api/symbols-are-strings.html index 729e91b4..5243ee7c 100644 --- a/website/api/symbols-are-strings.html +++ b/website/api/symbols-are-strings.html @@ -1,9 +1,9 @@
Symbol values are visible in the C API as strings so that both duk_is_symbol() and duk_is_string() are true. -This behavior is similar to Duktape 1.x internal strings. Symbols are -still an experimental feature; for now, you can distinguish Symbols from -ordinary strings using duk_is_symbol(). +This behavior is similar to Duktape 1.x internal strings. You can +distinguish Symbols from ordinary strings using +duk_is_symbol(). For the internal representation, see symbols.rst.
diff --git a/website/index/index.html b/website/index/index.html index 34ad7e29..23c91a1d 100644 --- a/website/index/index.html +++ b/website/index/index.html @@ -69,12 +69,12 @@ Duktape API to call ECMAScript functions from C code and vice versa.

For a "Hello world" example:

- - - - - - + + + + + +
ConfigCode footprint (kB)Startup RAM (kB)
thumb default14673
thumb lowmem9626
thumb full lowmem1201.5
x86 default17674
x86 lowmem12127
x86 full lowmem1461.5
thumb default14878
thumb lowmem9627
thumb full lowmem1191.5
x86 default18778
x86 lowmem12427
x86 full lowmem1481.5

See Benchmarks.