Added
-
Added the WebGL extension interface
EXT_polygon_offset_clamp.
#5336 -
Added the
texture-compression-unalignedvariant toGpuFeatureName,
matching the WebGPU specification.
#5335 -
Added an Emscripten Target page to the guide covering the
wasm32-unknown-emscriptenbuild flow, including the experimental
#[wasm_bindgen(experimental_tokio)]attribute for driving an exported
async function on a Tokio event-loop runtime there, gated behind
--cfg wasm_bindgen_unstable_tokio.
#5334 -
Added experimental JSPI support on the
wasm32-unknown-emscriptentarget,
gated behind--cfg wasm_bindgen_unstable_jspi:#[wasm_bindgen(jspi)],
#[wasm_bindgen(suspending)],jspi_block_on_promiseand the JSPI context
inheritance ofspawn_localwork when linking with-sJSPIand
-sJSPI_HOOKS(or-sREENTRANT_JSPI). The fibers belong to Emscripten's
JSPI runtime, which wasm-bindgen integrates with through its lifecycle hook
exports instead of its own shadow stack management.jspicombines with
experimental_tokiointo a parked runtime: the export is a promising
activation running its future withblock_onon a Tokio runtime whose
waits are JSPI suspensions, so invocations interleave at every wait.
#5333
Changed
- Library MSRV bumped from 1.77 to 1.81, per the 2-year MSRV policy.
#5257
Fixed
-
The
wasm_bindgen,wasm_bindgen_futuresandjs_syscrate-path options
on a#[wasm_bindgen] implblock now apply to its methods; previously they
were ignored there.
#5333 -
Struct field getters no longer trigger the
unsafe_op_in_unsafe_fnlint
(warn by default in edition 2024) when the field name comes from a
macro_rules!body, for example throughpaste!.
#4465 -
The headless test runner now keeps the path of a remote WebDriver URL set
with variables likeCHROMEDRIVER_REMOTE. A driver at
http://host/wd/hub/now getshttp://host/wd/hub/sessioninstead of
http://host/session.
#2841 -
The bundler entry module no longer re-exports
#[wasm_bindgen(private)]
items from*_bg.js, which does not export them.
#5343 -
web-sys: WebGL extension interfaces declared withLegacyNoInterfaceObject
(OVR_multiview2,WEBGL_multi_draw,EXT_polygon_offset_clamp) now
generateis_type_of = |_| falselike theirNoInterfaceObjectcounterparts.
#5336 -
The blanket
From<E: Error> for JsErrorimpl is now available without the
stdfeature, usingcore::error::Error, so?works inno_stdcrates.
#5029 -
Emscripten output no longer emits the instance reinit machinery, which
Emscripten's JS compiler rejected (unescaped multi-line__postset, and
var reinit_scheduled = let ...):schedule_reinit()is a no-op there since
Emscripten owns instantiation. The closure finalization__postsetis now
emitted as an escaped string literal.
#5332 -
Updated
walrusto 0.27.2, fixing--keep-debugoutput thatwasm-opt -g
could not process:.debug_locentries for removed code were unparseable
(debug_loc error), andDW_AT_high_pcwas re-encoded as variable-width
udata(compile unit size was incorrect).
#5328 -
The headless test runner no longer hangs on a WebDriver that never answers, or on
a browser holding the driver's stdio pipes open.
#5338 -
The CLI's schema version mismatch error now names the input Wasm file and
the path of the runningwasm-bindgenbinary.
#4430 -
#[wasm_bindgen(inspectable)]on a tuple struct no longer generates invalid
JavaScript. The generatedtoJSONnow reads the0,1, ... fields as
this["0"]instead ofthis.0.
#2573