]>
git.kaiwu.me - quickjs.git/log
Fabrice Bellard [Thu, 14 May 2026 12:57:49 +0000 (14:57 +0200)]
added libunicode unicode version (#509)
bellard [Thu, 14 May 2026 14:34:46 +0000 (16:34 +0200)]
Merge pull request #496 from bptato/fix-hex-access
Fix member access on non-decimal numeric literals
bellard [Thu, 14 May 2026 14:25:01 +0000 (16:25 +0200)]
Merge pull request #495 from nickva/fix-initializer-string-warning
Avoid initializer-string warning for the digits array
bptato [Tue, 24 Mar 2026 18:44:11 +0000 (19:44 +0100)]
Fix member access on non-decimal numeric literals
In other engines, 0x0.toString() returns '0', but QJS would try to parse it
as a float and then throw.
Also removes remnants of hex float parsing which is no longer supported
anyway.
(Port of https://github.com/quickjs-ng/quickjs/pull/377)
Nick Vatamaniuc [Tue, 24 Mar 2026 04:46:16 +0000 (00:46 -0400)]
Avoid initializer-string warning for the digits array
Some newer compilers emit this warning:
```
warning: initializer-string for character array is too long, array size is 36
but initializer has size 37 (including the null terminating character);
did you mean to use the 'nonstring' attribute? [-Wunterminated-string-initialization]
12146 | static char const digits[36] = "0123456789abcdefghijklmnopqrstuvwxyz";
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
To avoid the warning initialize the array as individual characters
Fabrice Bellard [Mon, 23 Mar 2026 17:45:52 +0000 (18:45 +0100)]
added JSON.parse source text access
Fabrice Bellard [Sat, 21 Mar 2026 16:49:40 +0000 (17:49 +0100)]
added basic protection against too large function in serialized bytecode
Fabrice Bellard [Sat, 21 Mar 2026 16:39:27 +0000 (17:39 +0100)]
fixed use-after-free via re-entrant GC in FinalizationRegistry weak reference cleanup (#494)
Fabrice Bellard [Sat, 21 Mar 2026 15:34:37 +0000 (16:34 +0100)]
Fix async generator lifecycle bug (bnoordhuis) (quickjs-ng/quickjs#1355)
Fabrice Bellard [Sat, 21 Mar 2026 14:53:25 +0000 (15:53 +0100)]
fixed RegExp.escape
Fabrice Bellard [Sat, 21 Mar 2026 14:35:03 +0000 (15:35 +0100)]
fixed buffer overflow in Atomics with resizable typed arrays
Fabrice Bellard [Sat, 21 Mar 2026 13:31:19 +0000 (14:31 +0100)]
typo
Fabrice Bellard [Sat, 21 Mar 2026 13:26:00 +0000 (14:26 +0100)]
Fix memory leak in Iterator.prototype.map (saghul) (#493)
Fabrice Bellard [Sat, 21 Mar 2026 13:18:38 +0000 (14:18 +0100)]
fixed buffer overflow in TypedArray.prototype.with (#492)
Fabrice Bellard [Sat, 21 Mar 2026 12:43:57 +0000 (13:43 +0100)]
Fix stack underflow with generator in iterable (saghul) (#488)
Fabrice Bellard [Sat, 21 Mar 2026 11:39:29 +0000 (12:39 +0100)]
test262 update
Fabrice Bellard [Sat, 21 Mar 2026 11:23:53 +0000 (12:23 +0100)]
fixed TypedArray constructor semantics which removes a buffer overflow (#478)
Fabrice Bellard [Sat, 21 Mar 2026 10:33:13 +0000 (11:33 +0100)]
fixed TypedArray sort semantics by copying the array before calling the comparison function. Fixed buffer overflow when the array is resized (#477)
Fabrice Bellard [Sat, 21 Mar 2026 09:55:57 +0000 (10:55 +0100)]
modified js_allocate_fast_array() so that the array is fully initialized. It is slightly slower but avoids several nasty bugs (#471)
Fabrice Bellard [Mon, 22 Dec 2025 14:12:46 +0000 (15:12 +0100)]
regexp: removed alloca() is lre_exec() - added specific opcodes for \s and \S to have a smaller bytecode - optimized \b and \B
Fabrice Bellard [Mon, 22 Dec 2025 14:05:37 +0000 (15:05 +0100)]
\x{N} is a syntax error
Fabrice Bellard [Mon, 22 Dec 2025 14:03:43 +0000 (15:03 +0100)]
slightly faster lexical variable assignment
Fabrice Bellard [Thu, 11 Dec 2025 18:27:19 +0000 (19:27 +0100)]
Don't call well-known Symbol methods for RegExp on primitive values
Fabrice Bellard [Thu, 11 Dec 2025 18:18:56 +0000 (19:18 +0100)]
removed use after free in js_create_module_bytecode_function() (#467)
Fabrice Bellard [Thu, 11 Dec 2025 18:17:38 +0000 (19:17 +0100)]
removed memory leak in case of error in cpool_add() (#468)
Fabrice Bellard [Wed, 3 Dec 2025 12:36:26 +0000 (13:36 +0100)]
fixed fast array extension optimization when there are multiple realms
Fabrice Bellard [Wed, 3 Dec 2025 12:30:33 +0000 (13:30 +0100)]
added regexp duplicate named groups - fixed reset of captures with quantizers
Fabrice Bellard [Sat, 29 Nov 2025 14:14:41 +0000 (15:14 +0100)]
updated to unicode 17.0.0 - updated test262 version
Fabrice Bellard [Sat, 29 Nov 2025 12:13:18 +0000 (13:13 +0100)]
added missing lre_poll_timeout()
Fabrice Bellard [Sat, 29 Nov 2025 12:04:47 +0000 (13:04 +0100)]
regexp: cosmetic: make it clearer that there is now a set of registers instead of an auxiliary stack
Fabrice Bellard [Sat, 29 Nov 2025 11:39:52 +0000 (12:39 +0100)]
regexp: ensure that the bytecode size grows linearly with respect to
the input regexp.
This way, pathological regexps such as
/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/ are no longer an issue. The generated bytecode is also simpler and
faster.
Fabrice Bellard [Sat, 22 Nov 2025 11:10:55 +0000 (12:10 +0100)]
removed buffer overflows introduced in regexp optimizations
Fabrice Bellard [Sat, 22 Nov 2025 10:03:45 +0000 (11:03 +0100)]
fixed Worker freeing logic (#462)
Fabrice Bellard [Sat, 22 Nov 2025 10:00:50 +0000 (11:00 +0100)]
- optimized Regexp.prototype.exec
- optimized String.prototype.replace
- optimized 'arguments' object creation
- optimized access to non strict 'arguments' elements
Fabrice Bellard [Sat, 22 Nov 2025 09:44:19 +0000 (10:44 +0100)]
faster and simpler implementation of regexp backtracking
Fabrice Bellard [Sat, 15 Nov 2025 13:52:50 +0000 (14:52 +0100)]
fixed BJSON array serialization (#457)
Fabrice Bellard [Sat, 15 Nov 2025 11:22:50 +0000 (12:22 +0100)]
- Added Iterator.concat (initial patch by bnoordhuis)
- optimized js_iterator_concat_next()
- added more guards against recursion in Iterator.concat operations
Fabrice Bellard [Sat, 15 Nov 2025 11:18:18 +0000 (12:18 +0100)]
optimized add/sub int32 overflow
Fabrice Bellard [Sat, 15 Nov 2025 11:10:44 +0000 (12:10 +0100)]
added error checking in JS_InstantiateFunctionListItem()
Fabrice Bellard [Sat, 15 Nov 2025 11:01:20 +0000 (12:01 +0100)]
- Closure optimization (go from quadratic to linear time when the number
of closure variables is large)
- Separated JSVarDef and JSBytecodeVarDef to simplify the code and save memory
- fixed debug info stripping with global variables
Fabrice Bellard [Wed, 5 Nov 2025 10:46:20 +0000 (11:46 +0100)]
Restore a mistakenly removed goto on error in js_build_module_ns() (igorburago)
Fabrice Bellard [Wed, 5 Nov 2025 10:41:18 +0000 (11:41 +0100)]
fixed JS_PROP_AUTOINIT handling in js_closure_define_global_var() (#455)
Fabrice Bellard [Wed, 5 Nov 2025 10:29:03 +0000 (11:29 +0100)]
fixed exception handling in put_var operation (regression introduced by commit
a6816be ) (#454)
Fabrice Bellard [Mon, 3 Nov 2025 17:52:39 +0000 (18:52 +0100)]
More informative "not a constructor" error message (initial patch by bnoordhuis) (#368)
Fabrice Bellard [Mon, 3 Nov 2025 17:38:20 +0000 (18:38 +0100)]
Fix length check in ArrayBuffer.prototype.slice (bnoordhuis) (#451)
Fabrice Bellard [Mon, 3 Nov 2025 17:29:10 +0000 (18:29 +0100)]
fixed DataView resizing
Fabrice Bellard [Mon, 3 Nov 2025 17:23:19 +0000 (18:23 +0100)]
Fix use-after-free in ArrayBuffer.prototype.transfer (bnoordhuis) (#450) - use js_array_buffer_update_typed_arrays() in JS_DetachArrayBuffer()
Fabrice Bellard [Mon, 3 Nov 2025 16:22:18 +0000 (17:22 +0100)]
qjs: added --strict option - don't consider included files as modules - allow module and strict code with -e option
Fabrice Bellard [Mon, 3 Nov 2025 16:14:12 +0000 (17:14 +0100)]
removed duplicate test
Fabrice Bellard [Mon, 3 Nov 2025 16:08:59 +0000 (17:08 +0100)]
Much faster destructuring at the expense of a slight incompatibility
with the spec when direct evals are present (v8 behaves the same way).
Fabrice Bellard [Mon, 3 Nov 2025 15:57:20 +0000 (16:57 +0100)]
optimized global variable access
Fabrice Bellard [Sat, 18 Oct 2025 10:04:12 +0000 (12:04 +0200)]
removed uninitialized variable
Fabrice Bellard [Sat, 18 Oct 2025 09:09:17 +0000 (11:09 +0200)]
updated test results
Fabrice Bellard [Sat, 18 Oct 2025 09:05:05 +0000 (11:05 +0200)]
fixed operation order in Regexp constructor
Fabrice Bellard [Sat, 18 Oct 2025 08:50:51 +0000 (10:50 +0200)]
changed module rejection order according to spec change
Fabrice Bellard [Thu, 16 Oct 2025 13:21:24 +0000 (15:21 +0200)]
optimized Array.prototype.push
Fabrice Bellard [Thu, 16 Oct 2025 13:10:58 +0000 (15:10 +0200)]
inlined the get_length operation
Fabrice Bellard [Thu, 16 Oct 2025 13:00:29 +0000 (15:00 +0200)]
added js_string_eq()
Fabrice Bellard [Mon, 13 Oct 2025 12:51:37 +0000 (14:51 +0200)]
stricter year parsing in Date
Fabrice Bellard [Mon, 13 Oct 2025 12:11:47 +0000 (14:11 +0200)]
fixed argument evaluation order in Date constructor and Date.UTC()
Fabrice Bellard [Mon, 13 Oct 2025 11:51:25 +0000 (13:51 +0200)]
faster and safer dbuf functions (#443)
Fabrice Bellard [Sun, 12 Oct 2025 11:28:37 +0000 (13:28 +0200)]
test262 update
Fabrice Bellard [Sun, 12 Oct 2025 11:23:50 +0000 (13:23 +0200)]
fixed regression in error message display introduced in commit
42eb279
Fabrice Bellard [Sat, 11 Oct 2025 09:13:13 +0000 (11:13 +0200)]
compilation fix for clang
Fabrice Bellard [Sat, 11 Oct 2025 08:59:21 +0000 (10:59 +0200)]
Faster context creation and exception checks in JS_NewContext (#404)
- simplified internal object init
- check exceptions in JS_NewContext()
- preallocated std object properties
- preallocated more atoms
Fabrice Bellard [Wed, 8 Oct 2025 12:16:51 +0000 (14:16 +0200)]
update
Fabrice Bellard [Wed, 8 Oct 2025 12:11:27 +0000 (14:11 +0200)]
faster appending of elements in arrays
Fabrice Bellard [Wed, 8 Oct 2025 09:32:17 +0000 (11:32 +0200)]
optimized string_buffer_putc()
Fabrice Bellard [Tue, 7 Oct 2025 17:10:27 +0000 (19:10 +0200)]
optimized post_inc and post_dec
Fabrice Bellard [Sat, 4 Oct 2025 08:46:29 +0000 (10:46 +0200)]
optimized array access by inlining get_array_el, get_array_el2, get_array_el3 and put_array_el
Fabrice Bellard [Fri, 3 Oct 2025 14:52:17 +0000 (16:52 +0200)]
removed JS_PROP_NO_ADD
Fabrice Bellard [Fri, 3 Oct 2025 13:41:21 +0000 (15:41 +0200)]
inlined fast path for get_field, get_field2 and put_field
Fabrice Bellard [Fri, 3 Oct 2025 12:26:13 +0000 (14:26 +0200)]
- optimized global variable access
- removed full compliance with the spec for strict mode variable
assignment so that they are as fast as in non strict mode (V8,
SpiderMonkey and JavascriptCore do the same, so IMHO the spec should
be updated).
Fabrice Bellard [Fri, 3 Oct 2025 10:25:05 +0000 (12:25 +0200)]
optimize the create of arrays - optimized the rest and array_from opcodes
Fabrice Bellard [Fri, 3 Oct 2025 10:00:26 +0000 (12:00 +0200)]
Improve error handling in Promise.withResolvers (bnoordhuis)
Fabrice Bellard [Fri, 3 Oct 2025 09:55:50 +0000 (11:55 +0200)]
updated test262
bellard [Tue, 30 Sep 2025 08:35:00 +0000 (10:35 +0200)]
Merge pull request #408 from nickva/run-test262-in-ci
Run test262 tests in CI
Nick Vatamaniuc [Tue, 13 May 2025 03:35:22 +0000 (23:35 -0400)]
Run test262 tests in CI
Run test262 tests for Linux, macOS and Cosmopolitan
Add a Makefile `test2-bootstrap` helper to clone and patch test262 tests at
a particular commit. Running with the latest commit noticed a few tests were
failing and added them to the errors list.
The CI environment, especially for macOS, was a bit more unpredictable and was
failing in atomics tests due to lower timeouts in the `atomicsHelper` so double
the timeouts. The time didn't worsen too much. It still takes about 2-3 min.
Fabrice Bellard [Mon, 29 Sep 2025 14:12:23 +0000 (16:12 +0200)]
simplified math.sumPrecise()
Fabrice Bellard [Mon, 29 Sep 2025 13:13:04 +0000 (15:13 +0200)]
fixed Date parsing: "1997-03-08 11:19:10-0700" is a valid date and "1997-03-08T11:19:10-07" should yield an error
Fabrice Bellard [Mon, 29 Sep 2025 10:10:36 +0000 (12:10 +0200)]
fixed Atomics.pause() in the NaN boxing case (32 bit cpu)
Fabrice Bellard [Sat, 27 Sep 2025 16:44:19 +0000 (18:44 +0200)]
added Math.sumPrecise()
Fabrice Bellard [Sat, 27 Sep 2025 08:24:48 +0000 (10:24 +0200)]
added Map and WeakMap upsert methods (bnoordhuis)
Fabrice Bellard [Mon, 22 Sep 2025 16:58:18 +0000 (18:58 +0200)]
- added Atomics.pause (bnoordhuis)
- use the pause instruction for x86 and ARM64 in Atomics.pause()
Fabrice Bellard [Mon, 22 Sep 2025 16:37:41 +0000 (18:37 +0200)]
- added resizable array buffers (bnoordhuis)
- fixed Atomics.wait, Atomics.notify, TypedArray.prototype.lastIndexOf
- fixed JS_PreventExtensions() with resizable typed arrays
Fabrice Bellard [Mon, 22 Sep 2025 12:48:43 +0000 (14:48 +0200)]
fixed parsing of computed property name
Fabrice Bellard [Sun, 21 Sep 2025 14:41:02 +0000 (16:41 +0200)]
- added ArrayBuffer.prototype.transfer (Divy Srivastava)
- fixed transfer when the ArrayBuffer was allocated with a custom allocator
Fabrice Bellard [Sat, 20 Sep 2025 16:30:02 +0000 (18:30 +0200)]
Iterator functions:
- removed memory leak
- don't close iterator when IteratorStepValue fails
- fixed Iterator Wrap next() and return() arguments
- fixed Iterator.from()
Fabrice Bellard [Sat, 20 Sep 2025 15:05:13 +0000 (17:05 +0200)]
Iterator is an abstract class (bnoordhuis)
Fabrice Bellard [Sat, 20 Sep 2025 15:01:52 +0000 (17:01 +0200)]
fix Iterator.prototype.constructor (initial patch by bnoordhuis)
Fabrice Bellard [Sat, 20 Sep 2025 14:47:43 +0000 (16:47 +0200)]
added Iterator.prototype.[drop,filter,flatMap,map,take,every,find,forEach,some,reduce,[Symbol.toStringTag]] (saghul)
Fabrice Bellard [Sat, 20 Sep 2025 14:27:45 +0000 (16:27 +0200)]
added Iterator.prototype.toArray and Iterator.from (bnoordhuis)
Fabrice Bellard [Sat, 20 Sep 2025 14:05:36 +0000 (16:05 +0200)]
added the Iterator object
Fabrice Bellard [Sat, 20 Sep 2025 12:31:14 +0000 (14:31 +0200)]
removed uninitialized values - removed useless init
Fabrice Bellard [Sat, 20 Sep 2025 12:21:39 +0000 (14:21 +0200)]
set methods: removed memory leaks - fixed ordering of property access - fixed conversion to integer of 'size' in GetSetRecord() - added missing iterator close - factorized code
Fabrice Bellard [Sat, 20 Sep 2025 10:19:50 +0000 (12:19 +0200)]
added set methods (bnoordhuis)
Fabrice Bellard [Thu, 18 Sep 2025 08:42:13 +0000 (10:42 +0200)]
removed memory leak (#441)
Fabrice Bellard [Thu, 18 Sep 2025 08:28:33 +0000 (10:28 +0200)]
updated release.sh
Fabrice Bellard [Sat, 13 Sep 2025 08:51:18 +0000 (10:51 +0200)]
new release
Fabrice Bellard [Sat, 13 Sep 2025 08:22:24 +0000 (10:22 +0200)]
Fix crash on failure to read bytecode (penneryu)