fix(deps): update rust-wasm-bindgen monorepo - #1050
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/rust-wasm-bindgen-monorepo
branch
6 times, most recently
from
September 3, 2026 19:25
57c3246 to
ddc49ad
Compare
renovate
Bot
force-pushed
the
renovate/rust-wasm-bindgen-monorepo
branch
from
September 5, 2026 02:18
ddc49ad to
64ec886
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
=0.2.126→=0.2.128=0.4.76→=0.4.780.3.76→0.3.78Release Notes
wasm-bindgen/wasm-bindgen (wasm-bindgen)
v0.2.128Compare Source
Added
Added
OffscreenCanvasoverloads for the WebGLtexImage2D,texSubImage2D,texImage3DandtexSubImage3Dfunctions, matching theTexImageSourcetypedef in the WebGL specification.
#5312
Added
--split-debug-infoto the CLI. This option extracts the DWARF debuginfo to a separate
*_bg.debug.wasmfile. Use--debug-info-urlto setthe recorded URL for the debug info. #5279
Added
#[wasm_bindgen(experimental_generic_mono)]for imported functions,which binds a generic import once per monomorphisation instead of erasing
its type parameters to
JsValue. It can be applied to an individual importor to a whole
extern "C"block, which every generic function in the blockthen inherits. Each instantiation gets its own descriptor, so arguments and
return values are marshalled at their concrete types (a
u32crosses as anumber, a
Stringas a string) rather than being boxed. Trait bounds,wherepredicates (including higher-ranked ones), associated-typeprojections, lifetime parameters, argument-position
impl Trait, rawcallbacks with owned generic inputs and returns,
async,catch, andslice_to_arrayare all supported; seethe guide
for the supported surface and the shapes that are rejected. The attribute
is experimental and may change as it stabilizes.
#5230
#5272
#5314
Added the experimental, sealed
JsStringLikemarker trait — implemented forString/&str(andjs_sys::JsString/&js_sys::JsStringinjs-sys) —as a bound for
experimental_generic_monoimports that accept any stringshape at its native wire format.
#[wasm_bindgen(experimental_generic_mono)]now supports class-level genericparameters: an imported type that is itself generic (
type Holder<T>),used as a method receiver (
this: &Holder<T>), or as the return type of aconstructor or self-returning static method (
fn new<T>(value: T) -> Holder<T>). See Class-level genericsin the guide.
#5290
A generic imported type used as a method receiver or a constructor's return
type may now carry concrete generic arguments (
this: &Holder<u32>,this: &Holder<u32, T>). The arguments are re-emitted as written, so thegenerated method hangs off
impl Holder<u32>rather than the class's ownparameter defaults.
#5290
Added experimental JSPI (JS Promise Integration) support: using it emits a
compiler warning noting the experimental status.
Supports
#[wasm_bindgen(jspi)]on exports (sync orasync), within whicha
#[wasm_bindgen(suspending)]import call can suspend to the JS eventloop until its
Promisesettles.js_sys::futures::jspi_block_on_promisealso suspends on any
Promiseinside a synchronous function, whilespawn_localis context-aware: tasks spawned from within a JSPI contextsupport synchronous JSPI suspensions throughout their call trees.
Compatible with
catch(rejections asErr),async, andpanic=unwind.#5193
Added a
--ts-typed-array-buffersCLI flag to declare owned typed-arrayreturn values (e.g.
Vec<u8>) asUint8Array<ArrayBuffer>in generatedTypeScript, since they are always copied into a fresh, non-shared
ArrayBuffer. Requires TypeScript 5.7+.#5263
Changed
Export shim symbols are now mangled with a per-crate hash, so identically
named exports from different crates (or two versions of one crate) no
longer fail the link with duplicate-symbol errors; the CLI restores the
canonical names in the final module. Same-named
#[wasm_bindgen(private)]structs/enums now coexist (numbered
Name,Name2, ... internally in thegenerated bindings), while genuinely conflicting public exports are
reported as a wasm-bindgen error instead of a wasm-ld failure. Requires
matching
wasm-bindgenand CLI versions (schema bump).#2247
Setting
js_namespaceon both anextern "C"block and an item inside itis now a hard error. Nested paths must be written in a single attribute,
e.g.
js_namespace = ["a", "b"]. The previous behavior silently droppedthe block-level namespace.
#4324
Changed WebGPU
setImmediatesAPIs to take immutable u8 slice.#5289
Changed Web Bluetooth
writeValue/writeValueWithResponse/writeValueWithoutResponseand WebUSBcontrolTransferOut/transferOut/
isochronousTransferOutAPIs to take immutable u8 slices.#5309
Emscripten glue no longer reads
wasmExports['name']inline inside innerfunctions. It now references the asmjs-mangled identifiers emcc's own
top-level
assignWasmExportsreceiving code binds for every wasm export(e.g.
___wbindgen_malloc,___wbindgen_externrefs), which are thecanonical DCE-graph pairs: wasm-metadce keeps exactly the exports the
included glue uses (previously internal exports and the externref table
could be stripped or left unrenamed by the import/export minifier at
-O2,breaking at runtime). Hoisted classes are now emitted as
=-prefixedstring value snippets so jsifier declares them as
export var Class = class Class {...}instead of anexport classdeclaration, which crashes emcc's acorn-optimizer under
-sMODULARIZE=instance.Fixed
C-style
#[wasm_bindgen]enums inVec<T>/Box<[T]>now generateTypeScript and JSDoc as
EnumName[]instead ofany[].#5321
Fixed
js-sysfailing to compile withno_stdand thefutures-core-03-streamfeature enabled, since the feature unconditionallypulled in
futures-util/std. Thestdfeature offutures-utilis now onlyenabled by the
js-sysstdfeature.#5322
The thread-bootstrap transform is now skipped in Emscripten mode, where the
Emscripten runtime owns pthread startup and TLS. It previously ran on any
module with shared memory and aborted the build (
failed to find __wasm_init_tls), since Emscripten's linker had already consumed thesynthetic symbols it looks for.
#5315
Fixed conflicting deprecation messages on
web-sysdictionary fields thatare themselves deprecated: the deprecated builder-style method no longer
points at an equally-deprecated setter, and the WebAuthn fields removed from
the specification (such as
PublicKeyCredentialRpEntity'sicon) now statewhy they are deprecated.
#5302
#[wasm_bindgen]on a struct now reports an actionable error when the pathto the
wasm_bindgencrate cannot be resolved (e.g. whenwasm-bindgenisonly a transitive dependency through
web-sys), instead of a confusingrecursion limit error.
#5295
Fixed
js_namespaceexports missing from the bundler target's entry modulere-export list, making namespaces unreachable when importing the package.
#5267
The CLI now reports an actionable error when the
__wasm_bindgen_unstablecustom section is missing from a module that still contains wasm-bindgen
shims (e.g. stripped by
llvm-objcopy --strip-all, which removes all customsections since LLVM 23), instead of the confusing
import of `X` doesn't have an adapter listed.#5268
The generated
&Thandle conversions (IntoWasmAbi/OptionIntoWasmAbi) foran imported type with lifetime parameters (
type Holder<'a, T>) no longerreuse
'afor the reference itself. Previously the impl header declared onlya fresh
'aplus the type's type parameters, so a type whose lifetime wasnot literally named
'afailed withE0261against generated code, and onethat was named
'ahad its lifetime forced to unify with the borrow of&self— surfacing asE0521whenever a generic method also had to resolvethrough the same impl.
#5290
An inline lifetime bound on a generic import (
fn f<'a: 'b, 'b, T>(..)) is nolonger dropped from the generated wrapper. Previously the bound was lost while
the generated shim still declared it, so calling the import failed with
"lifetime may not live long enough" reported against generated code.
#5290
A type-parameter default on a
#[wasm_bindgen(experimental_generic_mono)]import is nolonger silently ignored. It has no meaning there (every instantiation gets its
own shim, so there is no single one to default) and rustc's own
invalid_type_param_defaultlint cannot see it, since nothing of the originalsignature survives expansion; it is now rejected with the same
defaults for generic parameters are not allowed herediagnostic rustc gives.Defaults on the type-erasure generic path are unaffected, where they remain
meaningful.
#5290
Fix
js-syswasm64 build withatomicsfeature.#5274
Declare
initSyncin the generated TypeScript definitions for--target no-modules, matching thewasm_bindgen.initSyncfunction thatthe JS output already exposes.
#5284
Removed the last panicking code paths from
externreftable management:RefCell::borrow_mut()embedded panic location data (including the sourcepath string) in
.rodataof optimized builds, which not evenwasm-optcould remove.
#5292
Fix
--no-modules-globalbeing ignored: the custom global name is now usedfor the generated JS binding and TypeScript declarations, and the name is
validated as a JS identifier.
#5286
v0.2.127Compare Source
Added
Navigation API
to
web-sys#5247Added
riscv64gc-unknown-linux-gnurelease artifacts.#5265
Added
JsNullable<T>, modeling WebIDL nullable types (T | null). Bothnullandundefinedare treated as absent, per WebIDL's ECMAScriptconversion rules; the canonical empty value produced from Rust is
null.web-sysnow usesJsNullable<T>instead ofJsOption<T>for nullabletypes nested inside generics (e.g.
Promise<GpuError?>fromGPUDevice.popErrorScope()), fixing spec-definednullresolutions beingtreated as present values under
JsOption<T>'s strict undefined-onlysemantics.
JsNullable<T>participates in the same upcast lattice asJsOption<T>(including contravariant closure argument casts), andadditionally upcasts from
Nulland fromJsOption<T>itself. Importedextern types now also upcast into
JsOption<JsValue>andJsNullable<JsValue>, so catch-all nullable closures can be used where atyped callback is expected.
#5234
Added experimental JSPI (JS Promise Integration) support: using it emits a
compiler warning noting the experimental status.
Supports
#[wasm_bindgen(jspi)]on exports (sync orasync), within whicha
#[wasm_bindgen(suspending)]import call can suspend to the JS eventloop until its
Promisesettles.js_sys::futures::jspi_block_on_promisealso suspends on any
Promiseinside a synchronous function, whilespawn_localis context-aware: tasks spawned from within a JSPI contextsupport synchronous JSPI suspensions throughout their call trees.
Compatible with
catch(rejections asErr),async, andpanic=unwind.#5193
Changed
Emscripten output now marks public exports (free functions, classes, enums,
and namespace roots) with the
__export: trueand__force: truesymbolattributes on their
addToLibraryentries, instead of mutatingEXPORTED_FUNCTIONSand pushing toextraLibraryFuncsat library-load time.The
$initBindgeninit closure is kept via__force: true, and privatesymbols (including namespace leaves) carry neither attribute — they remain
reachable through
__deps. Requires an emscripten with__export/__forcesymbol-attribute support.
Updated WebGPU bindings to the August 2026 spec, including the new
GPUCommandEncoder::copy_buffer_to_bufferoverloads andsetImmediates.#5246
Unstable API overload names now elide name tokens shared by every overload
variant:
LockManager::request_with_callbackis nowrequest, andrequest_with_options_and_callbackis nowrequest_with_options.#5246
Fixed
The
nameproperty of the JS error thrown forpanic=unwindis now set froma string literal instead of
PanicError.name, so it survives minification.#5260
Fixed Emscripten builds using pthreads failing to link.
#5254
__wbg_loadin web targets now throws a clear error including the HTTPstatus and URL when given a non-ok fetch
Response, instead of surfacing amisleading MIME-type or Wasm-magic-number error.
#5256
Restored
__stack_pointerwhen an exception unwinds out of a wasm export,preventing repeated
panic = "unwind"calls from leaking shadow-stack framesuntil the shadow stack is exhausted and calls trap. Node reports
memory access out of bounds; poisoned instances can instead reportModule terminated.#5244
slice_to_arrayon a&mutslice (which silently discarded JS's writes) oron a slice with a generic element type is now a compile error, and strings
and arrays received by JS (e.g. a
Vec<String>return value) no longer makea redundant copy of the freshly built value.
#5261
Fixed
asyncimports with non-JS-handle resolved types (e.g.async fn f() -> u32;) silently producing garbage since 0.2.109: thedescriptor named the resolved type instead of the
Promisehandle thatactually crosses the ABI.
#5249
Fixed
catchimports returningi64/u64throwing aTypeError(andpanicking in
__wbindgen_exn_store) when the JS import throws, since thehandleErrorcatch path returnedundefinedwhich cannot be converted toa Wasm
i64.#5238
js_namespaceis now part of an imported function's and imported static'sgenerated shim name. Two imports with identical Rust signatures that differed
only in their
js_namespacehashed to the same__wbg_<name>_<hash>symbol, so they were treated as one binding and one of the two call sites
silently invoked the wrong JS value.
#5250
Macro hygiene fixes -
slice_to_arraynow works in#![no_std]crates.Generated code no longer names
coreorstdunqualified.#5251
Fixed length prefixes in descriptor strings to count
chars rather thanUTF-8 bytes, so non-ASCII names in
js_name/typescript_typeno longerpanic the CLI or mis-bind the generated bindings.
#5248
Fixed threaded Wasm memory layout to reserve wasm-bindgen's internal thread
page after the module's original initial memory instead of at
__heap_base,avoiding overlap with allocators that resolve
__heap_base/__heap_endatlink time and treat that range as preexisting heap space.
#5225
Emscripten output now reaches wasm exports through emscripten's
wasmExportsobject using bracket (string-literal) access (
wasmExports['__wbindgen_start'])instead of a local
wasmalias with dot access.wasmExports['name']is theform emcc's DCE graph roots and its import/export minifier renames in the JS
and the wasm together, so the glue now survives and stays consistent under
-O3/-Os(previously the export names were minified without updating the JScall sites, e.g.
__wbindgen_start is not defined).The emscripten detection marker static is no longer leaked as public API.
#5220
#5222
Configuration
📅 Schedule: (UTC)
🚦 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 if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.