Skip to content

chore(deps): update rust crate wasm-bindgen to v0.2.118#63

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/rust-wasm-bindgen-monorepo
Open

chore(deps): update rust crate wasm-bindgen to v0.2.118#63
renovate[bot] wants to merge 1 commit intomainfrom
renovate/rust-wasm-bindgen-monorepo

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate bot commented Mar 28, 2026

This PR contains the following updates:

Package Type Update Change
wasm-bindgen (source) dependencies patch 0.2.1140.2.118

Release Notes

wasm-bindgen/wasm-bindgen (wasm-bindgen)

v0.2.118

Compare Source

Added
  • Added Error::stack_trace_limit() and Error::set_stack_trace_limit() bindings
    to js-sys for the non-standard V8 Error.stackTraceLimit property.
    #​5082

  • Added support for multiple #[wasm_bindgen(start)] functions, which are
    chained together at initialization, as well as a new
    #[wasm_bindgen(start, private)] to register a start function without
    exporting it as a public export.
    #​5081

  • Reinitialization is no longer automatically applied when using panic=unwind
    and --experimental-reset-state-function, instead it is triggered by any
    use of the handler::schedule_reinit() function under panic=unwind,
    which is supported from within the on_abort handler for reinit workflows.
    Renamed handler::reinit() to handler::schedule_reinit() and removed
    the set_on_reinit() handler. The __instance_terminated address
    is now always a simple boolean (0 = live, 1 = terminated).
    #​5083

  • handler::schedule_reinit() now works under panic=abort builds. Previously
    it was a no-op; it now sets the JS-side reinit flag and the next export call
    transparently creates a fresh WebAssembly.Instance.
    #​5099

Changed
  • MSRV bump from 1.71 to 1.76 for the CLI, and 1.82 to 1.86 for the API
    #​5102
Fixed
  • ES module import statements are now hoisted to the top of generated JS
    files, placed right after the @ts-self-types directive. This ensures
    valid ES module output since import declarations must precede other
    statements.
    #​5103

  • Fixed two CLI issues affecting WASM modules built by rustc 1.94+. First,
    a panic (failed to find N in function table) caused by lld emitting element
    segment offsets as global.get $__table_base or extended const expressions
    instead of plain i32.const N for large function tables; the fix adds a
    const-expression evaluator in get_function_table_entry and guards against
    integer underflow in multi-segment tables. Second, the descriptor interpreter
    now routes all global reads/writes through a single globals HashMap seeded
    from the module's own globals, and mirrors the module's actual linear memory
    rather than a fixed 32KB buffer, so the stack pointer's real value is valid
    without any override. This fixes panics like failed to find 32752 in function table caused by GOT.func.internal.* globals being misidentified as the
    stack pointer.
    #​5076
    #​5080
    #​5093
    #​5095

v0.2.117

Compare Source

Fixed
  • Fixed a regression introduced in #​5026 where stable web-sys methods that
    accept a union type containing a [WbgGeneric] interface (e.g.
    ImageBitmapSource, which includes VideoFrame) incorrectly applied typed
    generics to all union expansions rather than only those whose argument type
    is itself [WbgGeneric]. In practice this caused Window::create_image_bitmap_with_*
    and the corresponding WorkerGlobalScope overloads to return
    Promise<ImageBitmap> instead of Promise<JsValue> for the stable
    (non-VideoFrame) call sites, breaking JsFuture::from(promise).await?.
    #​5064
    #​5073

  • Fixed handling logic for environment variable WASM_BINDGEN_TEST_ADDRESS in
    the test runner, when running tests in headless mode.
    #​5087

v0.2.116

Compare Source

Added
  • Added js_sys::Float16Array bindings, DataView float16 accessors using
    f32, and raw [u16] helper APIs for interoperability with binary16
    representations such as half::f16.
    #​5033
Changed
  • Updated to Walrus 0.26.1 for deterministic type section ordering.
    #​5069

  • The #[wasm_bindgen] macro now emits &mut (impl FnMut(...) + MaybeUnwindSafe)
    / &(impl Fn(...) + MaybeUnwindSafe) for raw &mut dyn FnMut / &dyn Fn
    import arguments instead of a hidden generic parameter and where-clause. The
    generated signature is cleaner and the MaybeUnwindSafe bound is visible
    directly in the argument position. The ABI and wire format are unchanged.
    When building with panic=unwind, closures that capture non-UnwindSafe
    values (e.g. &mut T, Cell<T>) must wrap them in AssertUnwindSafe before
    capture; on all other targets MaybeUnwindSafe is a no-op blanket impl.
    #​5056

v0.2.115

Compare Source

