]>
git.kaiwu.me - quickjs.git/log
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
Fabrice Bellard [Thu, 4 Jun 2026 09:31:14 +0000 (11:31 +0200)]
doc update
Fabrice Bellard [Thu, 4 Jun 2026 09:08:15 +0000 (11:08 +0200)]
keep more generic cpu_count() for non Linux systems
Fabrice Bellard [Thu, 4 Jun 2026 09:03:10 +0000 (11:03 +0200)]
fixed microbench with d8
Fabrice Bellard [Wed, 3 Jun 2026 15:25:16 +0000 (17:25 +0200)]
faster add, sub and mul for mixed integer floating point operands
Fabrice Bellard [Wed, 3 Jun 2026 14:18:26 +0000 (16:18 +0200)]
exclude few very slow and currently useless test262 tests
Fabrice Bellard [Wed, 3 Jun 2026 13:48:17 +0000 (15:48 +0200)]
fixed large performance regression with recent GCC versions
Fabrice Bellard [Wed, 3 Jun 2026 13:19:05 +0000 (15:19 +0200)]
add optional define to add asm labels for each opcode to ease code inspection and profiling
Fabrice Bellard [Tue, 2 Jun 2026 16:12:02 +0000 (18:12 +0200)]
added multi-threading support in run-test262 (initial patch by bnoordhuis) - fixed unsafe thread termination in show_progress() - use the number of physical cores by default - added -T option to force the number of threads - avoid hardcoding the maximum number of threads
Fabrice Bellard [Tue, 2 Jun 2026 12:42:27 +0000 (14:42 +0200)]
removed CONFIG_AGENT
Fabrice Bellard [Tue, 2 Jun 2026 12:17:40 +0000 (14:17 +0200)]
fixed win32 compilation
Fabrice Bellard [Tue, 2 Jun 2026 12:08:19 +0000 (14:08 +0200)]
ArrayBuffer.prototype.transfer: avoid destroying the old array buffer in case the allocation of the new array buffer fails. Also avoid setting opaque = NULL for the custom array buffer free function
Fabrice Bellard [Tue, 2 Jun 2026 10:14:13 +0000 (12:14 +0200)]
add line number info in variable initialization (#458)
Fabrice Bellard [Tue, 2 Jun 2026 08:29:05 +0000 (10:29 +0200)]
use the host malloc() for all allocations when ASAN is enabled
Fabrice Bellard [Mon, 1 Jun 2026 16:47:42 +0000 (18:47 +0200)]
fixed setuid() / setgid() ordering (#517)
Fabrice Bellard [Mon, 1 Jun 2026 16:43:57 +0000 (18:43 +0200)]
disable inlining of malloc() wrappers to avoid problems with LTO (#515)
Fabrice Bellard [Mon, 1 Jun 2026 16:24:48 +0000 (18:24 +0200)]
added poll() support so that the number of file handles is not limited (#502)
Ivan Krasilnikov [Tue, 2 Jun 2026 08:39:16 +0000 (16:39 +0800)]
Add run-test262 --no-can-block flag (#505)
The flag is needed to pass the two CanBlockIsFalse tests from test262
when running individual preprocessed tests via run-test262 -N.
Fabrice Bellard [Thu, 21 May 2026 17:02:15 +0000 (19:02 +0200)]
fixed compilation with clang
Fabrice Bellard [Thu, 21 May 2026 16:37:42 +0000 (18:37 +0200)]
added custom malloc for small blocks (11% faster on bench-v8)
Fabrice Bellard [Thu, 14 May 2026 17:11:10 +0000 (19:11 +0200)]
Add Uint8Array base64/hex methods (initial patch by saghul)
Fabrice Bellard [Thu, 14 May 2026 14:21:10 +0000 (16:21 +0200)]
memcpy() (currently) has undefined behavior if a pointer is NULL with zero size (#500)
Fabrice Bellard [Thu, 14 May 2026 13:51:22 +0000 (15:51 +0200)]
fixed error handling in os.exec() (#503)