Avatar for the oxc-project user
oxc-project
json-strip-comments
BlogDocsChangelog

Performance History

Latest Results

chore: release v3.1.1
release-plz-2025-11-21T15-18-23Z
3 days ago
chore(deps): update codspeedhq/action action to v4.12.1 (#158) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [CodSpeedHQ/action](https://redirect.github.com/CodSpeedHQ/action) | action | minor | `v4.11.1` → `v4.12.1` | --- ### Release Notes <details> <summary>CodSpeedHQ/action (CodSpeedHQ/action)</summary> ### [`v4.12.1`](https://redirect.github.com/CodSpeedHQ/action/releases/tag/v4.12.1) [Compare Source](https://redirect.github.com/CodSpeedHQ/action/compare/v4.11.1...v4.12.1) #### Release Notes In this release, we've focused on improving the local user experience.\ We've revamped the output of the cli to provide tailed logs while the benchmarks are being executed, and polished a bit the display of results after your run. We also added support to run multiple modes in a single command invocation, both for local and CI runs!\ For instance, that means you can now do `codspeed run --mode simulation --mode memory --mode walltime -- cargo codspeed run` Last but not least, you can now define `entrypoints` in your project config ```yaml # codspeed.yml # List of commands that are run when running `codspeed run` without further arguments benchmarks: - name: My ls command # Mutually exclusive with entrypoint # Expects a command that will run a benchmark for an arbitrary command exec: ls -al /usr/bin - name: My pytest-codspeed benchmark # Mutually exclusive with exec # Expects a command that will run a benchmark program that is using a codspeed integration entrypoint: pytest --codspeed src ``` Fix a bug where memory profiling with `codspeed exec` for binaries that use statically-linked allocators (e.g. jemalloc in Rust). Previously, we reported incorrect memory usage because it didn't attach to the statically linked allocators. #### Details ##### <!-- 0 -->🚀 Features - Set NODE\_OPTIONS to get perf map from node by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) in [#&#8203;267](https://redirect.github.com/CodSpeedHQ/runner/pull/267) - Disable node instrospection for exec-harness by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Support CODSPEED\_MEMTRACK\_BINARIES for static allocator discovery by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) - Gracefully handle logs from the runner while rolling buffer is active by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Add `--show-full-output` to bypass the new rolling buffer by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Add a spinner while waiting for results by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Clean up group headers and emoji usage, make the executor title not dim after run by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Add rolling buffer to display logs from executors by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Polish impact reporting and upload feedback by [@&#8203;art049](https://redirect.github.com/art049) - Add color-coded metrics to benchmark result tables by [@&#8203;art049](https://redirect.github.com/art049) - Enhance local logger with richer visual hierarchy by [@&#8203;art049](https://redirect.github.com/art049) - Style the ASCII banner with CodSpeed orange by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Enforce CodSpeed CLI as single source of truth for all measurements by [@&#8203;art049](https://redirect.github.com/art049) - Add optimize and setup-harness skills by [@&#8203;art049](https://redirect.github.com/art049) - Add the cursor plugin by [@&#8203;art049](https://redirect.github.com/art049) - Check if user is logged in before doing a local run by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) in [#&#8203;263](https://redirect.github.com/CodSpeedHQ/runner/pull/263) - Skip respository resolve with `--skip-upload` by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Use an enum and fix schema for entry/entrypoint by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) in [#&#8203;260](https://redirect.github.com/CodSpeedHQ/runner/pull/260) - Accept a mix of entrypoint and exec targets in project config by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Introduce OrchestratorConfig and ExecutorConfig by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Unify run\_part\_id suffix computation between ci providers and local by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Add the claude plugin by [@&#8203;art049](https://redirect.github.com/art049) - Add local\_data to upload metadata by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Use repositoryOverview resolver rather than repository by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) ##### <!-- 1 -->🐛 Bug Fixes - Use fp unwinding mode when running `go test` by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) in [#&#8203;269](https://redirect.github.com/CodSpeedHQ/runner/pull/269) - Improve error message when no benchmarks are found by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) in [#&#8203;264](https://redirect.github.com/CodSpeedHQ/runner/pull/264) ##### <!-- 2 -->🏗️ Refactor - Extract shared test helpers for compile and track by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) - Pass extra env via config instead of unsafe set\_var by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) - Remove the closure argument to poll in favor of polling options by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Move EXEC\_HARNESS\_VERSION and EXEC\_HARNESS\_COMMAND to orchestrator mod by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Flatten orchestrator execution loop over (command, mode) pairs by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) - Introduce Orchestrator to support multi-mode execution by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) in [#&#8203;259](https://redirect.github.com/CodSpeedHQ/runner/pull/259) - Consolidate poll\_results into upload module by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) ##### <!-- 3 -->📚 Documentation - docs: add documentation about multiple modes in a single run by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) in [#&#8203;195](https://redirect.github.com/CodSpeedHQ/action/pull/195) ##### <!-- 6 -->🧪 Testing - Add spawn wrapper integration test for static allocator discovery by [@&#8203;not-matthias](https://redirect.github.com/not-matthias) in [#&#8203;266](https://redirect.github.com/CodSpeedHQ/runner/pull/266) ##### <!-- 7 -->⚙️ Internals - Bump linux-perf-data to use upstream version by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) in [#&#8203;271](https://redirect.github.com/CodSpeedHQ/runner/pull/271) - Remove lazy\_static in favor of LazyLock by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) in [#&#8203;265](https://redirect.github.com/CodSpeedHQ/runner/pull/265) - Rename skill directories with codspeed prefix by [@&#8203;art049](https://redirect.github.com/art049) - Move architecture docs out of this repo by [@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange) in [#&#8203;262](https://redirect.github.com/CodSpeedHQ/runner/pull/262) - Typo in plugin description by [@&#8203;art049](https://redirect.github.com/art049) - Bump memtrack version - chore: bump runner version to 4.12.0 by [@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot] in [#&#8203;194](https://redirect.github.com/CodSpeedHQ/action/pull/194) - chore: bump runner version to 4.12.1 by [@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot] in [#&#8203;196](https://redirect.github.com/CodSpeedHQ/action/pull/196) #### Install codspeed-runner 4.12.1 ##### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CodSpeedHQ/codspeed/releases/download/v4.12.1/codspeed-runner-installer.sh | sh ``` #### Download codspeed-runner 4.12.1 | File | Platform | Checksum | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | [codspeed-runner-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.12.1/codspeed-runner-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.12.1/codspeed-runner-aarch64-unknown-linux-musl.tar.gz.sha256) | | [codspeed-runner-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.12.1/codspeed-runner-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://redirect.github.com/CodSpeedHQ/codspeed/releases/download/v4.12.1/codspeed-runner-x86_64-unknown-linux-musl.tar.gz.sha256) | **Full Runner Changelog**: <https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md> **Full Changelog**: <https://github.com/CodSpeedHQ/action/compare/v4.11.1...v4.12.1> </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 10am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/json-strip-comments). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
main
3 days ago
chore: release v3.1.1
release-plz-2025-11-21T15-18-23Z
10 days ago
chore: release v3.1.1
release-plz-2025-11-21T15-18-23Z
10 days ago
chore(deps): update rust crates (#157) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [criterion2](https://bheisler.github.io/criterion.rs/book/index.html) ([source](https://redirect.github.com/Boshen/criterion2.rs)) | dev-dependencies | patch | `3.0.2` → `3.0.3` | | [wasm-bindgen](https://wasm-bindgen.github.io/wasm-bindgen) ([source](https://redirect.github.com/wasm-bindgen/wasm-bindgen)) | dependencies | patch | `0.2.105` → `0.2.114` | --- ### Release Notes <details> <summary>Boshen/criterion2.rs (criterion2)</summary> ### [`v3.0.3`](https://redirect.github.com/Boshen/criterion2.rs/blob/HEAD/CHANGELOG.md#303---2026-03-08) ##### Other - *(deps)* update rust crate tokio to v1.50.0 ([#&#8203;151](https://redirect.github.com/Boshen/criterion2.rs/pull/151)) - *(deps)* update dependency rust to v1.94.0 ([#&#8203;150](https://redirect.github.com/Boshen/criterion2.rs/pull/150)) - *(deps)* update rust crate tempfile to v3.26.0 ([#&#8203;149](https://redirect.github.com/Boshen/criterion2.rs/pull/149)) - *(deps)* update rust crates ([#&#8203;148](https://redirect.github.com/Boshen/criterion2.rs/pull/148)) - *(deps)* update dependency rust to v1.93.1 ([#&#8203;147](https://redirect.github.com/Boshen/criterion2.rs/pull/147)) - *(deps)* update rust crates ([#&#8203;146](https://redirect.github.com/Boshen/criterion2.rs/pull/146)) - *(deps)* update rust crate codspeed to v4.3.0 ([#&#8203;145](https://redirect.github.com/Boshen/criterion2.rs/pull/145)) - *(deps)* update dependency rust to v1.93.0 ([#&#8203;144](https://redirect.github.com/Boshen/criterion2.rs/pull/144)) - *(deps)* update rust crates ([#&#8203;143](https://redirect.github.com/Boshen/criterion2.rs/pull/143)) - *(deps)* update rust crates ([#&#8203;142](https://redirect.github.com/Boshen/criterion2.rs/pull/142)) - *(deps)* update rust crate tokio to v1.49.0 ([#&#8203;141](https://redirect.github.com/Boshen/criterion2.rs/pull/141)) - *(deps)* update rust crates ([#&#8203;140](https://redirect.github.com/Boshen/criterion2.rs/pull/140)) - *(deps)* update dependency rust to v1.92.0 ([#&#8203;139](https://redirect.github.com/Boshen/criterion2.rs/pull/139)) - *(deps)* update dependency rust to v1.91.1 ([#&#8203;138](https://redirect.github.com/Boshen/criterion2.rs/pull/138)) - *(deps)* lock file maintenance ([#&#8203;136](https://redirect.github.com/Boshen/criterion2.rs/pull/136)) - *(deps)* update rust crate codspeed to v4.1.0 ([#&#8203;135](https://redirect.github.com/Boshen/criterion2.rs/pull/135)) - *(deps)* lock file maintenance ([#&#8203;134](https://redirect.github.com/Boshen/criterion2.rs/pull/134)) - *(deps)* update dependency rust to v1.91.0 ([#&#8203;133](https://redirect.github.com/Boshen/criterion2.rs/pull/133)) - *(deps)* lock file maintenance rust crates ([#&#8203;132](https://redirect.github.com/Boshen/criterion2.rs/pull/132)) - *(deps)* lock file maintenance rust crates ([#&#8203;131](https://redirect.github.com/Boshen/criterion2.rs/pull/131)) - *(deps)* lock file maintenance rust crates ([#&#8203;130](https://redirect.github.com/Boshen/criterion2.rs/pull/130)) - *(deps)* update rust crate codspeed to v4 ([#&#8203;129](https://redirect.github.com/Boshen/criterion2.rs/pull/129)) - *(deps)* lock file maintenance rust crates ([#&#8203;128](https://redirect.github.com/Boshen/criterion2.rs/pull/128)) - *(deps)* update dependency rust to v1.90.0 ([#&#8203;127](https://redirect.github.com/Boshen/criterion2.rs/pull/127)) - *(deps)* lock file maintenance ([#&#8203;126](https://redirect.github.com/Boshen/criterion2.rs/pull/126)) - *(deps)* lock file maintenance ([#&#8203;125](https://redirect.github.com/Boshen/criterion2.rs/pull/125)) - *(deps)* lock file maintenance rust crates ([#&#8203;124](https://redirect.github.com/Boshen/criterion2.rs/pull/124)) - *(deps)* lock file maintenance rust crates ([#&#8203;123](https://redirect.github.com/Boshen/criterion2.rs/pull/123)) - *(deps)* lock file maintenance ([#&#8203;122](https://redirect.github.com/Boshen/criterion2.rs/pull/122)) - *(deps)* update dependency rust to v1.89.0 ([#&#8203;120](https://redirect.github.com/Boshen/criterion2.rs/pull/120)) </details> <details> <summary>wasm-bindgen/wasm-bindgen (wasm-bindgen)</summary> ### [`v0.2.114`](https://redirect.github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02114) [Compare Source](https://redirect.github.com/wasm-bindgen/wasm-bindgen/compare/0.2.113...0.2.114) ##### Added - Added `[WbgGeneric]` WebIDL extended attribute for opting stable dictionary and interface definitions into typed generics (the same signatures unstable APIs use), avoiding legacy `&JsValue` fallbacks. Applied to all new VideoFrame-related types. [#&#8203;5008](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/5008) - Added `unchecked_optional_param_type` attribute for marking exported function parameters as optional in TypeScript (`?:`) and JSDoc (`[paramName]`) output. Mutually exclusive with `unchecked_param_type`. Required parameters after optional parameters are rejected at compile time. [#&#8203;5002](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/5002) - Added termination detection for `panic=unwind` builds. When a non-JS exception (e.g. a Rust panic) escapes from Wasm, the instance is marked as terminated and subsequent calls from JS into Wasm will throw a `Module terminated` error instead of re-entering corrupted state. [#&#8203;5005](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/5005) - When `--reset-state` is combined with `panic=unwind` builds, the Wasm instance is automatically reset after a fatal termination, allowing subsequent calls to succeed instead of throwing a `Module terminated` error. [#&#8203;5013](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/5013) ##### Changed - Replaced runtime `0x80000000` vtable bit-flag for closure unwind safety with a compile-time `const UNWIND_SAFE: bool` generic on the invoke shim, `OwnedClosure`, and `BorrowedClosure`. Removes `OwnedClosureUnwind` and deduplicates internal closure helpers. The public API is unchanged. [#&#8203;5003](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/5003) - Removed unused `IntoWasmClosureRef*::WithLifetime` types, `WasmClosure::to_wasm_slice`, and a lifetime from `IntoWasmClosureRef*`; moved `Static` associated type into `WasmClosure`. [#&#8203;5003](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/5003) ##### Fixed - Fixed exported structs/enums/functions with the same `js_name` but different `js_namespace` values producing symbol collisions at compile time, by deriving internal wasm symbols from a qualified name that includes the namespace. [#&#8203;4977](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4977) - Fixed soundness hole in `ScopedClosure`'s `UpcastFrom` that allowed to extend the lifetime after the original `ScopedClosure` was dropped. [#&#8203;5006](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/5006) ### [`v0.2.113`](https://redirect.github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02113) [Compare Source](https://redirect.github.com/wasm-bindgen/wasm-bindgen/compare/0.2.112...0.2.113) ##### Changed - Reduced usage of `unsafe` code: replaced `transmute`/`transmute_copy` with safe alternatives for `Boolean`/`Null`/`Undefined` constants and `ArrayTuple` conversions, unified duplicated `AsRef`/`From` impls for generic imported types, and removed the `__wbindgen_object_is_undefined` intrinsic in favor of a safe Rust-side equivalent. [#&#8203;4993](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4993) - Renamed `__wbindgen_object_is_null_or_undefined` intrinsic to `__wbindgen_is_null_or_undefined` and removed the `__wbindgen_object_is_undefined` intrinsic, replacing it with a safe Rust-side check. The `is_null_or_undefined` check now uses safe `&JsValue` ABI instead of raw `u32`. [#&#8203;4994](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4994) ##### Fixed - Fixed incorrect method naming for stable web-sys methods that reference unstable types (e.g. `texImage2D` taking a `VideoFrame` parameter). These methods were being named in a separate unstable expansion namespace, producing overly-short names like `tex_image_2d` instead of the correct `tex_image_2d_with_u32_and_u32_and_video_frame`. The fix separates the signature classification to distinguish "from unstable IDL" (authoritative overrides) from "stable method using an unstable type", ensuring the latter is named as part of the stable expansion. [#&#8203;4991](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4991) ### [`v0.2.112`](https://redirect.github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02112) [Compare Source](https://redirect.github.com/wasm-bindgen/wasm-bindgen/compare/0.2.111...0.2.112) ##### Removed - Removed `ImmediateClosure` type introduced in 0.2.109. Stack-borrowed `&dyn Fn` / `&mut dyn FnMut` closures are now treated as unwind safe by default (panics are caught and converted to JS exceptions with proper unwinding). A unified `ScopedClosure::immediate` approach may be revisited in a future release. [#&#8203;4986](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4986) ### [`v0.2.111`](https://redirect.github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02111) [Compare Source](https://redirect.github.com/wasm-bindgen/wasm-bindgen/compare/0.2.110...0.2.111) ##### Fixed - Restored backwards compatibility for breaking changes introduced in 0.2.110: re-added deprecated `Promise::then2` binding, reverted `Promise::all_settled` stable signature to take `&JsValue` instead of owned `Object`, and added default type parameters (`= JsValue`) to `ArrayIntoIter`, `ArrayIter`, and `Iter` structs. [#&#8203;4979](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4979) ### [`v0.2.110`](https://redirect.github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02110) [Compare Source](https://redirect.github.com/wasm-bindgen/wasm-bindgen/compare/0.2.109...0.2.110) ##### Changed - Refactor new closure methods - ensures that all closure constructor functions have the variants `Closure::foo()`, `Closure::foo_aborting()` and `Closure::foo_assert_unwind_safe()` this then fully allows switching from the UnwindSafe bound now being applies on foo() to use one of the alternatives, given these limitations of AssertUnwindSafe. The same applies to `ImmediateClosure`. In addition, mutable reentrancy guards are added for `ImmediateClosure`, and it is updated to be pass-by-value as well. [#&#8203;4975](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4975) ##### Fixed - Fixed a regression where Array.of1,... variants using generic `Array<T>` broke inference. Reverted to use non-generic JsValue arguments. In addition extends generic class hoisting to for constructors to also include `static_method_of` methods returning the own type, to allow `Array::of` generic to now be on the `Array<T>` impl block. [#&#8203;4974](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4974) ### [`v0.2.109`](https://redirect.github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02109) [Compare Source](https://redirect.github.com/wasm-bindgen/wasm-bindgen/compare/0.2.108...0.2.109) ##### Added - Added support for erasable generic type parameters on imported JavaScript types, using sound type erasure in JS bindgen boundary. Includes updated js-sys bindings with generic implementations for many standard JS types and functions including `Array<T>`, `Promise<T>`, `Map<K, V>`, `Iterator<T>`, and more. [#&#8203;4876](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4876) - Added `ScopedClosure<'a, T>` as a unified closure type with lifetime parameter. `ScopedClosure::borrow(&f)` (for immutable `Fn`) and `ScopedClosure::borrow_mut(&mut f)` (for mutable `FnMut`) create borrowed closures that can capture non-`'static` references, ideal for immediate/synchronous JS callbacks. `Closure<T>` is now a type alias for `ScopedClosure<'static, T>`, maintaining backwards compatibility. Also added `IntoWasmAbi` implementation for `Closure<T>` enabling pass-by-value ownership transfer to JavaScript. - Added `ImmediateClosure<'a, T>` as a lightweight, unwind-safe replacement for `&dyn FnMut` in immediate/synchronous callbacks. Unlike `ScopedClosure`, it has no JS call on creation, no JS call on drop, and no GC overhead—the same ABI as `&dyn FnMut` but with panic safety. Use `ImmediateClosure::new(&f)` for immutable `Fn` closures (easier to satisfy unwind safety) or `ImmediateClosure::new_mut(&mut f)` for mutable `FnMut` closures. Closure parameter types are automatically inferred from context. Also implements `From<&ImmediateClosure<T>> for ScopedClosure<T>` for API migration. [#&#8203;4950](https://redirect.github.com/wasm-bindgen/wasm-bindgen/issues/4950) - Implement `#[wasm_bindgen(catch)]` exception handling directly in Wasm using `WebAssembly.JSTag` when Wasm exception handling is available. This generates smaller and faster code by avoiding JavaScript `handleError` wrapper functions. [#&#8203;4942](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4942) - Add Node.js `worker_threads` support for atomics builds. When targeting Node.js with atomics enabled, wasm-bindgen now generates `initSync({ module, memory, thread_stack_size })` and `__wbg_get_imports(memory)` functions that allow worker threads to initialize with a shared WebAssembly.Memory and pre-compiled module. Auto-initialization occurs only on the main thread for backwards compatibility. - Added a panic message when a getter has more than one argument. [#&#8203;4936](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4936) - Added support for WebIDL namespace attributes in `wasm-bindgen-webidl`. This enables APIs like the CSS Custom Highlight API which adds the `highlights` attribute to the `CSS` namespace. [#&#8203;4930](https://redirect.github.com/wasm-bindgen/wasm-bindgen/issues/4930) - Added stable `ShowPopoverOptions` dictionary and `show_popover_with_options()` method to `HtmlElement`, and unstable `TogglePopoverOptions` dictionary per the WHATWG HTML spec. [#&#8203;4968](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4968) - Added unstable Geolocation API types per the latest W3C spec: `GeolocationCoordinates`, `GeolocationPosition`, and `GeolocationPositionError`. The `Geolocation` interface now has both stable methods (using the old `Position`/`PositionError` types with `[Throws]`) and unstable methods (using the new types without `[Throws]}`, matching actual browser behavior). [#&#8203;2578](https://redirect.github.com/AbesBend662/AbesBend662.github.io/pull/2578) - Added `matrixTransform()` method to `DOMPointReadOnly` in `web-sys`. [#&#8203;4962](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4962) - Added the `web` and `node` targets to the `--experimental-reset-state-function` flag. [#&#8203;4909](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4909) - Added `oncancel` event handler to `GlobalEventHandlers` (available on `HtmlElement`, `Document`, `Window`, etc.). [#&#8203;4542](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4542) - Added `CommandEvent` and `CommandEventInit` from the Invoker Commands API. [#&#8203;4552](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4552) - Added `AbstractRange`, `StaticRange`, and `StaticRangeInit` interfaces. [#&#8203;4221](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4221) - Updated WebCodecs API to Working Draft 2026-01-29 and MediaRecorder API to 2025-04-17. Added `rotation` and `flip` to `VideoDecoderConfig`. [#&#8203;4411](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4411) - Added support for unstable WebIDL to override stable attribute types, allowing corrected type signatures behind `web_sys_unstable_apis`. Applied to `MouseEvent` coordinate attributes (`clientX`, `clientY`, `screenX`, `screenY`, `offsetX`, `offsetY`, `pageX`, `pageY`) which now return `f64` instead of `i32` when unstable APIs are enabled, per the CSSOM View spec draft. [#&#8203;4935](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4935) - Added support for unstable WebIDL to override stable method return types. This enables User Timing Level 3 APIs where `Performance.mark()` and `Performance.measure()` return `PerformanceMark` and `PerformanceMeasure` respectively (instead of `undefined`) when `web_sys_unstable_apis` is enabled. Also added `PerformanceMarkOptions`, `PerformanceMeasureOptions`, and the `detail` attribute on marks/measures. [#&#8203;3734](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/3734) - Added non-standard `mode` option for `FileSystemFileHandle.createSyncAccessHandle()`. Also improved WebIDL generator to track stability at the signature level, allowing stable methods to have unstable overloads. [#&#8203;4928](https://redirect.github.com/wasm-bindgen/wasm-bindgen/issues/4928) - Updated WebGPU bindings to the February 2026 spec. Dictionary fields with union types now generate multiple type-safe setters (e.g. `set_resource_gpu_sampler()`, `set_resource_gpu_texture_view()`) alongside a deprecated fallback setter. Sequence arguments in unstable APIs now use typed slices (`&[T]`) instead of `&JsValue`. Fixed inner string enum types to use `JsString` in generic positions, added `BigInt` to builtin identifiers, and fixed dictionary field feature gates to not over-constrain getters with setter type requirements. [#&#8203;4955](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4955) - Improved dictionary union type expansion: stable fallback setters are no longer deprecated, and unstable builder methods now use the first typed variant instead of `&JsValue`. Dictionaries with required union fields now generate expanded constructors for each variant (e.g. `new()`, `new_with_gpu_texture_view()`), with duplicate-signature variants elided. [#&#8203;4966](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4966) ##### Changed - Increased externref stack size from 128 to 1024 slots to prevent "table index is out of bounds" errors in applications with deep call stacks or many concurrent async operations. [#&#8203;4951](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4951) - `Closure::new()`, `Closure::once()`, and related methods now require `UnwindSafe` bounds on closures when building with `panic=unwind`. New `_aborting` variants (`new_aborting()`, `once_aborting()`, etc.) are provided for closures that don't need panic catching and want to avoid the `UnwindSafe` requirement. [#&#8203;4893](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4893) - `global` does not use the unsafe-eval `new Function` trick anymore allowing to have CSP strict compliant packages with `wasm-bindgen`. [#&#8203;4910](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4910) - `eval` and `Function` constructors are now gated behind the `unsafe-eval` feature. [#&#8203;4914](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4914) ##### Fixed - Fixed incorrect JS export names when LLVM merges identical functions at `opt-level >= 2`. [#&#8203;4946](https://redirect.github.com/wasm-bindgen/wasm-bindgen/issues/4946) - Fixed incorrect `Closure` adapter deduplication when wasm-ld's Identical Code Folding merges invoke functions for different closure types into the same export. [#&#8203;4953](https://redirect.github.com/wasm-bindgen/wasm-bindgen/issues/4953) - Fixed `ReferenceError` when using Rust struct names that conflict with JS builtins (e.g., `Array`). The constructor now correctly uses the aliased `FinalizationRegistry` identifier. [#&#8203;4932](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4932) - Fixed `Element::scroll_top()`, `Element::scroll_left()`, and `HtmlElement::scroll_top()` to return `f64` instead of `i32` per the CSSOM View spec, behind `web_sys_unstable_apis`. The stable API is unchanged for backwards compatibility. [#&#8203;4525](https://redirect.github.com/wasm-bindgen/wasm-bindgen/issues/4525) - Added spec-compliant `i32` parameter types for `CanvasRenderingContext2d::get_image_data()` and `put_image_data()` (and `OffscreenCanvasRenderingContext2d` equivalents) behind `web_sys_unstable_apis`. Per the HTML spec, `getImageData` and `putImageData` use `long` (i32) for coordinates, not `double` (f64). The stable API is unchanged for backwards compatibility. [#&#8203;1920](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/1920) - Fixed incorrect `#[cfg(web_sys_unstable_apis)]` gating on stable method signatures that share a WebIDL operation with unstable overloads. For example, `Clipboard.read()` (0 args) was incorrectly gated as unstable because the unstable `read(options)` overload existed. The WebIDL code generator now uses an authoritative expansion model where stable and unstable signature sets are built independently and compared: identical signatures merge (no gate), stable-only signatures get `not(unstable)`, and unstable-only signatures get `unstable`. Also adds typed generics (`Promise<T>`, `Array<T>`, `Function<fn(...)>`, etc.) to all unstable API methods, and adds missing `PhotoCapabilities`, `PhotoSettings`, `MediaSettingsRange`, `Point2D`, `RedEyeReduction`, `FillLightMode`, and `MeteringMode` types from the W3C Image Capture spec. [#&#8203;4964](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4964) - Fixed `unfulfilled_lint_expectations` warnings when using `#[expect(...)]` attributes on functions annotated with `#[wasm_bindgen]`. The `#[expect]` attributes are now converted to `#[allow]` in generated code to prevent spurious warnings. [#&#8203;4409](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4409) ### [`v0.2.108`](https://redirect.github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02108) [Compare Source](https://redirect.github.com/wasm-bindgen/wasm-bindgen/compare/0.2.107...0.2.108) ##### Fixed - Fixed regression where `panic=unwind` builds for non-Wasm targets would trigger `UnwindSafe` assertions. [#&#8203;4903](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4903) ### [`v0.2.107`](https://redirect.github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02107) [Compare Source](https://redirect.github.com/wasm-bindgen/wasm-bindgen/compare/0.2.106...0.2.107) ##### Added - Support catching panics, and raising JS Exceptions for them, when building with panic=unwind on nightly, with the `std` feature. [#&#8203;4790](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4790) - Added support for passing `&[JsValue]` slices from Rust to JavaScript functions. [#&#8203;4872](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4872) - Added `private` attribute on exported types to allow generating exports and structs as implicit internal exported types for function arguments and returns, without exporting them on the public interface. [#&#8203;4788](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4788) - Added `iter_custom` and `iter_custom_future` for bench to do custom measurements. [#&#8203;4841](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4841) - Added [Window Management API](https://w3c.github.io/window-management/). [#&#8203;4843](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4843) ##### Changed - Changed WASM import namespace from `wbg` to `./{name}_bg.js` for `web` and `no-modules` targets, aligning with `bundler` and `experimental-nodejs-module` to enable cross-target WASM sharing. [#&#8203;4850](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4850) - Replace `WASM_BINDGEN_UNSTABLE_TEST_PROFRAW_OUT` and `WASM_BINDGEN_UNSTABLE_TEST_PROFRAW_PREFIX` with parsing `LLVM_PROFILE_FILE` analogous to Rust test coverage. [#&#8203;4367](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4367) - Typescript custom sections sorted alphabetically across codegen-units. [#&#8203;4738](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4738) - Optimized demangling performance by removing redundant string formatting [#&#8203;4867](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4867) - Changed WASM import namespace from `__wbindgen_placeholder__` to `./{name}_bg.js` for `node` targets, aligning with `bundler` and `experimental-nodejs-module` to enable cross-target WASM sharing. [#&#8203;4869](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4869) - Changed WASM import namespace from `__wbindgen_placeholder__` to `./{name}_bg.js` for `deno` and `module` targets, aligning with `node`, `bundler` and `experimental-nodejs-module` to enable cross-target WASM sharing. [#&#8203;4871](https://redirect.github.com/rustwasm/wasm-bindgen/pull/4871) - Consolidate JavaScript glue generation Move target-specific JS emission into a single finalize phase, reducing branching and making the generated output more consistent across targets. - Centralize JS output assembly in a single finalize phase (exports/imports/wasm loading). - Make `--target experimental-nodejs-module` emit one JS entrypoint (no separate `_bg.js`). - Ensure Node (CJS/ESM) and bundler entrypoints only expose public exports (no internal import shims). - Add `/* @&#8203;ts-self-types="./<name>.d.ts" */` to JS entrypoints for JSR/Deno resolution. - Refresh reference test fixtures. [#&#8203;4879](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4879) - Forward worker errors to test output in the test runner. [#&#8203;4855](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4855) ##### Fixed - Fix: Include doc comments in TypeScript definitions for classes [#&#8203;4858](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4858) - Interpreter: support try\_table blocks [#&#8203;4862](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4862) - Interpreter: Stop interpretting descriptor after `__wbindgen_describe_cast` [#&#8203;4862](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4898) ### [`v0.2.106`](https://redirect.github.com/wasm-bindgen/wasm-bindgen/blob/HEAD/CHANGELOG.md#02106) [Compare Source](https://redirect.github.com/wasm-bindgen/wasm-bindgen/compare/0.2.105...0.2.106) ##### Added - New MSRV policy, and bump of the MSRV fo 1.71. [#&#8203;4801](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull4801) - Added typed `this` support in the first argument in free function exports via a new `#[wasm_bindgen(this)]` attribute. [#&#8203;4757](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4757) - Added `reexport` attribute for imports to support re-exporting imported types, with optional renaming. [#&#8203;4759](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4759) - Added `js_namespace` attribute on exported types, mirroring the import semantics to enable arbitrarily nested exported interface objects. [#&#8203;4744](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4744) - Added 'container' attribute to `ScrollIntoViewOptions` [#&#8203;4806](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4806) - Updated and refactored output generation to use alphabetical ordering of declarations. [#&#8203;4813](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4813) - Added benchmark support to `wasm-bindgen-test`. [#&#8203;4812](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4812) [#&#8203;4823](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4823) ##### Fixed - Fixed node test harness getting stuck after tests completed. [#&#8203;4776](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4776) - Quote names containing colons in generated .d.ts. [#&#8203;4488](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4488) - Fixes TryFromJsValue for structs JsValue stack corruption on failure. [#&#8203;4786](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4786) - Fixed `wasm-bindgen-test-runner` outputting empty line when using the `--list` option. In particular, `cargo-nextest` now works correctly. [#&#8203;4803](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4803) - It now works to build with `-Cpanic=unwind`. [#&#8203;4796](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4796) [#&#8203;4783](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4783) [#&#8203;4782](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4782) - Fixed duplicate symbols caused by enabling v0 mangling. [#&#8203;4822](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4822) - Fixed a multithreaded wasm32+atomics race where `Atomics.waitAsync` promise callbacks could call `run` without waking first, causing sporadic panics. [#&#8203;4821](https://redirect.github.com/wasm-bindgen/wasm-bindgen/pull/4821) ##### Removed </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 10am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/json-strip-comments). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
main
10 days ago
chore(deps): update rust crates
renovate/rust-crates
10 days ago
chore(deps): update github-actions (#156) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [oxc-project/setup-rust](https://redirect.github.com/oxc-project/setup-rust) | action | patch | `v1.0.15` → `v1.0.16` | | [pnpm/action-setup](https://redirect.github.com/pnpm/action-setup) | action | minor | `v4.2.0` → `v4.4.0` | --- ### Release Notes <details> <summary>oxc-project/setup-rust (oxc-project/setup-rust)</summary> ### [`v1.0.16`](https://redirect.github.com/oxc-project/setup-rust/releases/tag/v1.0.16): v.1.0.16 [Compare Source](https://redirect.github.com/oxc-project/setup-rust/compare/v1.0.15...v1.0.16) </details> <details> <summary>pnpm/action-setup (pnpm/action-setup)</summary> ### [`v4.4.0`](https://redirect.github.com/pnpm/action-setup/releases/tag/v4.4.0) [Compare Source](https://redirect.github.com/pnpm/action-setup/compare/v4.3.0...v4.4.0) Updated the action to use Node.js 24. ### [`v4.3.0`](https://redirect.github.com/pnpm/action-setup/releases/tag/v4.3.0) [Compare Source](https://redirect.github.com/pnpm/action-setup/compare/v4.2.0...v4.3.0) ##### What's Changed - docs: fix the run\_install example in the Readme by [@&#8203;dreyks](https://redirect.github.com/dreyks) in [#&#8203;175](https://redirect.github.com/pnpm/action-setup/pull/175) - chore: remove unused `@types/node-fetch` dependency by [@&#8203;silverwind](https://redirect.github.com/silverwind) in [#&#8203;186](https://redirect.github.com/pnpm/action-setup/pull/186) - Clarify that package\_json\_file is relative to GITHUB\_WORKSPACE by [@&#8203;chris-martin](https://redirect.github.com/chris-martin) in [#&#8203;184](https://redirect.github.com/pnpm/action-setup/pull/184) - feat: store caching by [@&#8203;jrmajor](https://redirect.github.com/jrmajor) in [#&#8203;188](https://redirect.github.com/pnpm/action-setup/pull/188) - refactor: remove star imports by [@&#8203;KSXGitHub](https://redirect.github.com/KSXGitHub) in [#&#8203;196](https://redirect.github.com/pnpm/action-setup/pull/196) - fix(ci): exclude macos by [@&#8203;KSXGitHub](https://redirect.github.com/KSXGitHub) in [#&#8203;197](https://redirect.github.com/pnpm/action-setup/pull/197) ##### New Contributors - [@&#8203;dreyks](https://redirect.github.com/dreyks) made their first contribution in [#&#8203;175](https://redirect.github.com/pnpm/action-setup/pull/175) - [@&#8203;silverwind](https://redirect.github.com/silverwind) made their first contribution in [#&#8203;186](https://redirect.github.com/pnpm/action-setup/pull/186) - [@&#8203;chris-martin](https://redirect.github.com/chris-martin) made their first contribution in [#&#8203;184](https://redirect.github.com/pnpm/action-setup/pull/184) - [@&#8203;jrmajor](https://redirect.github.com/jrmajor) made their first contribution in [#&#8203;188](https://redirect.github.com/pnpm/action-setup/pull/188) - [@&#8203;Boosted-Bonobo](https://redirect.github.com/Boosted-Bonobo) made their first contribution in [#&#8203;199](https://redirect.github.com/pnpm/action-setup/pull/199) **Full Changelog**: <https://github.com/pnpm/action-setup/compare/v4.2.0...v4.3.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 10am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/json-strip-comments). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
main
10 days ago

Latest Branches

CodSpeed Performance Gauge
0%
chore: release v3.1.1#119
3 days ago
7c7d265
release-plz-2025-11-21T15-18-23Z
CodSpeed Performance Gauge
0%
chore(deps): update codspeedhq/action action to v4.12.1#158
3 days ago
5b54636
renovate/github-actions
CodSpeed Performance Gauge
+4%
10 days ago
979c320
renovate/rust-crates
© 2026 CodSpeed Technology
Home Terms Privacy Docs