]>
git.kaiwu.me - quickjs.git/log
Fabrice Bellard [Mon, 2 Nov 2026 10:03:00 +0000 (11:03 +0100)]
Fix symbol leak in JS_ValueToAtom (#590) - changed js_symbol_to_atom() signature
Fabrice Bellard [Mon, 2 Nov 2026 09:26:42 +0000 (10:26 +0100)]
arm64: use nan boxing only on Mac OS as other OSes may use user pointers with more than 47 bits (#588)
Fabrice Bellard [Sat, 31 Oct 2026 18:03:33 +0000 (19:03 +0100)]
test262 update
Fabrice Bellard [Sat, 31 Oct 2026 17:44:04 +0000 (18:44 +0100)]
update DataView.prototype.[byteLength|byteOffset] not to throw when the view is out of bounds (spec change)
Fabrice Bellard [Sat, 31 Oct 2026 17:28:54 +0000 (18:28 +0100)]
fixed Iterator.prototype.reduce empty iterator closing
Fabrice Bellard [Sat, 31 Oct 2026 17:25:56 +0000 (18:25 +0100)]
fixed Iterator.prototype.flatMap iterator closing (saghul)
Fabrice Bellard [Sat, 31 Oct 2026 17:21:35 +0000 (18:21 +0100)]
fixed Iterator.concat logic (initial patch by saghul)
Fabrice Bellard [Sat, 31 Oct 2026 16:46:00 +0000 (17:46 +0100)]
fixed slow Array truncation (#585)
Fabrice Bellard [Sat, 31 Oct 2026 13:53:20 +0000 (14:53 +0100)]
removed warnings
Fabrice Bellard [Sat, 31 Oct 2026 13:10:26 +0000 (14:10 +0100)]
enabled nan-boxing for JSValue on common 64 bit targets (faster and reduced memory usage)
Fabrice Bellard [Sat, 31 Oct 2026 12:55:55 +0000 (13:55 +0100)]
support of the error stack accessor proposal (saghul)
Fabrice Bellard [Sat, 31 Oct 2026 12:50:55 +0000 (13:50 +0100)]
fixed JS_AutoInitProperty() behavior when out of memory (#580)
Fabrice Bellard [Sat, 31 Oct 2026 12:03:31 +0000 (13:03 +0100)]
fix leak in JS_ToCStringLen2 on failure (vanzomerenc, #587)
Fabrice Bellard [Sat, 31 Oct 2026 12:00:35 +0000 (13:00 +0100)]
fixed wrong result when comparing a negative BigInt with a negative float (liustack, #583)
Fabrice Bellard [Sat, 31 Oct 2026 11:54:24 +0000 (12:54 +0100)]
allow JS_SHORT_BIG_INT_BITS < JS_LIMB_BITS
Fabrice Bellard [Sat, 31 Oct 2026 11:52:13 +0000 (12:52 +0100)]
fixed bigint decrementation with JS_LIMB_BITS=64
Fabrice Bellard [Mon, 26 Oct 2026 15:42:08 +0000 (16:42 +0100)]
fixed arbitrary module namespace names
Fabrice Bellard [Mon, 26 Oct 2026 15:20:38 +0000 (16:20 +0100)]
Implement nonextensible-applies-to-private proposal (saghul)
Fabrice Bellard [Mon, 26 Oct 2026 15:00:14 +0000 (16:00 +0100)]
Await the async iterator return() when a for-await loop breaks (Divy Srivastava)
Fabrice Bellard [Mon, 26 Oct 2026 13:33:01 +0000 (14:33 +0100)]
Fix template literal substitution (Iann29)
Fabrice Bellard [Mon, 26 Oct 2026 12:40:27 +0000 (13:40 +0100)]
faster String.prototype.concat
Fabrice Bellard [Mon, 26 Oct 2026 11:17:03 +0000 (12:17 +0100)]
Fix Proxy ownKeys trap accepting a primitive result (saghul)
Fabrice Bellard [Mon, 26 Oct 2026 11:13:27 +0000 (12:13 +0100)]
Fix arity of os.chdir and std.setenv (bnoordhuis)
Fabrice Bellard [Mon, 26 Oct 2026 11:11:59 +0000 (12:11 +0100)]
Write back every element in Array.prototype.sort (theaddonn)
Fabrice Bellard [Mon, 26 Oct 2026 10:58:36 +0000 (11:58 +0100)]
fixed a use after free in build_backtrace() on out of memory (#529, initial patch by kangzj)
Fabrice Bellard [Mon, 26 Oct 2026 10:48:10 +0000 (11:48 +0100)]
Fix leak in JS_ReadBigInt on truncated input (initial patch by theaddonn)
Fabrice Bellard [Mon, 26 Oct 2026 10:38:29 +0000 (11:38 +0100)]
removed infinite loop in unicode_script() (Kayyo321)
Fabrice Bellard [Mon, 26 Oct 2026 10:19:52 +0000 (11:19 +0100)]
intl: removed use after free - removed buffer overflow - fixed invalid use of isalnum()
Fabrice Bellard [Mon, 26 Oct 2026 09:27:35 +0000 (10:27 +0100)]
added Atomics.waitAsync()
Fabrice Bellard [Sat, 24 Oct 2026 11:21:43 +0000 (13:21 +0200)]
fixed pretty printing of Symbol property names and added tests
Fabrice Bellard [Tue, 20 Oct 2026 17:11:10 +0000 (19:11 +0200)]
run-test262: use JS_ToString() to display thrown exceptions when they are not Error instances so that Test262Error exceptions are correctly displayed
Nick Vatamaniuc [Tue, 20 Oct 2026 17:06:07 +0000 (13:06 -0400)]
Fix CI (#573)
Cosmopolitan https://cosmo.zip/pub/cosmocc/cosmocc.zip is not available. Use
GitHub release instead.
Update checkout action to latest version (v7).
Fabrice Bellard [Mon, 19 Oct 2026 16:42:48 +0000 (18:42 +0200)]
implemented the Intl.Locale info methods and added the full UTS 35 likely subtags data
Fabrice Bellard [Mon, 19 Oct 2026 16:30:29 +0000 (18:30 +0200)]
fixed 6 test262 errors: Intl.Locale now recognizes u-extension keys starting with a digit and applies CanonicalizeUValue to option values
Fabrice Bellard [Mon, 19 Oct 2026 16:27:29 +0000 (18:27 +0200)]
fixed 6 test262 errors: unknown named time zones are now rejected by ToTemporalTimeZoneIdentifier, PlainMonthDay.from(string) now stores the calendar reference date, ToRawPrecision now drops the digit added by a rounding carry and trims the trailing zeros not needed by minimumSignificantDigits, and the short (abbreviated) weekday names are now available in the locale data
Fabrice Bellard [Mon, 19 Oct 2026 16:07:12 +0000 (18:07 +0200)]
explicit resource management: added 'using' variable declarations (initial patch by bnoordhuis and saghul) - simplified the code by removing 'OP_dispose_scope' as the disposal code can be generated on the fly - avoid declaring 'using' as a keyword - use peek_token() to efficiently test the presence of a 'using' declaration - added DECL_MASK_USING to identify the statements where 'using' declarations are allowed
Fabrice Bellard [Sat, 17 Oct 2026 11:52:15 +0000 (13:52 +0200)]
added explicit resource management objects (bnoordhuis, saghul) - fixed null method check in js_iterator_proto_dispose() and js_async_iterator_proto_dispose()
Fabrice Bellard [Tue, 13 Oct 2026 16:40:10 +0000 (18:40 +0200)]
compilation fixes
Fabrice Bellard [Tue, 13 Oct 2026 16:32:27 +0000 (18:32 +0200)]
added Promise.allKeyed and Promise.allSettledKeyed)
Fabrice Bellard [Tue, 13 Oct 2026 16:09:44 +0000 (18:09 +0200)]
added iterator chunking (initial patch by saghul)
Fabrice Bellard [Tue, 13 Oct 2026 15:39:02 +0000 (17:39 +0200)]
added Iterator.prototype.includes (saghul)
Fabrice Bellard [Tue, 13 Oct 2026 15:34:25 +0000 (17:34 +0200)]
added Iterator.prototype.join (saghul)
Fabrice Bellard [Tue, 13 Oct 2026 14:47:12 +0000 (16:47 +0200)]
added Array.fromAsync
Fabrice Bellard [Tue, 13 Oct 2026 13:51:24 +0000 (15:51 +0200)]
use correct helper for Iterator.concat
Fabrice Bellard [Tue, 13 Oct 2026 13:43:28 +0000 (15:43 +0200)]
added Iterator.zip and Iterator.zipKeyed - factorized js_get_iterator_flattenable()
Fabrice Bellard [Tue, 13 Oct 2026 12:40:18 +0000 (14:40 +0200)]
removed memory leak
Fabrice Bellard [Tue, 13 Oct 2026 11:33:20 +0000 (13:33 +0200)]
CI: disable CONFIG_TEMPORAL_INTL on linux/arm/v6 and linux/arm/v7
Fabrice Bellard [Mon, 12 Oct 2026 11:49:56 +0000 (13:49 +0200)]
fixed bad rounding in duration computation
Fabrice Bellard [Mon, 12 Oct 2026 10:53:31 +0000 (12:53 +0200)]
fixed bad rounding in duration computation
Fabrice Bellard [Mon, 12 Oct 2026 10:07:55 +0000 (12:07 +0200)]
disable Temporal and Intl on 32 bit hosts because int128 is not always supported in this case - avoid depending on float128 for duration division - simplified some int128 code
Fabrice Bellard [Sat, 10 Oct 2026 16:47:01 +0000 (18:47 +0200)]
removed some warnings - fixed win32 compilation
Fabrice Bellard [Sat, 10 Oct 2026 16:05:17 +0000 (18:05 +0200)]
undo Makefile change
Fabrice Bellard [Sat, 10 Oct 2026 16:00:29 +0000 (18:00 +0200)]
added missing file
Fabrice Bellard [Sat, 10 Oct 2026 15:53:37 +0000 (17:53 +0200)]
added experimental AI coded Temporal and Intl support. There is no external dependency. Intl includes its own locale data (can be manually updated from the CLDR) and Temporal includes the calendar algorithms and a timezone database (can be manually updated from the system TZif files)
Fabrice Bellard [Sat, 10 Oct 2026 14:49:45 +0000 (16:49 +0200)]
exported JS_NewCConstructor()
Fabrice Bellard [Sat, 10 Oct 2026 14:46:08 +0000 (16:46 +0200)]
exported iterator helpers
Fabrice Bellard [Sat, 10 Oct 2026 14:42:02 +0000 (16:42 +0200)]
added JS_CFUNC_constructor_or_func_flags
Fabrice Bellard [Sat, 10 Oct 2026 14:39:27 +0000 (16:39 +0200)]
export JS_OrdinaryIsInstanceOf()
Fabrice Bellard [Sat, 10 Oct 2026 14:37:36 +0000 (16:37 +0200)]
export JS_ThisDateValue()
Fabrice Bellard [Sat, 10 Oct 2026 14:32:04 +0000 (16:32 +0200)]
exported JS_CreateFromConstructor()
Fabrice Bellard [Sat, 10 Oct 2026 14:26:23 +0000 (16:26 +0200)]
added JS_ToCStringNZ() and exported JS_ToUTF32String()
Fabrice Bellard [Sat, 10 Oct 2026 14:23:33 +0000 (16:23 +0200)]
exported JS_ToPrimitive(), JS_ToObject() and JS_ToInt32Sat()
Fabrice Bellard [Sat, 10 Oct 2026 14:13:11 +0000 (16:13 +0200)]
libunicode: added lre_is_soft_dotted() and exported unicode_get_cc()
Fabrice Bellard [Sat, 10 Oct 2026 12:14:21 +0000 (14:14 +0200)]
removed unused arguments of JS_IteratorNext()
Fabrice Bellard [Sat, 10 Oct 2026 08:26:13 +0000 (10:26 +0200)]
fixed class elements parsing after a line terminator following get, set or static (#567)
Fabrice Bellard [Tue, 29 Sep 2026 13:16:59 +0000 (15:16 +0200)]
repect the spec operation order in Object.defineProperties
Fabrice Bellard [Tue, 29 Sep 2026 12:55:55 +0000 (14:55 +0200)]
fix Proxy getOwnPropertyDescriptor invariant check for values and accessors
Fabrice Bellard [Tue, 29 Sep 2026 12:06:59 +0000 (14:06 +0200)]
exclude more tests we don't need to fix
Fabrice Bellard [Tue, 29 Sep 2026 12:00:18 +0000 (14:00 +0200)]
fixed Function.prototype.bind prototype inheritance
Fabrice Bellard [Tue, 29 Sep 2026 10:21:26 +0000 (12:21 +0200)]
fix anonymous function name inference in for-in loop initializers
Fabrice Bellard [Tue, 29 Sep 2026 10:10:31 +0000 (12:10 +0200)]
fix super property assignment on non-extensible receiver with existing property
Fabrice Bellard [Tue, 29 Sep 2026 10:03:16 +0000 (12:03 +0200)]
fixed module ambiguous export test
Fabrice Bellard [Tue, 29 Sep 2026 08:30:40 +0000 (10:30 +0200)]
spec update for Promise.try
Fabrice Bellard [Mon, 28 Sep 2026 16:17:46 +0000 (18:17 +0200)]
exclude the test: test262/test/language/identifier-resolution/assign-to-global-undefined.js
Fabrice Bellard [Mon, 28 Sep 2026 15:36:29 +0000 (17:36 +0200)]
Annex B: allow call expression as assignment target in non-strict mode, but throw ReferenceError at runtime.
Fabrice Bellard [Mon, 28 Sep 2026 14:56:47 +0000 (16:56 +0200)]
simplified and fixed yield/await identifier parsing
Fabrice Bellard [Mon, 28 Sep 2026 12:16:33 +0000 (14:16 +0200)]
fixed returned value of empty catch blocks
Fabrice Bellard [Mon, 28 Sep 2026 11:57:18 +0000 (13:57 +0200)]
fixed TypedArray.prototype.at
Fabrice Bellard [Mon, 28 Sep 2026 11:35:05 +0000 (13:35 +0200)]
fixed 'return' invocation in Iterator helpers - fixed 'next' method get in Iterator.prototype.flatMap (#539)
Fabrice Bellard [Mon, 28 Sep 2026 10:31:48 +0000 (12:31 +0200)]
added clarification for the JS_PrintValue callback (#558)
Fabrice Bellard [Mon, 28 Sep 2026 10:07:30 +0000 (12:07 +0200)]
fixed ArrayBuffer.prototype.resize
Fabrice Bellard [Mon, 28 Sep 2026 10:00:54 +0000 (12:00 +0200)]
added JS_ToBigInt128(), JS_ToBigInt128Sat() and JS_NewBigInt128()
Fabrice Bellard [Mon, 28 Sep 2026 09:29:38 +0000 (11:29 +0200)]
fixed potential bug in 32 bit JS_ToBigInt64() (cannot happen with canonicalized bigints)
Fabrice Bellard [Sat, 26 Sep 2026 14:44:20 +0000 (16:44 +0200)]
run-test2: don't increment the test number for strict mode - fixed print_error() for large error messages - don't return an exit code different from 0 if there are errors when updating the error file - added -q option to disable progress output and also disable it when not outputting to a tty
Fabrice Bellard [Sat, 26 Sep 2026 14:10:20 +0000 (16:10 +0200)]
added JS_ToInt64SatF() and fixed String.prototype.repeat with it. Modify Iterator.prototype.drop/take to use it even if it is not strictly compliant as it avoids converting to double when the argument is a short integer value
Fabrice Bellard [Sat, 26 Sep 2026 13:12:07 +0000 (15:12 +0200)]
fixed memory leak in Atomics.store (#537)
Fabrice Bellard [Sat, 26 Sep 2026 13:01:46 +0000 (15:01 +0200)]
Reject out-of-range limits in Iterator.prototype.take/drop
Fabrice Bellard [Sat, 26 Sep 2026 12:39:43 +0000 (14:39 +0200)]
fixed BigInt.AsUintN() and added corresponding regression tests from quickjs-ng
Fabrice Bellard [Sat, 26 Sep 2026 11:01:30 +0000 (13:01 +0200)]
fixed regexp unicode set parsing (#520)
Fabrice Bellard [Sat, 26 Sep 2026 10:46:23 +0000 (12:46 +0200)]
added JS_NewSymbol()
Fabrice Bellard [Sat, 26 Sep 2026 10:41:54 +0000 (12:41 +0200)]
test262 update
Fabrice Bellard [Tue, 16 Jun 2026 11:34:49 +0000 (13:34 +0200)]
run-test262: when updating errors, sort them so that it gives the same result with several threads
Fabrice Bellard [Sat, 13 Jun 2026 16:03:49 +0000 (18:03 +0200)]
optimized Array.prototype.slice and Array.prototype.splice
Fabrice Bellard [Sat, 13 Jun 2026 15:54:54 +0000 (17:54 +0200)]
fixed typo in commit
445624b
Fabrice Bellard [Sat, 13 Jun 2026 10:21:10 +0000 (12:21 +0200)]
inlined the float case in relational operators
Fabrice Bellard [Sat, 13 Jun 2026 10:12:23 +0000 (12:12 +0200)]
use JSValueConst arguments for js_strict_eq2()
Fabrice Bellard [Sat, 13 Jun 2026 09:53:58 +0000 (11:53 +0200)]
inlined more cases for equality operators
Fabrice Bellard [Thu, 4 Jun 2026 12:53:29 +0000 (14:53 +0200)]
new release
bptato [Thu, 4 Jun 2026 09:58:49 +0000 (11:58 +0200)]
Check return values of fallible functions (#518)
Port of https://github.com/quickjs-ng/quickjs/pull/1409 (bnoordhuis).
I modified it to prevent an atom leak in js_parse_statement_or_decl,
otherwise it's the same.
Molefi Ramontseng [Thu, 4 Jun 2026 09:50:35 +0000 (11:50 +0200)]
Add fuzz targets for ES6 modules, JSON, RegExp, and bytecode (#512)
* Add fuzz targets for ES6 modules, JSON, RegExp, and bytecode
Adds 4 new fuzzers targeting high-complexity, low-coverage functions:
- fuzz_module_export: Tests ES6 module export/import parsing (complexity 6727)
- fuzz_json: Tests JSON stringify/parse (complexity ~5000)
- fuzz_regexp_compile: Tests RegExp compilation (complexity 5528)
- fuzz_bytecode: Tests bytecode execution (complexity 5383)
Identified by Fuzz Introspector as having 0% runtime coverage.
Build integration for fuzz/Makefile and build.sh included.
* Convert fuzz targets from C++ to C and use standard C headers