All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added import attributes to the Loader trait #601\
- Added
RQUICKJS_SYS_NO_WASI_SDKenv variable that skips downloading and setting up the WASI SDK when set to1#648
- Updated
AsyncContext::async_withto use async closure syntax #602
- Deprecated
async_with!macro #602
- Fixed cross-thread stack overflow false positives in parallel mode by updating stack baseline before QuickJS C entry points
- Fixed iterators to use correct IteratorPrototype chain
- Fixed a latent ABI layout vulnerability in
JS_NewPromiseCapabilityFFI boundary by replacing tuple with strictly compatible array
- Added
Proxyobject ##570 - Allow setting filename as an eval option ##536
- Add Iterable allow JS to iterate over Rust iterator ##564
- Add JsIterator to iterate over Javascript Iterator ##564
- Add more trait implementations like AsRef for CString ##558
- Fix wasm32 build #548
- Allow
rquickjs-coreto build withno_std##455 - Add
PromiseHookbindings ##453 - Add
Module::writeoptions to enable features likeJS_WRITE_OBJ_STRIP_SOURCEandJS_WRITE_OBJ_STRIP_DEBUG##443 and ##518 - Allow building with sanitizer ##425
- Add
set_host_promise_rejection_trackertoAsyncRuntime##452 - Add linux arm64 support to
syscrate ##445 - Implement
TraceforAtom##517 - Add
disable-assertionsfeature to disable runtime assertions in quickjs ##535 - Add
JS_TAG_SHORT_BIG_INTtag to support short BigInt ##458 and ##519
- Bump MSRV to 1.82 ##531
- Update to 2024 edition ##473
- Export
DriveFuture##491 - Switch to
dlopen2for native module loading ##513
- Fix base objects intrinsic not being enabled in async context ##442
- Fix namespace resolution for JsLifetime in derive macro ##429
- Fix ownership of ctx pointers to be more ergonomic and fix cleanup bugs ##433
- Fix rename option in qjs attribute ##428
- Strip llvm suffix for
*-pc-windows-gnullvmtarget ##506
- Switching to quickjs-ng from quickjs as base engine #369
This change should bring better performances and features, we are aware that it is bigger in intruction sizes.
We would eventually like to support the "original" quickjs engine again in the future, but we use new functions now that are only available in the -ng version.