Update rust-wasm-bindgen monorepo - #14
Open
ki7dk wants to merge 1 commit into
Open
Conversation
Member
Author
|
ki7dk
force-pushed
the
renovate/rust-wasm-bindgen-monorepo
branch
from
August 13, 2026 04:09
019cec5 to
13e173f
Compare
ki7dk
force-pushed
the
renovate/rust-wasm-bindgen-monorepo
branch
from
August 13, 2026 20:12
13e173f to
a56e9fc
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.3.103→0.3.1040.2.126→0.2.1270.4.76→0.4.77Release Notes
wasm-bindgen/wasm-bindgen (wasm-bindgen)
v0.2.127Compare Source
Added
Navigation API
to
web-sys#5247Added
#[wasm_bindgen(generic_per_mono)]for imported functions, which binds ageneric import once per monomorphisation instead of erasing its type
parameters to
JsValue. It can be applied to an individual import or to awhole
extern "C"block, which every function in the block then inherits.Each instantiation gets its own descriptor, so
arguments and return values are marshalled at their concrete types (a
u32crosses as a number, a
Stringas a string) rather than being boxed. Traitbounds,
wherepredicates (including higher-ranked ones), associated-typeprojections, lifetime parameters,
async,catch, andslice_to_arrayareall supported; see the guide
for the supported surface and the shapes that are rejected.
Added
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: (in timezone America/Los_Angeles)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, 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 has been generated by Mend Renovate CLI.