# QuickJS curated list :::info ## Updates **(2024/3/4)** The development continued in early 2024. On 2024/1/13 Bellard released a new version on the [project website](https://bellard.org/quickjs/). **(2023/11/28)** There is a community-maintained fork live at https://github.com/quickjs-ng/quickjs! ::: <!----> > **Warning**: > * ~~QuickJS's last official commit is on [2022/3/7](https://github.com/bellard/quickjs/commit/2788d71e823b522b178db3b3660ce93689534e6d). Consider it <del>no longer</del> community maintained.~~ > * There are a couple of sereve bugs (infinite loop, segfaults, ...) remaining unpatched. > * ~~The latest discussions on community effort happens at > https://github.com/bellard/quickjs/issues/188.~~ * <https://github.com/saghul/txiki.js>: full ecosystem; including a TLA patch * <https://github.com/koush/quickjs>: vscode debugger! * <https://github.com/hsiaosiyuan0/slowjs>: dissect; debugger & GC dump * <https://github.com/suchipi/quickjs>: ES2022? * <https://github.com/frida/quickjs>: A meson.build for library; some useful patches * <https://github.com/openwebf/quickjs>: * [poly. inline caching](https://en.wikipedia.org/wiki/Inline_caching) & column number from some china guys # Tutorials * https://blogs.igalia.com/compilers/2023/06/12/quickjs-an-overview-and-guide-to-adding-a-new-feature/ # Modules * https://github.com/rsenn/qjs-modules * # Unpatched bugs AFAIK... * [[quickjs-devel] GC fails with os.setTimeout](https://www.freelists.org/post/quickjs-devel/GC-fails-with-ossetTimeout,1) * [AddressSanitizer: stack-overflow (CVE-2023-31922)](https://github.com/bellard/quickjs/issues/178) * [[quickjs-devel] A Bug 100% causing SIGSEGV related to async function and closure](https://www.freelists.org/post/quickjs-devel/A-Bug-100-causing-SIGSEGV-related-to-async-function-and-closure) * [Can quickjs be used in multithreading?](https://github.com/bellard/quickjs/issues/362): to-be-fixed with <https://github.com/quickjs-ng/quickjs/commit/5ce2957e>. # Meta * https://github.com/kaosat-dev/awesome-quickjs --- https://github.com/PetterS/quickjs/pull/82/files --- ## Upstream release - [ ] new: `CONFIG_COSMO` -> `LDFLAGS` - [x] `-fwrapv` - [ ] `_OPT` `-fPIC` - [x] new: `CONFIG_SHARED_LIBS` if !COSMO && !DARWIN ## Bump unicode def <script> <style>.markdown-body td > ul { margin-bottom: 0 }</style> </script> | # | Input | Output | Remark | | -- | ----- | ------ | ------ | | 1. | <ul><li>`unicode_gen.host.o`<li>`cutils.o`</li><li>`libunicode.c`<li>`unicode_gen_def.h`</ul> | **`unicode_gen.o`** | For cross-compilation | 2. | **`unicode_gen.o`** | `libunicode-table.h` | 3. | `unicode_gen_def.h` | <ul><li>`libunicode.o`<li>`.m32`, `.m32s`, `.nolto` ## Original TODOs - [ ] If `unicode/UnicodeData.txt` exists, update `libunicode-table.h`; else copy from source tree - [ ] handle missing `test262{,o}` ## Support table As of https://github.com/bellard/quickjs/blob/3f81070e/Makefile: | Feature | Makefile flag | Meson flag | | -------- | --------------- | ----------- | | LTO | `CONFIG_LTO` | `b_lto` == true | Werror | `CONFIG_WERROR` | `werror` == true | ASAN | `CONFIG_ASAN` | `b_sanitize` == `address` | Profiler | `CONFIG_PROFILE` | `b_pgo` == `generate` or `use`? # My fork https://gitlab.com/qbane/quickjs