Fabrice Bellard
10c81b1989
fixed large performance regression with recent GCC versions
2026-06-03 15:48:17 +02:00
Fabrice Bellard
e2c01dff61
add optional define to add asm labels for each opcode to ease code inspection and profiling
2026-06-03 15:19:05 +02:00
Fabrice Bellard
2504823832
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
ci / Linux (Ubuntu) (push) Waiting to run
ci / Linux LTO (push) Waiting to run
ci / Linux 32bit (push) Waiting to run
ci / linux-asan (push) Waiting to run
ci / linux-msan (push) Waiting to run
ci / linux-ubsan (push) Waiting to run
ci / macOS (push) Waiting to run
ci / macos-asan (push) Waiting to run
ci / macos-ubsan (push) Waiting to run
ci / freebsd (push) Waiting to run
ci / Cosmopolitan (push) Waiting to run
ci / MinGW Windows target (push) Waiting to run
ci / Windows MSYS2 (push) Waiting to run
ci / qemu-alpine (linux/386) (push) Waiting to run
ci / qemu-alpine (linux/arm/v6) (push) Waiting to run
ci / qemu-alpine (linux/arm/v7) (push) Waiting to run
ci / qemu-alpine (linux/arm64) (push) Waiting to run
ci / qemu-alpine (linux/ppc64le) (push) Waiting to run
ci / qemu-alpine (linux/riscv64) (push) Waiting to run
ci / qemu-alpine (linux/s390x) (push) Waiting to run
2026-06-02 18:12:02 +02:00
Fabrice Bellard
458992ec8c
removed CONFIG_AGENT
2026-06-02 14:42:27 +02:00
Fabrice Bellard
774e30e796
fixed win32 compilation
ci / Linux (Ubuntu) (push) Waiting to run
ci / Linux LTO (push) Waiting to run
ci / Linux 32bit (push) Waiting to run
ci / linux-asan (push) Waiting to run
ci / linux-msan (push) Waiting to run
ci / linux-ubsan (push) Waiting to run
ci / macOS (push) Waiting to run
ci / macos-asan (push) Waiting to run
ci / macos-ubsan (push) Waiting to run
ci / freebsd (push) Waiting to run
ci / Cosmopolitan (push) Waiting to run
ci / MinGW Windows target (push) Waiting to run
ci / Windows MSYS2 (push) Waiting to run
ci / qemu-alpine (linux/386) (push) Waiting to run
ci / qemu-alpine (linux/arm/v6) (push) Waiting to run
ci / qemu-alpine (linux/arm/v7) (push) Waiting to run
ci / qemu-alpine (linux/arm64) (push) Waiting to run
ci / qemu-alpine (linux/ppc64le) (push) Waiting to run
ci / qemu-alpine (linux/riscv64) (push) Waiting to run
ci / qemu-alpine (linux/s390x) (push) Waiting to run
2026-06-02 14:17:40 +02:00
Fabrice Bellard
f838177689
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
2026-06-02 14:08:19 +02:00
Fabrice Bellard
14a1536e93
add line number info in variable initialization ( #458 )
2026-06-02 12:14:13 +02:00
Fabrice Bellard
ecd05ea133
use the host malloc() for all allocations when ASAN is enabled
2026-06-02 10:43:18 +02:00
Fabrice Bellard
4a13c45081
fixed setuid() / setgid() ordering ( #517 )
2026-06-02 10:43:18 +02:00
Fabrice Bellard
e6c2be818a
disable inlining of malloc() wrappers to avoid problems with LTO ( #515 )
2026-06-02 10:43:18 +02:00
Fabrice Bellard
163b9b725d
added poll() support so that the number of file handles is not limited ( #502 )
2026-06-02 10:43:18 +02:00
Ivan Krasilnikov
8a3aaa129d
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.
2026-06-02 10:39:16 +02:00
Fabrice Bellard
d73189dd5a
fixed compilation with clang
ci / Linux (Ubuntu) (push) Has been cancelled
ci / Linux LTO (push) Has been cancelled
ci / Linux 32bit (push) Has been cancelled
ci / linux-asan (push) Has been cancelled
ci / linux-msan (push) Has been cancelled
ci / linux-ubsan (push) Has been cancelled
ci / macOS (push) Has been cancelled
ci / macos-asan (push) Has been cancelled
ci / macos-ubsan (push) Has been cancelled
ci / freebsd (push) Has been cancelled
ci / Cosmopolitan (push) Has been cancelled
ci / MinGW Windows target (push) Has been cancelled
ci / Windows MSYS2 (push) Has been cancelled
ci / qemu-alpine (linux/386) (push) Has been cancelled
ci / qemu-alpine (linux/arm/v6) (push) Has been cancelled
ci / qemu-alpine (linux/arm/v7) (push) Has been cancelled
ci / qemu-alpine (linux/arm64) (push) Has been cancelled
ci / qemu-alpine (linux/ppc64le) (push) Has been cancelled
ci / qemu-alpine (linux/riscv64) (push) Has been cancelled
ci / qemu-alpine (linux/s390x) (push) Has been cancelled
2026-05-21 19:02:15 +02:00
Fabrice Bellard
99e9181d11
added custom malloc for small blocks (11% faster on bench-v8)
ci / Linux (Ubuntu) (push) Waiting to run
ci / Linux LTO (push) Waiting to run
ci / Linux 32bit (push) Waiting to run
ci / linux-asan (push) Waiting to run
ci / linux-msan (push) Waiting to run
ci / linux-ubsan (push) Waiting to run
ci / macOS (push) Waiting to run
ci / macos-asan (push) Waiting to run
ci / macos-ubsan (push) Waiting to run
ci / freebsd (push) Waiting to run
ci / Cosmopolitan (push) Waiting to run
ci / MinGW Windows target (push) Waiting to run
ci / Windows MSYS2 (push) Waiting to run
ci / qemu-alpine (linux/386) (push) Waiting to run
ci / qemu-alpine (linux/arm/v6) (push) Waiting to run
ci / qemu-alpine (linux/arm/v7) (push) Waiting to run
ci / qemu-alpine (linux/arm64) (push) Waiting to run
ci / qemu-alpine (linux/ppc64le) (push) Waiting to run
ci / qemu-alpine (linux/riscv64) (push) Waiting to run
ci / qemu-alpine (linux/s390x) (push) Waiting to run
2026-05-21 18:37:42 +02:00
Fabrice Bellard
e182e3df5c
Add Uint8Array base64/hex methods (initial patch by saghul)
ci / Linux (Ubuntu) (push) Has been cancelled
ci / Linux LTO (push) Has been cancelled
ci / Linux 32bit (push) Has been cancelled
ci / linux-asan (push) Has been cancelled
ci / linux-msan (push) Has been cancelled
ci / linux-ubsan (push) Has been cancelled
ci / macOS (push) Has been cancelled
ci / macos-asan (push) Has been cancelled
ci / macos-ubsan (push) Has been cancelled
ci / freebsd (push) Has been cancelled
ci / Cosmopolitan (push) Has been cancelled
ci / MinGW Windows target (push) Has been cancelled
ci / Windows MSYS2 (push) Has been cancelled
ci / qemu-alpine (linux/386) (push) Has been cancelled
ci / qemu-alpine (linux/arm/v6) (push) Has been cancelled
ci / qemu-alpine (linux/arm/v7) (push) Has been cancelled
ci / qemu-alpine (linux/arm64) (push) Has been cancelled
ci / qemu-alpine (linux/ppc64le) (push) Has been cancelled
ci / qemu-alpine (linux/riscv64) (push) Has been cancelled
ci / qemu-alpine (linux/s390x) (push) Has been cancelled
2026-05-14 19:11:10 +02:00
Fabrice Bellard
1f50b39e99
memcpy() (currently) has undefined behavior if a pointer is NULL with zero size ( #500 )
2026-05-14 16:39:41 +02:00
Fabrice Bellard
b1b4733bd9
fixed error handling in os.exec() ( #503 )
2026-05-14 16:39:41 +02:00
Fabrice Bellard
c1ba371eda
added missing NULL pointer check ( #504 )
2026-05-14 16:39:41 +02:00
Fabrice Bellard
9b90125510
use __EMSCRIPTEN__ define instead of EMSCRIPTEN
2026-05-14 16:39:41 +02:00
Fabrice Bellard
efda450a21
fixed (again) JS atomics in case of typed array resizing - use same function name as quickjs-ng for js_atomics_get_buf() ( #508 )
2026-05-14 16:39:41 +02:00
Fabrice Bellard
d417cafaf0
added libunicode unicode version ( #509 )
2026-05-14 16:39:41 +02:00
bellard
6b6209802b
Merge pull request #496 from bptato/fix-hex-access
...
Fix member access on non-decimal numeric literals
2026-05-14 16:34:46 +02:00
bellard
8e09295c4c
Merge pull request #495 from nickva/fix-initializer-string-warning
...
Avoid initializer-string warning for the digits array
2026-05-14 16:25:01 +02:00
bptato
66afb7234c
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 )
2026-03-24 19:44:11 +01:00
Nick Vatamaniuc
d38eea9336
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
2026-03-24 00:53:29 -04:00
Fabrice Bellard
d7ae12ae71
added JSON.parse source text access
ci / Linux (Ubuntu) (push) Has been cancelled
ci / Linux LTO (push) Has been cancelled
ci / Linux 32bit (push) Has been cancelled
ci / linux-asan (push) Has been cancelled
ci / linux-msan (push) Has been cancelled
ci / linux-ubsan (push) Has been cancelled
ci / macOS (push) Has been cancelled
ci / macos-asan (push) Has been cancelled
ci / macos-ubsan (push) Has been cancelled
ci / freebsd (push) Has been cancelled
ci / Cosmopolitan (push) Has been cancelled
ci / MinGW Windows target (push) Has been cancelled
ci / Windows MSYS2 (push) Has been cancelled
ci / qemu-alpine (linux/386) (push) Has been cancelled
ci / qemu-alpine (linux/arm/v6) (push) Has been cancelled
ci / qemu-alpine (linux/arm/v7) (push) Has been cancelled
ci / qemu-alpine (linux/arm64) (push) Has been cancelled
ci / qemu-alpine (linux/ppc64le) (push) Has been cancelled
ci / qemu-alpine (linux/riscv64) (push) Has been cancelled
ci / qemu-alpine (linux/s390x) (push) Has been cancelled
2026-03-23 18:45:52 +01:00
Fabrice Bellard
a31dcef98c
added basic protection against too large function in serialized bytecode
ci / Linux (Ubuntu) (push) Has been cancelled
ci / Linux LTO (push) Has been cancelled
ci / Linux 32bit (push) Has been cancelled
ci / linux-asan (push) Has been cancelled
ci / linux-msan (push) Has been cancelled
ci / linux-ubsan (push) Has been cancelled
ci / macOS (push) Has been cancelled
ci / macos-asan (push) Has been cancelled
ci / macos-ubsan (push) Has been cancelled
ci / freebsd (push) Has been cancelled
ci / Cosmopolitan (push) Has been cancelled
ci / MinGW Windows target (push) Has been cancelled
ci / Windows MSYS2 (push) Has been cancelled
ci / qemu-alpine (linux/386) (push) Has been cancelled
ci / qemu-alpine (linux/arm/v6) (push) Has been cancelled
ci / qemu-alpine (linux/arm/v7) (push) Has been cancelled
ci / qemu-alpine (linux/arm64) (push) Has been cancelled
ci / qemu-alpine (linux/ppc64le) (push) Has been cancelled
ci / qemu-alpine (linux/riscv64) (push) Has been cancelled
ci / qemu-alpine (linux/s390x) (push) Has been cancelled
2026-03-21 17:49:40 +01:00
Fabrice Bellard
5022f2b76a
fixed use-after-free via re-entrant GC in FinalizationRegistry weak reference cleanup ( #494 )
2026-03-21 17:39:27 +01:00
Fabrice Bellard
e7b9f217b4
Fix async generator lifecycle bug (bnoordhuis) ( quickjs-ng/quickjs#1355 )
ci / Linux (Ubuntu) (push) Waiting to run
ci / Linux LTO (push) Waiting to run
ci / Linux 32bit (push) Waiting to run
ci / linux-asan (push) Waiting to run
ci / linux-msan (push) Waiting to run
ci / linux-ubsan (push) Waiting to run
ci / macOS (push) Waiting to run
ci / macos-asan (push) Waiting to run
ci / macos-ubsan (push) Waiting to run
ci / freebsd (push) Waiting to run
ci / Cosmopolitan (push) Waiting to run
ci / MinGW Windows target (push) Waiting to run
ci / Windows MSYS2 (push) Waiting to run
ci / qemu-alpine (linux/386) (push) Waiting to run
ci / qemu-alpine (linux/arm/v6) (push) Waiting to run
ci / qemu-alpine (linux/arm/v7) (push) Waiting to run
ci / qemu-alpine (linux/arm64) (push) Waiting to run
ci / qemu-alpine (linux/ppc64le) (push) Waiting to run
ci / qemu-alpine (linux/riscv64) (push) Waiting to run
ci / qemu-alpine (linux/s390x) (push) Waiting to run
2026-03-21 16:34:37 +01:00
Fabrice Bellard
4d16546cdf
fixed RegExp.escape
2026-03-21 15:53:25 +01:00
Fabrice Bellard
46bd985b33
fixed buffer overflow in Atomics with resizable typed arrays
2026-03-21 15:35:03 +01:00
Fabrice Bellard
16d6947b17
typo
2026-03-21 14:31:19 +01:00
Fabrice Bellard
f1b63fc1ad
Fix memory leak in Iterator.prototype.map (saghul) ( #493 )
2026-03-21 14:26:00 +01:00
Fabrice Bellard
841dd034c2
fixed buffer overflow in TypedArray.prototype.with ( #492 )
2026-03-21 14:18:38 +01:00
Fabrice Bellard
69090b969f
Fix stack underflow with generator in iterable (saghul) ( #488 )
2026-03-21 13:43:57 +01:00
Fabrice Bellard
aaf0174e71
test262 update
2026-03-21 12:39:29 +01:00
Fabrice Bellard
68caa5f226
fixed TypedArray constructor semantics which removes a buffer overflow ( #478 )
2026-03-21 12:23:53 +01:00
Fabrice Bellard
0989d4cb4a
fixed TypedArray sort semantics by copying the array before calling the comparison function. Fixed buffer overflow when the array is resized ( #477 )
2026-03-21 11:33:13 +01:00
Fabrice Bellard
4c722cea4e
modified js_allocate_fast_array() so that the array is fully initialized. It is slightly slower but avoids several nasty bugs ( #471 )
2026-03-21 10:55:57 +01:00
Fabrice Bellard
f1139494d1
regexp: removed alloca() is lre_exec() - added specific opcodes for \s and \S to have a smaller bytecode - optimized \b and \B
2025-12-22 15:12:46 +01:00
Fabrice Bellard
7bd1ae2c76
\x{N} is a syntax error
2025-12-22 15:05:37 +01:00
Fabrice Bellard
31ef02b907
slightly faster lexical variable assignment
2025-12-22 15:03:43 +01:00
Fabrice Bellard
c73a435f36
Don't call well-known Symbol methods for RegExp on primitive values
2025-12-11 19:27:19 +01:00
Fabrice Bellard
1dbba8a88e
removed use after free in js_create_module_bytecode_function() ( #467 )
2025-12-11 19:18:56 +01:00
Fabrice Bellard
fcd33c1afa
removed memory leak in case of error in cpool_add() ( #468 )
2025-12-11 19:17:38 +01:00
Fabrice Bellard
e5fd3918c1
fixed fast array extension optimization when there are multiple realms
2025-12-03 13:36:26 +01:00
Fabrice Bellard
24379bf53c
added regexp duplicate named groups - fixed reset of captures with quantizers
2025-12-03 13:30:33 +01:00
Fabrice Bellard
b226856177
updated to unicode 17.0.0 - updated test262 version
2025-11-29 15:14:41 +01:00
Fabrice Bellard
5907aa6d68
added missing lre_poll_timeout()
2025-11-29 13:13:18 +01:00
Fabrice Bellard
47aac8b2a8
regexp: cosmetic: make it clearer that there is now a set of registers instead of an auxiliary stack
2025-11-29 13:04:47 +01:00