]>
git.kaiwu.me - quickjs.git/log
Fabrice Bellard [Mon, 14 Apr 2025 17:13:57 +0000 (19:13 +0200)]
enabled os.Worker on Windows (bnoordhuis)
bellard [Mon, 14 Apr 2025 15:54:18 +0000 (17:54 +0200)]
Merge pull request #400 from renatahodovan/fix-regexp
Define lre_check_timeout in fuzz_regexp
Renata Hodovan [Thu, 10 Apr 2025 21:09:15 +0000 (23:09 +0200)]
Define lre_check_timeout in fuzz_regexp
Since #
25aaa77 , lre_check_timeout must be defined by the user. The
patch adds this definition to the regexp fuzzer.
Fabrice Bellard [Mon, 14 Apr 2025 13:14:49 +0000 (15:14 +0200)]
String.prototype.localeCompare is added in JS_AddIntrinsicStringNormalize() as it requires unicode normalization
Fabrice Bellard [Mon, 14 Apr 2025 13:05:02 +0000 (15:05 +0200)]
qjsc: added missing -fno-weakref
Fabrice Bellard [Mon, 14 Apr 2025 12:46:47 +0000 (14:46 +0200)]
added column number in error messages - simplified parser
Fabrice Bellard [Sat, 12 Apr 2025 14:04:59 +0000 (16:04 +0200)]
optimized js_parse_class_default_ctor() (bnoordhuis)
Fabrice Bellard [Sat, 12 Apr 2025 14:02:48 +0000 (16:02 +0200)]
fixed DUMP_BYTECODE
Fabrice Bellard [Sat, 12 Apr 2025 10:38:51 +0000 (12:38 +0200)]
fixed HTML comments (chqrlie)
Fabrice Bellard [Sat, 12 Apr 2025 10:14:37 +0000 (12:14 +0200)]
- removed the 'use strip' extension
- removed the JS_EVAL_FLAG_STRIP eval flag and replaced it with JS_SetStripInfo() which has simpler semantics.
- qjs: added the '-s' and '--strip-source' options
- qjsc: added the '-s' and '--keep-source' options
Fabrice Bellard [Thu, 10 Apr 2025 15:38:44 +0000 (17:38 +0200)]
indent fix
Fabrice Bellard [Thu, 10 Apr 2025 15:38:28 +0000 (17:38 +0200)]
workaround for #282
Fabrice Bellard [Thu, 10 Apr 2025 14:23:25 +0000 (16:23 +0200)]
Fix exporting destructured variables (saghul) (#382)
Fabrice Bellard [Thu, 10 Apr 2025 14:01:26 +0000 (16:01 +0200)]
fixed class field named get or set
Fabrice Bellard [Thu, 10 Apr 2025 13:37:19 +0000 (15:37 +0200)]
changed js_throw_type_error ES5 workaround to be more compatible with test262
Fabrice Bellard [Thu, 10 Apr 2025 09:51:41 +0000 (11:51 +0200)]
fixed JS_IsString() with ropes
Fabrice Bellard [Thu, 10 Apr 2025 08:34:40 +0000 (10:34 +0200)]
fixed the handling of unicode identifiers
Fabrice Bellard [Mon, 7 Apr 2025 17:01:30 +0000 (19:01 +0200)]
fixed break statement in the presence of labels (bnoordhuis) (#275)
Fabrice Bellard [Mon, 7 Apr 2025 16:45:11 +0000 (18:45 +0200)]
added JS_GetAnyOpaque() (oleavr)
Fabrice Bellard [Mon, 7 Apr 2025 16:40:49 +0000 (18:40 +0200)]
fixed buffer overflow in BJSON String and BigInt reader (#399)
Fabrice Bellard [Mon, 7 Apr 2025 12:42:07 +0000 (14:42 +0200)]
fixed and improved Map/Set hashing
Fabrice Bellard [Mon, 7 Apr 2025 12:33:30 +0000 (14:33 +0200)]
qjs: added performance.now()
Fabrice Bellard [Mon, 7 Apr 2025 10:05:40 +0000 (12:05 +0200)]
removed unused slack in hash_map_resize() (saghul)
Fabrice Bellard [Mon, 7 Apr 2025 10:02:01 +0000 (12:02 +0200)]
Fix UB in BigInt left shift (saghul)
Fabrice Bellard [Mon, 7 Apr 2025 10:00:08 +0000 (12:00 +0200)]
Fix leak in BigInt unary plus (saghul)
Fabrice Bellard [Mon, 7 Apr 2025 09:47:57 +0000 (11:47 +0200)]
qjs: allow SI suffixes in memory sizes - set default stack size to 1 MB
Fabrice Bellard [Mon, 7 Apr 2025 09:44:28 +0000 (11:44 +0200)]
fixed weakmap gc (#398)
Fabrice Bellard [Mon, 7 Apr 2025 08:21:17 +0000 (10:21 +0200)]
updated Changelog
Fabrice Bellard [Sat, 5 Apr 2025 16:22:34 +0000 (18:22 +0200)]
flush stdout in console.log() (#309)
Fabrice Bellard [Sat, 5 Apr 2025 16:05:15 +0000 (18:05 +0200)]
fixed module cyclic imports (#329)
Fabrice Bellard [Sat, 5 Apr 2025 14:19:25 +0000 (16:19 +0200)]
workaround for overflow test in JS_GetOwnPropertyNamesInternal() (#111)
Fabrice Bellard [Sat, 5 Apr 2025 13:52:55 +0000 (15:52 +0200)]
'undefined' is a valid let/const variable name. It gives a SyntaxError at top level because it is already defined (#370)
Fabrice Bellard [Sat, 5 Apr 2025 13:41:51 +0000 (15:41 +0200)]
added forgotten js_weakref_is_live() tests
Fabrice Bellard [Sat, 5 Apr 2025 13:21:57 +0000 (15:21 +0200)]
avoid freeing an object structure in js_weakref_free() if it is about to be freed in free_zero_refcount()
Fabrice Bellard [Sat, 5 Apr 2025 10:49:29 +0000 (12:49 +0200)]
reworked weak references so that cycles are (hopefully) correctly handled - added Symbol as WeakMap key, WeakRef and FinalizationRegistry
Fabrice Bellard [Mon, 31 Mar 2025 16:33:22 +0000 (18:33 +0200)]
fixed eval with empty argument scope (#249)
Fabrice Bellard [Mon, 31 Mar 2025 16:00:27 +0000 (18:00 +0200)]
removed useless printf() (#257)
Fabrice Bellard [Mon, 31 Mar 2025 11:37:37 +0000 (13:37 +0200)]
ensure that JS_IteratorNext() returns JS_UNDEFINED when done = TRUE (#394)
Fabrice Bellard [Fri, 28 Mar 2025 09:19:28 +0000 (10:19 +0100)]
removed invalid tests
Fabrice Bellard [Fri, 28 Mar 2025 09:11:15 +0000 (10:11 +0100)]
fixed exception handling in AsyncFromSyncIterator and async for of
Fabrice Bellard [Thu, 27 Mar 2025 16:06:26 +0000 (17:06 +0100)]
fixed typed array set operation when obj != receiver
Fabrice Bellard [Thu, 27 Mar 2025 15:28:56 +0000 (16:28 +0100)]
fixed set_date_field()
Fabrice Bellard [Thu, 27 Mar 2025 14:34:20 +0000 (15:34 +0100)]
disable rejection tracker in the repl - repl cleanup
Fabrice Bellard [Thu, 27 Mar 2025 13:43:25 +0000 (14:43 +0100)]
removed memory leak in string padding (issue #274)
Fabrice Bellard [Thu, 27 Mar 2025 13:22:58 +0000 (14:22 +0100)]
exit by default on unhandled promise rejections (issue #305)
Fabrice Bellard [Tue, 25 Mar 2025 18:17:19 +0000 (19:17 +0100)]
update test262_errors.txt
Fabrice Bellard [Tue, 25 Mar 2025 18:08:19 +0000 (19:08 +0100)]
updated to unicode 16.0.0 (bnoordhuis) - updated test262
Fabrice Bellard [Tue, 25 Mar 2025 15:49:41 +0000 (16:49 +0100)]
added missing header
Fabrice Bellard [Tue, 25 Mar 2025 15:42:05 +0000 (16:42 +0100)]
added -Wno-infinite-recursion
Fabrice Bellard [Tue, 25 Mar 2025 15:33:47 +0000 (16:33 +0100)]
more use of js_new_string8 - inlined JS_NewString() (initial patch by Charlie Gordon)
Fabrice Bellard [Tue, 25 Mar 2025 15:01:40 +0000 (16:01 +0100)]
added string ropes for faster concatenation of long strings (issue #67)
Fabrice Bellard [Sat, 22 Mar 2025 11:50:11 +0000 (12:50 +0100)]
more dtoa bench (Charlie Gordon)
Fabrice Bellard [Sat, 22 Mar 2025 11:40:37 +0000 (12:40 +0100)]
enable dtoa tests on win32
Fabrice Bellard [Sat, 22 Mar 2025 10:28:23 +0000 (11:28 +0100)]
reduced memory usage of Map hash table
Fabrice Bellard [Sat, 22 Mar 2025 09:54:21 +0000 (10:54 +0100)]
fixed hash_map_resize() - added Map/WeakMap in microbench
Fabrice Bellard [Thu, 20 Mar 2025 12:37:07 +0000 (13:37 +0100)]
simplified and fixed backtrace_barrier (#306)
Fabrice Bellard [Thu, 20 Mar 2025 10:47:07 +0000 (11:47 +0100)]
protect against printf errors (#319)
Fabrice Bellard [Wed, 19 Mar 2025 18:07:57 +0000 (19:07 +0100)]
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.
Fabrice Bellard [Wed, 19 Mar 2025 13:27:01 +0000 (14:27 +0100)]
msan fix (#389)
Fabrice Bellard [Wed, 19 Mar 2025 12:56:10 +0000 (13:56 +0100)]
simplified js_bigint_from_float64()
Fabrice Bellard [Wed, 19 Mar 2025 12:29:54 +0000 (13:29 +0100)]
fixed examples/hello_module compilation (#240)
Fabrice Bellard [Wed, 19 Mar 2025 11:33:54 +0000 (12:33 +0100)]
fixed BigInt hashing - removed -fno-bigint in qjsc and JS_AddIntrinsicBigInt() (BigInt is now considered as a base object)
Fabrice Bellard [Wed, 19 Mar 2025 10:59:47 +0000 (11:59 +0100)]
fixed JS_DumpValue() for BigInt
Fabrice Bellard [Wed, 19 Mar 2025 10:43:31 +0000 (11:43 +0100)]
more bignum cleanup
Fabrice Bellard [Wed, 19 Mar 2025 09:54:04 +0000 (10:54 +0100)]
removed the ability to do simultaneous 64 and 32 bit x86 builds in order to simplify the Makefile
bellard [Wed, 19 Mar 2025 09:33:03 +0000 (10:33 +0100)]
Merge pull request #391 from nickva/try-to-fix-multiplatform-builds
Fix multiarch CI builds
Nick Vatamaniuc [Tue, 18 Mar 2025 23:29:55 +0000 (19:29 -0400)]
Fix multiarch CI builds
Fix: https://github.com/bellard/quickjs/issues/390
Fabrice Bellard [Tue, 18 Mar 2025 17:45:21 +0000 (18:45 +0100)]
compilation fix
Fabrice Bellard [Tue, 18 Mar 2025 17:34:05 +0000 (18:34 +0100)]
added missing variable
Fabrice Bellard [Tue, 18 Mar 2025 17:29:10 +0000 (18:29 +0100)]
removed bignum support and qjscalc - added optimized BigInt implementation
Fabrice Bellard [Thu, 13 Mar 2025 18:00:25 +0000 (19:00 +0100)]
regexp: allow [\-] in unicode mode (#373)
Fabrice Bellard [Thu, 13 Mar 2025 17:13:25 +0000 (18:13 +0100)]
fixed CONFIG_ALL_UNICODE compilation
Fabrice Bellard [Thu, 13 Mar 2025 16:44:55 +0000 (17:44 +0100)]
simplified the handling of closures
Fabrice Bellard [Thu, 13 Mar 2025 16:27:38 +0000 (17:27 +0100)]
added missing stack overflow check in JSON.stringify()
Fabrice Bellard [Thu, 13 Mar 2025 16:17:51 +0000 (17:17 +0100)]
allow regexp interruption (e.g. with Ctrl-C in the REPL)
Fabrice Bellard [Thu, 13 Mar 2025 15:30:02 +0000 (16:30 +0100)]
fix crash when add_property() fails on build arguments (penneryu)
Fabrice Bellard [Thu, 13 Mar 2025 15:23:13 +0000 (16:23 +0100)]
microbench: use toFixed()
Fabrice Bellard [Thu, 13 Mar 2025 15:04:38 +0000 (16:04 +0100)]
JS_SetPropertyInternal(): avoid recursing thru the prototypes if the property is found in a prototype
Fabrice Bellard [Thu, 13 Mar 2025 14:52:53 +0000 (15:52 +0100)]
fixed date parsing in case there is more than nine initial digits (initial patch by nickva)
Akos Kiss [Sat, 27 Jul 2024 09:34:49 +0000 (11:34 +0200)]
Fix termination in Worker test
Function names are case sensitive, `onMessage` is not the same as
`onmessage`.
Related to #98
Pino Toscano [Sun, 9 Jun 2024 07:23:49 +0000 (09:23 +0200)]
Define a fallback PATH_MAX if not available
PATH_MAX is optional in POSIX, and it is not available on GNU/Hurd.
While it could be possible to not rely on PATH_MAX, for now provide a
fallback definition (which should be safe enough) to get quickjs built
on GNU/Hurd.
Pino Toscano [Sun, 9 Jun 2024 07:21:01 +0000 (09:21 +0200)]
Use ftello() & fseeko() on any OS based on GNU libc
Strictly speaking, they are available in POSIX.1-2008 [1][2], so they
could be used on more platforms/OSes. To be cautious, enable them when
using GNU libc, since they have been available with that libc for a
very long time.
[1] https://pubs.opengroup.org/onlinepubs/
9699919799 /functions/ftell.html
[2] https://pubs.opengroup.org/onlinepubs/
9699919799 /functions/fseek.html
Pino Toscano [Sun, 9 Jun 2024 07:18:38 +0000 (09:18 +0200)]
Use malloc_usable_size() on any OS based on GNU libc
malloc_usable_size() is a GNU extension in GNU libc; hence, use it
every time GNU libc is used, rather than only on Linux.
Kasper Isager Dalsgarð [Wed, 17 Jul 2024 11:58:08 +0000 (13:58 +0200)]
Fix `JS_HasException()` when `null` is thrown (#313)
Use `JS_UNINITIALIZED` instead of `JS_NULL` when no exception is pending, so `null` can be thrown and distinguished from no exception pending.
Dmitry Volyntsev [Sun, 14 Jul 2024 22:08:40 +0000 (15:08 -0700)]
Fix GC leak in `js_proxy_get()` (#302)
Fixes #277
Fabrice Bellard [Thu, 30 May 2024 14:41:37 +0000 (16:41 +0200)]
regexp: fix non greedy quantizers with zero length matches
Fabrice Bellard [Thu, 30 May 2024 13:49:31 +0000 (15:49 +0200)]
updated test262.patch
Fabrice Bellard [Thu, 30 May 2024 13:36:20 +0000 (15:36 +0200)]
fixed test of test262 directory
Charlie Gordon [Thu, 9 May 2024 23:57:55 +0000 (01:57 +0200)]
Improve `js_os_exec` (#295)
- use $(shell) make command to test if closefrom() is available
- use closefrom() if available in js_os_exec()
- limit the fallback loop to 1024 handles to avoid costly loop on linux alpine.
PR inspired by @nicolas-duteil-nova
Charlie Gordon [Thu, 9 May 2024 12:14:50 +0000 (14:14 +0200)]
Add `js_resolve_proxy` (#293)
- simplify `JS_IsArray` for proxy chains
- remove `js_proxy_isArray`
Kasper Isager Dalsgarð [Thu, 9 May 2024 11:07:40 +0000 (13:07 +0200)]
Add `JS_StrictEq()`, `JS_SameValue()`, and `JS_SameValueZero()` (#264)
* add `JS_StrictEq()`, `JS_SameValue()`, and `JS_SameValueZero()` all accepting `JSValueConst`
* make `js_strict_eq` accept `JSValueConst`, remove uses of this function internally and replace them with
`js_strict_eq2` instead.
Kasper Isager Dalsgarð [Thu, 9 May 2024 10:45:47 +0000 (12:45 +0200)]
Expose `JS_SetUncatchableError()` (#262)
* Expose `JS_SetUncatchableError()`
* Remove unnecessary `JS_SetUncatchableError` declaration
Renáta Hodován [Thu, 9 May 2024 10:36:12 +0000 (12:36 +0200)]
Add the missing fuzz_common.c (#292)
Kasper Isager Dalsgarð [Wed, 8 May 2024 21:19:15 +0000 (23:19 +0200)]
Add `JS_HasException()` (#265)
Dmitry Volyntsev [Wed, 8 May 2024 21:17:00 +0000 (14:17 -0700)]
Add `JS_NewTypedArray()` (#272)
Renáta Hodován [Wed, 8 May 2024 16:19:48 +0000 (18:19 +0200)]
OSS-Fuzz targets improvements (#267)
* Move fuzz target sources from the oss-fuzz repository here
* Add support to build libFuzzer targets
* Simplify the fuzz_eval and fuzz_compile targets
The use of JS_NewContext instead of JS_NewContextRaw spares to call
JS_AddIntrinsic<XYZ> functions from the fuzz target, since the public
JS_NewContext API does exactly the same.
* Simplify the fuzz_regexp target
fuzz_regexp doesn't need to be dependant on libquickjs since the
runtime and the context - that were provided by libquickjs - were
only created to call two simple functions implemented in libquickjs
which could be mimicked by the fuzzer.
The removal of runtime and context objects implicated further
simplifications, like the omission of their one-time creation.
Finally, writing the result of the regexp operations into a file
is also superfluous, since it's not used by anybody.
* Recreate and destroy JS runtime and context in fuzz_eval and fuzz_compile targets
Before this patch, the test executions were not independent,
since all the executed tests used the same JavaScript runtime and
context, causing irreproducible failure reports.
* Enable bignumber support in eval and compile targets
Big numbers are used by the input corpus, but the targets were not
able to interpret them since they were not compiled into them.
This change improved the inital coverage of the fuzz_eval target with
21% and the coverage of the fuzz_compile target with 25% when using
the official corpus.
* Ensure std and os modules are available in the fuzz_eval and fuzz_compile targets
* Add fuzzer dictionary with builtin and variable names. Furthermore, added a JS script that collects all the builtin
names from the executing engine.
* Move common fuzzer code into one place
* Enable to define the LIB_FUZZING_ENGINE variable to ease the oss-fuzz integration
* Add README to fuzzers
Charlie Gordon [Sun, 5 May 2024 17:54:47 +0000 (19:54 +0200)]
Improve class parser (#289)
- accept `class P { async = 1 }}`
- accept `class P { static = 1 }}` etc.
- Fixes #261
Richard Davison [Sun, 5 May 2024 16:46:30 +0000 (18:46 +0200)]
fix class method with name get (#258)
Co-authored-by: Richard Davison <ridaviso@amazon.com>
Charlie Gordon [Sun, 5 May 2024 15:47:40 +0000 (17:47 +0200)]
Improve libunicode and libregexp headers (#288)
- move all `lre_xxx` functions to libunicode
- use flags table `lre_ctype_bits` instead of bitmaps
- simplify `lre_is_space`, `lre_js_is_ident_first` and `lre_js_is_ident_next`
- simplify `simple_next_token`, handle UTF-8 correctly
- simplify `is_let`, remove dead code
Charlie Gordon [Sun, 5 May 2024 10:10:24 +0000 (12:10 +0200)]
Improve unicode table handling (#286)
- Document table and index formats
- Add size statistics
- Fix UBSAN issue in `get_le24()`
Fixes #285