v0.1.0
Welcome to QuickJS-ng
Welcome to QuickJS-ng friendly for of QuickJS. With this project we aim to provide a worthy successor to QuickJS, packed with new features and bugfixes, and involving the community of QuickJS enthusiasts.
Hope you have as much fun using it as we do building it.
❤️ Ben, Saúl and the QuickJS-ng contributors.
New ES features
- a9ac7a0: Add top-level await support (Saúl Ibarra Corretgé)
- 18eb603: Implement Promise.withResolvers (#14) (Ben Noordhuis)
- 99eb81e: Implement Array.prototype.at (#13) (Ben Noordhuis)
- 5501834: Implement String.prototype.at (#12) (Ben Noordhuis)
- 9b3b308: Implement TypedArray.prototype.at (#18) (Ben Noordhuis)
- a3a57fe: Implement Array.prototype.toReversed (#19) (Ben Noordhuis)
- 0720b06: Implement String.prototype.isWellFormed (#41) (Ben Noordhuis)
- 15f798d: Implement Array.prototype.with (#45) (Ben Noordhuis)
- a19b07a: Implement Array.prototype.toSorted (#44) (Ben Noordhuis)
- cfe4251: Implement String.prototype.toWellFormed (#43) (Ben Noordhuis)
- d2e632e: Allow symbols as WeakMap and WeakSet keys (#58) (Ben Noordhuis)
- feebfbc: Add Array.prototype.toSpliced (#64) (Ben Noordhuis)
- d88e9df: Implement TypedArray.prototype.findLast{Index} (#73) (Ben Noordhuis)
- 7e955f6: Implement Array.prototype.findLast{Index} (#70) (Ben Noordhuis)
- ea068d9: Add performance.{now,timeOrigin} (Saúl Ibarra Corretgé)
- 20b3aca: Update to Unicode 15.0.0 (#89) (Ben Noordhuis)
- 4727e40: Retrieve RegExp 'g' flag in spec conformant way (#92) (Ben Noordhuis)
- b56cbb1: Implement extended named capture group identifiers (#90) (Ben Noordhuis)
- d1960d1: Implement RegExp 'd' flag (#86) (Ben Noordhuis)
- 7aabea9: Implement Error causes (#103) (Divy Srivastava)
- 8d496b3: Add queueMicrotask (Saúl Ibarra Corretgé)
- 1fcb573: Implement ArrayBuffer.prototype.transfer (#101) (Divy Srivastava)
New APIs
- 6d7fd42: Add JS_GetUint8Array API (Saúl Ibarra Corretgé)
- 55e845c: Add JS_GetVersion (Saúl Ibarra Corretgé)
- 38f88c0: Remove CONFIG_BIGNUM, always enable BigInt (#34) (Ben Noordhuis)
- 3c144fd: Add JS_GetAnyOpaque() to support polymorphism (Ole André Vadla Ravnås)
- 5ce2957: Make JS_NewClassID thread aware (Saúl Ibarra Corretgé)
Build system
The build system has been replaced with CMake, here are some of the highlights:
- 39e834f: Add initial CMake support (Saúl Ibarra Corretgé)
- 0b09109: Add shared library target to CMake (#60) (Saúl Ibarra Corretgé)
- 54a4f29: Refactor build system to use CMake only (Saúl Ibarra Corretgé)
- 5d2e74f: Add
-DBUILD_QJS_LIBC
option (Divy Srivastava)
Testing infrastructure
Highlights:
- 62f6789: ci: add macos build+test workflow (#3) (Ben Noordhuis)
- 2f7fd38: ci: add linux build+test workflow (#2) (Ben Noordhuis)
- 141b775: Enable sanitizers on CI (Ben Noordhuis)
- cd4579d: Add MemorySanitizer support (Ben Noordhuis)
- 83e6fca: Add UndefinedBehaviorSanitizer support (Ben Noordhuis)
- f2a8f04: Enable UBSan sanitizer on CI (Ben Noordhuis)
- 7be933e: Enable test262 on CI (#11) (Ben Noordhuis)
- 2f51cbc: Add CI for MinGW on Windows (Saúl Ibarra Corretgé)
- af456e6: Add workflow for making releases (Saúl Ibarra Corretgé)
More
Check the git commit history for more details!