QuickJS, the Next Generation: a mighty JavaScript engine
Find a file
Ben Noordhuis c7ca3febd3
Don't serialize IC opcodes (#334)
Translate IC opcodes to their non-IC variants before writing them out.
Before this commit they were not byte-swapped properly, breaking the
ability to load serialized bytecode containing ICs on systems with
different endianness. Inline caches are recomputed as needed now.

A pleasing side effect of this change is that serialized bytecode is,
on average, a little smaller because fewer atoms are duplicated now.
2024-03-27 12:07:11 +01:00
.github/workflows Add valgrind to CI 2024-03-20 20:03:05 +01:00
doc Handle serialization endianness transparently (#152) 2023-11-28 22:49:01 +01:00
examples Replace JSValueConst with JSValue (#195) 2023-12-10 15:15:42 +01:00
gen Don't serialize IC opcodes (#334) 2024-03-27 12:07:11 +01:00
test262@c1281dba45 Enable test262 on CI (#11) 2023-11-04 10:27:57 +01:00
tests Fix more error cases (#332) 2024-03-26 13:22:37 +01:00
.gitignore Add support for compiling with Microsoft Visual Studio C++ (MSVC) (#246) 2024-01-16 12:42:05 +01:00
.gitmodules Enable test262 on CI (#11) 2023-11-04 10:27:57 +01:00
CMakeLists.txt Do not link to pthread when targeting Android 2024-03-20 07:30:39 +01:00
cutils.c Retain function source code in serialized bytecode (#218) 2023-12-16 01:01:26 +01:00
cutils.h Fix Android build 2024-03-12 10:26:10 +01:00
dirent_compat.h Add support for building with ClangCL on Windows 2023-11-30 01:23:09 +01:00
getopt_compat.h Add support for building with ClangCL on Windows 2023-11-30 01:23:09 +01:00
libbf.c Fix UB in bf_set_ui() 2023-12-02 16:05:10 +01:00
libbf.h Fix building with tcc (#170) 2023-12-03 13:36:51 +01:00
libregexp-opcode.h Optimize RegExp ASCII literal matching (#94) 2023-11-19 17:26:45 +01:00
libregexp.c Fix bug in GET_PREV_CHAR macro (#278) 2024-03-03 17:12:52 +01:00
libregexp.h Implement RegExp 'v' flag, part 1 (#229) 2023-12-21 19:37:31 +01:00
libunicode-table.h Drop CONFIG_ALL_UNICODE and enable it by default 2023-11-20 10:52:04 +01:00
libunicode.c Add NetBSD support (#177) 2023-12-07 15:48:31 +01:00
libunicode.h Drop CONFIG_ALL_UNICODE and enable it by default 2023-11-20 10:52:04 +01:00
LICENSE Update LICENSE 2023-12-06 00:00:15 +01:00
list.h Add container_of macro 2023-12-23 00:11:41 +01:00
Makefile Check-in all generated C files 2024-02-13 09:49:57 +01:00
qjs.c Run V8 spec conformance test suite (#243) 2024-01-02 07:47:40 +01:00
qjsc.c Retain function source code in serialized bytecode (#218) 2023-12-16 01:01:26 +01:00
quickjs-atom.h Implement Error.prepareStackTrace support 2023-12-19 15:36:44 +01:00
quickjs-c-atomics.h Enable support for GCC compler v < 4.9 2023-11-29 09:22:27 +01:00
quickjs-libc.c Add os.getpid (#320) 2024-03-17 20:01:06 +01:00
quickjs-libc.h Replace JSValueConst with JSValue (#195) 2023-12-10 15:15:42 +01:00
quickjs-opcode.h Don't serialize IC opcodes (#334) 2024-03-27 12:07:11 +01:00
quickjs.c Don't serialize IC opcodes (#334) 2024-03-27 12:07:11 +01:00
quickjs.h Expose JS_GetPropertyInt64 in the public API 2024-03-26 07:59:00 +01:00
README.md Update README, add fork information 2024-03-12 20:00:41 +01:00
repl.js Remove unused variables in REPL 2024-03-20 11:50:06 +01:00
run-test262.c Fix run-test262 dynamic import (#237) 2023-12-27 10:19:58 +01:00
test262.conf Implement RegExp 'v' flag, part 1 (#229) 2023-12-21 19:37:31 +01:00
test262_errors.txt Fix evaluation order of computed properties 2024-01-16 12:43:35 +01:00
unicode_download.sh updated to Unicode 14.0.0 2022-03-06 19:00:24 +01:00
unicode_gen.c Fix typo in #undef (#222) 2023-12-16 15:11:28 +01:00
unicode_gen_def.h Update to Unicode 15.0.0 (#89) 2023-11-18 22:29:53 +01:00
v8-tweak.js Improve string parsing and JSON parsing (#316) 2024-03-22 11:19:36 +01:00
v8.js Improve string parsing and JSON parsing (#316) 2024-03-22 11:19:36 +01:00
v8.sh Run V8 spec conformance test suite (#243) 2024-01-02 07:47:40 +01:00
v8.txt Fix more error cases (#332) 2024-03-26 13:22:37 +01:00

QuickJS - A mighty JavaScript engine

Friendly QuickJS fork focused on reigniting the project.

Overview

In October 2023 @bnoordhuis and @saghul decided to fork the QuickJS project with the aim of reigniting it. They reached out to the original authors (@bellard and @chqrlie) about their intentions.

As of December 2023 the initial goal was somewhat accomplished. @bellard resumed working on the project and both parties have been pulling patches from each other since.

As of early 2024 both projects agree the proper path forward involves merging both projects and combining the efforts. While that may take a while, since both projects diverged in certain areas, there is willingness to go in this direction from both sides.