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 @@
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.
For a "Hello world" example:
Config | Code footprint (kB) | Startup RAM (kB) |
---|---|---|
thumb default | 146 | 73 |
thumb lowmem | 96 | 26 |
thumb full lowmem | 120 | 1.5 |
x86 default | 176 | 74 |
x86 lowmem | 121 | 27 |
x86 full lowmem | 146 | 1.5 |
thumb default | 148 | 78 |
thumb lowmem | 96 | 27 |
thumb full lowmem | 119 | 1.5 |
x86 default | 187 | 78 |
x86 lowmem | 124 | 27 |
x86 full lowmem | 148 | 1.5 |
See Benchmarks.