Commit graph

616 commits

Author SHA1 Message Date
Penner
61dae5d420 fix crash when add property maybe failed on build arguments 2024-11-25 07:59:23 +01:00
pancake
df44d66291
Do not depend on c99 for(int
NB: The project requires C11, but sicne this is the only occurrence of such kind, we let it slide. See the PR conversation.
2024-11-24 12:46:29 +01:00
Saúl Ibarra Corretgé
4ca6d9bba0
Don't share class functions across Set and Map
Map has groupBy and Set doesn't.

Fixes: https://github.com/quickjs-ng/quickjs/issues/714
2024-11-22 08:33:48 +01:00
Ben Noordhuis
81e50f3cae
Use closefrom() to close open file descriptors (#712)
Replace the naive close() loop in js_os_exec with closefrom().

On my system RLIMIT_NOFILE is set to 1 million and the delay from the
loop gets noticeable when I spawn many processes.

Use dlsym() to look up closefrom() because it's not available everywhere
(looking at you, musl.)

Fixes: https://github.com/quickjs-ng/quickjs/issues/711
2024-11-21 20:43:18 +01:00
Icemic
010777f259
Add quickjs-rusty to projects using NG 2024-11-21 14:23:15 +01:00
morn-0
769e78ff7d Remove unnecessary parameters
Enhanced msvc cross-compile compatibility
2024-11-20 15:52:52 +01:00
Saúl Ibarra Corretgé
ef15418807 Fix null deref in js_iterator_helper_next
Fixes: https://github.com/quickjs-ng/quickjs/issues/705
2024-11-19 19:21:34 +01:00
Saúl Ibarra Corretgé
0b9b6c1915
Simplify iterator helpers code, remove duplication 2024-11-18 23:43:39 +01:00
Saúl Ibarra Corretgé
55b67a6591 Bump CMake version to 3.10
Fixes a deprecation warning with new CMake versions.
2024-11-18 11:02:29 +01:00
Ben Noordhuis
f93dd58ea0 Work around msvc definition of NAN
NAN is reportedly no longer a compile-time expression in some versions
of MSVC. Work around that by minting a NaN from a uint64.

Fixes: https://github.com/quickjs-ng/quickjs/issues/622
Fixes: https://github.com/quickjs-ng/quickjs/issues/693
2024-11-18 10:49:30 +01:00
Saúl Ibarra Corretgé
bdadad97cd Add Windows SDK CI 2024-11-18 10:49:30 +01:00
Ben Noordhuis
974f40a1a8
Fix harmless -Wsign-compare warning (#699)
`sizeof(buf) == 128` so the signed comparison is always within range.
2024-11-17 23:21:03 +01:00
Ben Noordhuis
e1a0f4f1cf
Add Math.sumPrecise (#697) 2024-11-16 11:34:14 +01:00
Saúl Ibarra Corretgé
428204b802 Align JS_SetOpaque with other similar APIs
Returns < 0 on failure. Also document it in the header file.

Fixes: https://github.com/quickjs-ng/quickjs/issues/695
2024-11-16 10:35:01 +01:00
Saúl Ibarra Corretgé
18b0b9a706
Update release CI action versions
actions/upload-artifact@v3 will be deprecated soon. Migrate to v4.

Ref: https://github.com/actions/upload-artifact/blob/main/docs/MIGRATION.md
2024-11-16 09:26:06 +01:00
Saúl Ibarra Corretgé
706ba05fa6 Fix Linux release CI
There is no need to download git submodules when making releases.
2024-11-15 21:40:51 +01:00
Saúl Ibarra Corretgé
859267cc59 Set version to 0.7.0 2024-11-15 21:29:58 +01:00
Ben Noordhuis
407683bd98 Add Atomics.pause 2024-11-15 20:30:40 +01:00
bptato
42f0945114 Fix NULL deref in JS_NewRuntime2
The API allows for the malloc_usable_size callback to be NULL, so it
must not be dereferenced before the NULL check.
2024-11-15 15:02:59 +01:00
Saúl Ibarra Corretgé
284510f781 Make Iterator.from spec compliant
Create a proper wrapper around the inner iterator and proxy the calls to
next / return.
2024-11-15 13:35:25 +01:00
Saúl Ibarra Corretgé
204070a544 Fix broken link in README 2024-11-15 13:30:06 +01:00
Saúl Ibarra Corretgé
a7a614406d Update README 2024-11-15 13:28:45 +01:00
Saúl Ibarra Corretgé
1350362ba6 Add cloning instructions to building section 2024-11-15 13:28:45 +01:00
Saúl Ibarra Corretgé
987afb7a52 Add list of projects using NG 2024-11-15 13:28:45 +01:00
Saúl Ibarra Corretgé
0575d10da7 Tweak intro and document differences with bellard/quickjs 2024-11-15 13:28:45 +01:00
Saúl Ibarra Corretgé
a365f18c98 Document how to create standalone executables 2024-11-15 13:28:45 +01:00
Saúl Ibarra Corretgé
559029baad Fix Iterator.prototype
Make sure all descriptors are attached to the one and only iterator
prototype.
2024-11-15 13:16:28 +01:00
Ben Noordhuis
554907e88f
Add RegExp.escape (#687) 2024-11-15 12:17:38 +01:00
Ben Noordhuis
b5d41818e2
Fix bytecode stack frame printing (#686)
Handle OP_get_loc0_loc1 specially. Fixes an off-by-one when printing
variable names.

Fixes: https://github.com/quickjs-ng/quickjs/issues/683
2024-11-14 22:50:42 +01:00
Saúl Ibarra Corretgé
6d7448ed3e Implement Iterator.prototype.flatMap 2024-11-14 19:48:41 +01:00
Ben Noordhuis
1cc19e4dbf
Fix detach check in ArrayBuffer.prototype.resize (#681) 2024-11-13 16:04:49 +01:00
Ben Noordhuis
fa4d2454aa
Add Error.isError (#682)
It's strictly speaking not at phase 3 yet (almost!) but it's very easy
to implement and quite useful.
2024-11-13 15:08:06 +01:00
Ben Noordhuis
2a78706484
Update test262 (#680)
test262 now tests Unicode 16 and that fixes a fair number of tests that
started failing after we upgraded to Unicode 16.
2024-11-13 14:36:07 +01:00
Saúl Ibarra Corretgé
17a8772379 Implement Iterator.prototype.map 2024-11-13 12:55:25 +01:00
Saúl Ibarra Corretgé
4933e17d1b Remove error handling for JS_NewInt64, it's infallible
Also use js_int64(v) internally.
2024-11-12 22:33:22 +01:00
Saúl Ibarra Corretgé
c68c416e2e
Implement Iterator.prototype.filter 2024-11-12 22:01:45 +01:00
Ben Noordhuis
000061f635
Improve performance of variable resolver (#672)
Switch to a hash table when the number of variables grows beyond
a threshold.

Speeds up the test case from the linked issue by about 70%.

Fixes: https://github.com/quickjs-ng/quickjs/issues/456
2024-11-12 21:22:47 +01:00
Saúl Ibarra Corretgé
0362c0a4eb
Implement Iterator.prototype.take (#676) 2024-11-12 08:10:19 +01:00
Ben Noordhuis
487129055f
Work around broken atomics in tinycc (#669) 2024-11-12 01:01:52 +01:00
Saúl Ibarra Corretgé
c41ee4f15f Implement Iterator.prototype.drop
Includes the scaffold for other iterator helper methods that require an
Iterator Helper object.
2024-11-11 22:25:24 +01:00
Ben Noordhuis
243b968ee1 Update to Unicode 16.0 2024-11-09 23:14:52 +01:00
Ben Noordhuis
416ab66f0b Update to Unicode 15.1 2024-11-09 23:14:52 +01:00
Ben Noordhuis
6fdb9b4bbb Update Unicode download URL
Seems I forgot to update the unicode_download.sh script when I upgraded
from Unicode 14.0 to 15.0 in November 2023.
2024-11-09 23:14:52 +01:00
Ben Noordhuis
b29332697b Don't use _Thread_local in run-test262.c
Allows building with tcc and old gcc versions again.
2024-11-09 23:14:20 +01:00
Ben Noordhuis
f641d4ff18 Don't use rt->user_opaque in quickjs-libc.c
JS_SetRuntimeOpaque() and JS_GetRuntimeOpaque() are intended for
embedders. Stop using them in quickjs-libc.c
2024-11-09 23:14:20 +01:00
Ben Noordhuis
55b829e666
Update test262_errors.txt after commit 73cc00e (#665)
Commit 73cc00e improves the accuracy of line and column number tracking
but I forgot that that also affects the output of run-test262.
2024-11-09 16:02:44 +01:00
Saúl Ibarra Corretgé
d7c5c7c302 Remove qjs namespace backwards compatibility
Fixes: https://github.com/quickjs-ng/quickjs/issues/650
2024-11-08 22:10:53 +01:00
Saúl Ibarra Corretgé
43151dd78c Fix valgrind and tsan CI
Checkout test262.
2024-11-08 15:09:00 +01:00
Richard Davison
cd2947bded
Don't automatically update test262 submodule 2024-11-08 15:02:48 +01:00
Richard Davison
04307af779 Make "performance" global writable 2024-11-08 08:52:45 +01:00