Commit Graph

473 Commits

Author SHA1 Message Date
Fabrice Bellard
cfc846a31c doc update 2026-06-04 11:31:14 +02:00
Fabrice Bellard
ad1e7bd3ce keep more generic cpu_count() for non Linux systems 2026-06-04 11:08:15 +02:00
Fabrice Bellard
92a3d4d5ea fixed microbench with d8 2026-06-04 11:03:10 +02:00
Fabrice Bellard
8e97f24044 faster add, sub and mul for mixed integer floating point operands 2026-06-03 17:25:16 +02:00
Fabrice Bellard
594f965146 exclude few very slow and currently useless test262 tests
Some checks are pending
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-03 16:18:26 +02:00
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
Some checks are pending
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
Some checks are pending
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
Some checks failed
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)
Some checks are pending
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)
Some checks failed
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
Some checks failed
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
Some checks failed
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)
Some checks are pending
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