Commit Graph

82 Commits

Author SHA1 Message Date
Fabrice Bellard
a6816be23a optimized global variable access 2025-11-03 16:57:20 +01:00
Fabrice Bellard
3e5f2bbe69 inlined the get_length operation 2025-10-16 15:10:58 +02:00
Fabrice Bellard
8e8eefb922 optimized array access by inlining get_array_el, get_array_el2, get_array_el3 and put_array_el 2025-10-04 10:46:29 +02:00
Fabrice Bellard
2c90110287 - 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).
2025-10-03 14:26:13 +02:00
Fabrice Bellard
31663a930d updated test262 2025-10-03 11:55:50 +02:00
Nick Vatamaniuc
fb14cc6b40 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.
2025-09-29 14:02:31 -04:00
Fabrice Bellard
bc753c6a15 added Math.sumPrecise() 2025-09-27 18:44:19 +02:00
Fabrice Bellard
f021d7714f - added resizable array buffers (bnoordhuis)
- fixed Atomics.wait, Atomics.notify, TypedArray.prototype.lastIndexOf
- fixed JS_PreventExtensions() with resizable typed arrays
2025-09-22 18:37:41 +02:00
Fabrice Bellard
8a0a6e92d2 better pretty printing of strings - removed String.prototype.__quote() 2025-09-10 18:25:34 +02:00
Fabrice Bellard
a4ac84d993 Adjust lastIndex to leading surrogate when inside a surrogate pair in unicode RegExp (initial patch by auvred) 2025-08-25 17:54:19 +02:00
Fabrice Bellard
f1b1c000c2 update test262 2025-06-28 10:43:26 +02:00
Fabrice Bellard
dfc254af51 update tests 2025-05-24 13:26:36 +02:00
Fabrice Bellard
1dfaa61680 improved compatibility of std.parseExtJSON() with JSON5 2025-05-24 10:16:10 +02:00
Fabrice Bellard
071a4cf986 use Object.is() in tests 2025-05-24 10:02:50 +02:00
Fabrice Bellard
9bce51eefd improved JSON parser conformity (chqrlie) (#250) 2025-05-19 17:23:25 +02:00
Fabrice Bellard
3c39307c22 better promise rejection tracker heuristics (#112) 2025-05-16 17:47:41 +02:00
Fabrice Bellard
d7cdfdc8d7 regexp: added v flag support - fixed corner cases of case insensitive matching 2025-05-16 17:43:03 +02:00
Fabrice Bellard
a8b2d7c2b2 added Float16Array (bnoordhuis) - optimized float16 conversion functions 2025-05-05 19:12:32 +02:00
Fabrice Bellard
7645ce5f63 more precise error location reporting 2025-04-26 12:25:00 +02:00
Fabrice Bellard
8e9e8e86c5 update tests 2025-04-22 19:16:19 +02:00
Fabrice Bellard
e5e724829a added staging test262 tests 2025-04-21 16:23:42 +02:00
Fabrice Bellard
dbbca3dbf3 dtoa fix for minus zero 2025-04-21 15:33:47 +02:00
Fabrice Bellard
251a8b2211 added column number in error messages - simplified parser 2025-04-14 14:46:47 +02:00
Fabrice Bellard
9918c1206e workaround for #282 2025-04-10 17:38:28 +02:00
Fabrice Bellard
25ffdb418e fixed the handling of unicode identifiers 2025-04-10 10:34:40 +02:00
Fabrice Bellard
9d3776d0d4 fixed break statement in the presence of labels (bnoordhuis) (#275) 2025-04-07 19:01:30 +02:00
Fabrice Bellard
a151ce19e5 fixed and improved Map/Set hashing 2025-04-07 14:42:07 +02:00
Fabrice Bellard
159fe289e3 fixed module cyclic imports (#329) 2025-04-05 18:06:08 +02:00
Fabrice Bellard
f121cbdb5a added forgotten js_weakref_is_live() tests 2025-04-05 15:41:51 +02:00
Fabrice Bellard
b342502a31 avoid freeing an object structure in js_weakref_free() if it is about to be freed in free_zero_refcount() 2025-04-05 15:21:57 +02:00
Fabrice Bellard
8b5b1277ad reworked weak references so that cycles are (hopefully) correctly handled - added Symbol as WeakMap key, WeakRef and FinalizationRegistry 2025-04-05 12:49:29 +02:00
Fabrice Bellard
b31bb20666 updated to unicode 16.0.0 (bnoordhuis) - updated test262 2025-03-25 19:08:19 +01:00
Fabrice Bellard
156d981afe added string ropes for faster concatenation of long strings (issue #67) 2025-03-25 16:01:40 +01:00
Fabrice Bellard
372ad84e9a more dtoa bench (Charlie Gordon) 2025-03-22 12:50:11 +01:00
Fabrice Bellard
a44011ed5a enable dtoa tests on win32 2025-03-22 12:40:37 +01:00
Fabrice Bellard
49413985eb fixed hash_map_resize() - added Map/WeakMap in microbench 2025-03-22 10:54:21 +01:00
Fabrice Bellard
993660621a added new dtoa library to print and parse float64 numbers. It is necessary to fix corner cases (e.g. radix != 10) and to have correct behavior regardless of the libc implementation. 2025-03-19 19:07:57 +01:00
Fabrice Bellard
6d6893bfa3 fixed BigInt hashing - removed -fno-bigint in qjsc and JS_AddIntrinsicBigInt() (BigInt is now considered as a base object) 2025-03-19 12:33:54 +01:00
Fabrice Bellard
6de88859e7 more bignum cleanup 2025-03-19 11:43:31 +01:00
Fabrice Bellard
543897ab7b added missing variable 2025-03-18 18:34:05 +01:00
Fabrice Bellard
61e8b94428 removed bignum support and qjscalc - added optimized BigInt implementation 2025-03-18 18:29:10 +01:00
Fabrice Bellard
c739debf0f microbench: use toFixed() 2025-03-13 16:23:13 +01:00
Akos Kiss
6e2e68fd08 Fix termination in Worker test
Function names are case sensitive, `onMessage` is not the same as
`onmessage`.

Related to #98
2024-07-27 23:40:48 +02:00
Fabrice Bellard
36911f0d3a regexp: fix non greedy quantizers with zero length matches 2024-05-30 16:41:37 +02:00
Fabrice Bellard
d86aaf0b8f updated test262.patch 2024-05-30 15:49:31 +02:00
Charlie Gordon
0c8fecab23 Improve class parser (#289)
- accept `class P { async = 1 }}`
- accept `class P { static = 1 }}` etc.
- Fixes #261
2024-05-05 19:54:47 +02:00
Richard Davison
d9c699f528 fix class method with name get (#258)
Co-authored-by: Richard Davison <ridaviso@amazon.com>
2024-05-05 18:46:30 +02:00
Charlie Gordon
6a89d7c270 Add CI targets, fix test_std.js (#247)
This switches the exec test to `SIGTERM` rather than `SIGQUIT` since the
latter didn’t seem to work in QEMU, and the distinction doesn’t really
matter for this test.

This also makes the `isatty()` check smarter by checking whether `STDIN`
is, in fact, a terminal.

Added qemu-alpine targets i386, arm32v6, arm32v7, arm64v8, s390x

Co-authored-by: Felipe Gasper <felipe@felipegasper.com>
2024-03-03 21:57:38 +01:00
Ben Noordhuis
e17cb9fc7a Add github CI tests
- disable `isatty()` test in `test_os()`
- add `.github/workflows/ci.yml` with 8 targets
2024-03-03 14:14:23 +01:00
Charlie Gordon
3dd93eb4e4 fix microbench when microbench.txt is missing (#246) 2024-03-03 03:38:49 +01:00