Added
  • console.debug/log/info/warn/error output from user-spawned Worker and
    SharedWorker instances is now forwarded to the CLI test runner during
    headless browser tests, just like output from the main thread. Works for
    blob URL workers, module workers, URL-based workers (importScripts), nested
    workers, and shared workers (including logs emitted before the first port
    connection). Non-cloneable arguments are serialized via String() rather
    than crashing the worker. The --nocapture flag is respected.
    #​5037

  • js_sys::Promise<T> now implements IntoFuture, enabling direct .await on
    any JS promise without a wrapper type. The wasm-bindgen-futures implementation
    has been moved into js-sys behind an optional futures feature, which is
    activated automatically when wasm-bindgen-futures is a dependency. All
    existing wasm_bindgen_futures::* import paths continue to work unchanged via
    re-exports. js_sys::futures is also available directly for users who want
    promise.await without depending on wasm-bindgen-futures.
    #​5049

  • Added --target emscripten support, generating a library_bindgen.js file
    for consumption by Emscripten at link time. Includes support for futures,
    JS closures, and TypeScript output. A new Emscripten-specific test runner is
    also included, along with CI integration.
    #​4443

  • Added VideoFrame, VideoColorSpace, and related WebCodecs dictionaries/enums to web-sys.
    #​5008

  • Added wasm_bindgen::handler module with set_on_abort and set_on_reinit
    hooks for panic=unwind builds. set_on_abort registers a callback invoked
    after the instance is terminated (hard abort, OOM, stack overflow).
    set_on_reinit registers a callback invoked after reinit() resets the
    WebAssembly instance via --experimental-reset-state-function. Handlers are
    stored as Wasm indirect-function-table indices so dispatch is safe even when
    linear memory is corrupt.

Changed
  • Replaced per-closure generic destructors with a single __wbindgen_destroy_closure
    export.
    #​5019

  • Refactored the headless browser test runner logging pipeline for dramatically improved
    performance (>400x faster on Chrome, >10x on Firefox, ~5x on Safari). Switched to
    incremental DOM scraping with textContent.slice(offset), append-only output semantics,
    unified log capture across all log levels on failure, and browser-specific invisible-div
    optimizations (display:none for Chrome/Firefox, visibility:hidden for Safari).
    #​4960

  • TTY-gated status/clear output in the test runner shell to avoid \r control-character
    artifacts in non-interactive (CI) environments.
    #​4960

  • Added bench_console_log_10mb benchmark alongside the existing 1MB benchmark for the
    headless test runner. The main branch cannot complete this benchmark at any volume.
    #​4960

  • Updated to Walrus 0.26
    #​5057

Fixed
  • Fixed argument order when calling multi-parameter functions in the
    wasm-bindgen interpreter by reversing the args collected from the stack.
    #​5047

  • Added support for per-operation [WbgGeneric] in WebIDL, restoring typed
    generic return types (e.g. Promise<ImageBitmap>) for createImageBitmap on
    Window and WorkerGlobalScope that were lost after the VideoFrame
    stabilization.
    #​5026

  • Fixed missing #[cfg(feature = "...")] gates on deprecated dictionary builder
    methods and getters for union-typed fields (e.g. {Open,Save,Directory}FilePickerOptions::start_in()),
    and fixed per-setter doc requirements to list each setter's own required features.
    #​5039

  • Fixed JsOption::new() to use undefined instead of null, to be compatible with Option::None and JS default parameters.
    #​5023

  • Fixed unsound unsafe transmutes in JsOption<T>::wrap, as_option, and into_option
    by replacing transmute_copy with unchecked_into(). Also tightened the JsGeneric
    trait bound and JsOption<T> impl block to require T: JsGeneric (which implies JsCast),
    preventing use with arbitrary non-JS types.
    #​5030

  • Fixed headless test runner emitting \r carriage-return sequences in non-TTY environments,
    which polluted captured logs in CI and complicated output-matching tests.
    #​4960

  • Fixed headless test runner printing incomplete and out-of-order log output on test failures
    by merging all five log levels into a single unified output div.
    #​4960

  • Fixed large test outputs (10MB+) causing oversized WebDriver responses that were either
    extremely slow or crashed completely, by switching to incremental streaming output collection.
    #​4960

  • Fixed a duplciate wasm export in node ESM atomics, when compiled in debug mode
    #​5028

  • Fixed a type inference regression (E0283: type annotations needed) introduced
    in v0.2.109 where the stable FromIterator and Extend impls on js_sys::Array
    were changed from A: AsRef<JsValue> to A: AsRef<T>. Because #[wasm_bindgen]
    generates multiple AsRef impls per type, the compiler could not uniquely resolve
    T, breaking code like Array::from_iter([my_wasm_value]) without explicit
    annotations. The stable impls are restored to A: AsRef<JsValue> (returning
    Array<JsValue>); the generic A: AsRef<T> forms remain available under
    js_sys_unstable_apis.
    #​5052

  • Fixed skip_typescript not being respected when using reexport, causing
    TypeScript definitions to be incorrectly emitted for re-exported items marked
    with #[wasm_bindgen(skip_typescript)].
    #​5051

Removed

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot changed the title chore(deps): update rust crate wasm-bindgen to v0.2.115 chore(deps): update rust crate wasm-bindgen to v0.2.116 Mar 31, 2026
@renovate renovate bot force-pushed the renovate/rust-wasm-bindgen-monorepo branch from 5bbaecc to 3d07049 Compare March 31, 2026 01:04
@renovate renovate bot changed the title chore(deps): update rust crate wasm-bindgen to v0.2.116 chore(deps): update rust crate wasm-bindgen to v0.2.117 Apr 1, 2026
@renovate renovate bot force-pushed the renovate/rust-wasm-bindgen-monorepo branch from 3d07049 to b4d6fc1 Compare April 1, 2026 02:03
@renovate renovate bot force-pushed the renovate/rust-wasm-bindgen-monorepo branch from b4d6fc1 to e06acad Compare April 10, 2026 20:59
@renovate renovate bot changed the title chore(deps): update rust crate wasm-bindgen to v0.2.117 chore(deps): update rust crate wasm-bindgen to v0.2.118 Apr 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants