chore(deps): update cargo (patch) #5
Loading…
Reference in a new issue
No description provided.
Delete branch "renovate/patch-cargo"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
1.0.80→1.0.1042.0.14→2.0.172.0.14→2.0.170.7.0→0.7.31.0.83→1.0.1061.0.97→1.0.1060.4.35→0.4.454.5.2→4.5.610.15.8→0.15.110.3.12→0.3.131.0.28→1.0.350.3.30→0.3.330.2.12→0.2.170.4.22→0.4.330.17.8→0.17.110.2.2→0.2.30.4.21→0.4.332.16.4→2.16.172.16.3→2.16.130.9.1→0.9.50.10.64→0.10.813.1.0→3.1.40.8.5→0.8.70.11.24→0.11.270.11.24→0.11.271.0.217→1.0.2291.0.137→1.0.1511.0.137→1.0.1510.9.32→0.9.340.10.8→0.10.91.0.63→1.0.690.1.41→0.1.440.3.18→0.3.230.1.2→0.1.70.2.92→0.2.1270.4.42→0.4.770.3.42→0.3.770.3.69→0.3.104Release Notes
assert-rs/assert_cmd (assert_cmd)
v2.0.17Compare Source
Features
cargo::cargo_bin!which will work with Cargo'sbuild-dirv2.0.16Compare Source
Features
Commandto mirror those added to the standard libraryv2.0.15Compare Source
Compatibility
rust-lang/cc-rs (cc)
v1.0.106Compare Source
Other
v1.0.105Compare Source
Other
v1.0.104Compare Source
Other
v1.0.103Compare Source
Other
v1.0.102Compare Source
Other
v1.0.101Compare Source
Other
Build::getenvinstead ofenv::var*in anywhere that makes sense (#1103)v1.0.100Compare Source
Other
OsStrinstead ofstrfor flags (#1100)dep:syntax to avoid implicit features. (#1099)v1.0.99Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.98...1.0.99
v1.0.98Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.97...1.0.98
v1.0.97Compare Source
What's Changed
regenerate-target-info.ymlby @NobodyXu in #1060New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.96...1.0.97
v1.0.96Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.95...1.0.96
v1.0.95Compare Source
What's Changed
try_acquireby @NobodyXu in #1037Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.94...1.0.95
v1.0.94Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.93...1.0.94
v1.0.93Compare Source
What's Changed
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.92...1.0.93
v1.0.92Compare Source
What's Changed
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.91...1.0.92
v1.0.91Compare Source
What's Changed
$compiler -vby @NobodyXu in #1000New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.90...1.0.91
v1.0.90Compare Source
What's Changed
--targetwhen targeting Android on non-Windows platforms by @dpaoliello in #991New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.89...1.0.90
v1.0.89Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.88...1.0.89
v1.0.88Compare Source
What's Changed
/System/iOSSupportto header/library search paths on Mac Catalyst by @madsmtm in #961New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.87...1.0.88
v1.0.87Compare Source
What's Changed
printlns by @amaanq in #960New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.86...1.0.87
v1.0.86Compare Source
What's Changed
--jobserver-authwins by @NobodyXu in #949New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.85...1.0.86
v1.0.85Compare Source
What's Changed
--for files intry_expand(like in #514) by @pashokitsme in #911cargo_warningsconfig to control the use of the cargo warning instruction by @scootermon in #917New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.84...1.0.85
v1.0.84Compare Source
Changes
This isn't a complete list, but I've tried to cover everything that is either significant, or could cause problems for people using
ccin configurations not covered by our tests.feature = parallel), which should be more efficient. (#889).armasm[64].exe(#867, #868, #869, #857)is_flag_supported(#839, #886)*-apple-tvosand*-apple-tvos-simtargets (#881, #704)rustc --print deployment-targetwhen available (#848, #872)remove_flagfunction to remove flags which have been added withadd_flag(#885)-m32/-mx32/-m64flags are passed (#709)-isysrootis passed on Apple targets (#703) and how MSVC version is detected on Windows (#696).As always, please file bugs if you hit issues.
ccis used in many more ways than we can possibly test (especially when cross-compiling or using tier-3 platforms).Thanks.
New Contributors
Full Changelog: https://github.com/rust-lang/cc-rs/compare/1.0.83...1.0.84
chronotope/chrono (chrono)
v0.4.45: 0.4.45Compare Source
What's Changed
v0.4.44: 0.4.44Compare Source
What's Changed
Cargo.tomlcontents by @coryan in #1772v0.4.43: 0.4.43Compare Source
What's Changed
NaiveDate::abs_diffby @Kinrany in #1752v0.4.42: 0.4.42Compare Source
What's Changed
wasm32-linuxsupport by @arjunr2 in #1707tzdataparsing by @ldm0 in #1679?Sizedbound to related methods ofDelayedFormat::write_toby @Huliiiiii in #1721from_timestamp_secsmethod toDateTimeby @jasonaowen in #1719v0.4.41Compare Source
What's Changed
subsec_microsandsubsec_millismethods toTimeDeltaby @ggoetz in #1668NaiveDateTime::UNIX_EPOCHby @robertbastian in #1670as_seconds_f32andas_seconds_f64forTimeDeltaby @ggoetz in #1671num_days_in_monthmethod toDateliketrait by @aslilac in #1673WeekdaySet, a collection ofWeekdaythat isCopyby @Kinrany in #1676v0.4.40: 0.4.40Compare Source
What's Changed
write_toforDelayedFormatby @tugtugtug in #1654v0.4.39: 0.4.39Compare Source
What's Changed
from_timestamp_nanos()by @sgoll in #1591NaiveWeekmethods by @bragov4ik in #1600PartialEq,Eq,Hash,CopyandCloneonNaiveWeekby @DSeeLP in #1618#[inline]tonum_daysby @CommanderStorm in #1627v0.4.38Compare Source
This release bring a ca. 20% improvement to the performance of the formatting code, and a convenient
days_sincemethod for theWeekdaytype.Chrono 0.4.38 also removes the long deprecated
rustc-serializefeature. Support forrustc-serializewill be soft-destabilized in the next Rust edition. Removing the feature will not break existing users of the feature; Cargo will just not update dependents that rely on it to newer versions of chrono.In chrono 0.4.36 we made an accidental breaking change by switching to
derive(Copy)forDateTimeinstead of a manual implementation. It is reverted in this release.Removals
rustc-serializefeature (#1548, thanks @workingjubilee)Additions
Weekday::days_since(#1249, based on #216 by @clarfonthey)TimeDelta::checked_mulandTimeDelta::checked_div(#1565, thanks @Zomtir)Fixes
CopyforDateTimeif offset isCopy(#1573)Internal
test_encodable_jsonandtest_decodable_jsonfunctions (#1550)cargo hack check(#1553)Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
v0.4.37Compare Source
Version 0.4.36 introduced an unexpected breaking change and was yanked. In it
LocalResultwas renamed toMappedLocalTimeto avoid the impression that it is aResulttype were some of the results are errors. For backwards compatibility a type alias with the old name was added.As it turns out there is one case where a type alias behaves differently from the regular enum: you can't import enum variants from a type alias with
use chrono::LocalResult::*. With 0.4.37 we make the new nameMappedLocalTimethe alias, but keep using it in function signatures and the documentation as much as possible.See also the release notes of chrono 0.4.36 from yesterday for the yanked release.
v0.4.36Compare Source
This release un-deprecates the methods on
TimeDeltathat were deprecated with the 0.4.35 release because of the churn they are causing for the ecosystem.New is the
DateTime::with_time()method. As an example of when it is useful:Additions
DateTime::with_time()(#1510)Deprecations
TimeDeltadeprecations (#1543)TimeStamp::timestamp_subsec_nanos, which was missed in the 0.4.35 release (#1486)Documentation
Internal
CopyandSendimpls (#1492, thanks @erickt)NaiveDateunit tests (#1500, thanks @Zomtir)LocalResulttoTzResolution, add alias (#1501)NaiveDate::from_yof(#1518)DateTime::date_naiveandNaiveDate::diff_months(#1530)unwrapin UnixLocaltype (#1533)Thanks to all contributors on behalf of the chrono team, @djc and @pitdicker!
console-rs/console (console)
v0.15.11Compare Source
What's Changed
v0.15.10Compare Source
What's Changed
v0.15.9Compare Source
What's Changed
rust-lang/flate2-rs (flate2)
v1.0.35: - security update to zlib-rsCompare Source
What's Changed
0.4.0by @folkertdev in #439New Contributors
Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.34...1.0.35
v1.0.34Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.33...1.0.34
v1.0.33: - fix minimal manifest versionsCompare Source
What's Changed
New Contributors
Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.32...1.0.33
v1.0.32: - turn panic into errorCompare Source
What's Changed
Fix
Other
New Contributors
Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.31...1.0.32
v1.0.31Compare Source
What's Changed
New Contributors
Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.30...1.0.31
v1.0.30: - docs.rs pages should build againCompare Source
What's Changed
--all-featureswasn't tested and didn't work with arrival ofzlib-rsby @Byron in #405New Contributors
Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.29...1.0.30
v1.0.29: - with newzlib-rsfeature (~zlib-ngin Rust)Compare Source
With the new
zlib-rsfeature, a new backend is enabled that brings in a SIMD-accelerated Rust implementation.What's Changed
StreamWrapper::inneras a raw pointer by @icmccorm in #394zlib-rssupport via thelibz-rs-sysC api forzlib-rsby @folkertdev in #400New Contributors
Full Changelog: https://github.com/rust-lang/flate2-rs/compare/1.0.28...1.0.29
BurntSushi/ripgrep (ignore)
v0.4.33Compare Source
v0.4.32Compare Source
v0.4.31Compare Source
v0.4.30Compare Source
v0.4.29Compare Source
v0.4.28Compare Source
v0.4.27Compare Source
v0.4.26Compare Source
v0.4.25Compare Source
v0.4.24Compare Source
v0.4.23Compare Source
assert-rs/predicates-rs (predicates)
v3.1.4Compare Source
BoxPredicate::find_caseuse the innerfind_caseimplementationv3.1.3Compare Source
Features
boxedfunction is now available for predicates with anItemtype thatis not
Sized.v3.1.2Compare Source
rust-random/rand (rand)
v0.8.7Compare Source
What's Changed
Full Changelog: https://github.com/rust-random/rand/compare/0.8.6...0.8.7
v0.8.6Compare Source
What's Changed
This release back-ports a fix from v0.10. See also #1763.
Changes
log(#1772)simd_supportfeature.New Contributors
Full Changelog: https://github.com/rust-random/rand/compare/0.8.5...0.8.6
serde-rs/serde (serde)
v1.0.229Compare Source
v1.0.228Compare Source
RUSTDOCFLAGS='--cfg=docsrs'set for the whole dependency graph (#2995)v1.0.227Compare Source
v1.0.226Compare Source
v1.0.225Compare Source
v1.0.224Compare Source
v1.0.223Compare Source
v1.0.222Compare Source
serialize_withattribute produce code that works if respanned to 2024 edition (#2950, thanks @aytey)v1.0.221Compare Source
serde_if_integer128!macro (#2975)v1.0.220Compare Source
v1.0.219Compare Source
absolute_pathsClippy restriction being triggered inside macro-generated code (#2906, thanks @davidzeng0)v1.0.218Compare Source
wasm-bindgen/wasm-bindgen (wasm-bindgen)
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
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
v0.2.126Compare Source
Changed
enums, plus their finalization registries and string-enum tables) out of the
$initBindgeninit closure into its own top-leveladdToLibrarysymbol andself-registers it into
EXPORTED_FUNCTIONS. emscripten then emits the cleanAPI (
add,Counter, ...) as named ESM exports under-sMODULARIZE=instanceand as
Module.<name>properties (via each symbol's__postset) in factorymode, with no extra sidecar files. Namespaced exports are reached through
their namespace root (e.g.
app), assembled in the root symbol's__postset.User module/inline-js imports are now wired as
addToLibraryshims (they werepreviously dropped, since emcc resolves imports only against
env), and theirESM-imported bindings are
__wbg_-prefixed to avoid colliding with emccruntime names such as
Module/HEAP8.#5210
Fixed
The descriptor interpreter now follows emscripten
invoke_*trampolines.emscripten's exception/longjmp lowering rewrites direct calls into indirect
calls through the function table wrapped in imported
invoke_*(fnptr, ..args)helpers, including the describe helpers a descriptor function must reach. The
interpreter resolves
fnptragainst the reconstructed function table, forwardsthe trailing arguments, and evaluates the surrounding "did it throw?" control
flow (
if/else,loop,br_table), so descriptors are interpretedcorrectly on emscripten builds with unwinding/longjmp enabled.
#5215
Relaxed alignment requirement for 8-byte types.
#5204
Fixed compilation with
(feature = "std", panic = "unwind", target_feature = "atomics")and prevented a
Taskleak when a future unwinds out ofpoll(via a Rustpanic or a foreign JS exception) in both the single-threaded and
multi-threaded executors.
#5214
Headless Chrome/Edge tests now surface the WebDriver's own error message when
session creation fails (e.g. a chromedriver/Chrome version mismatch) instead
of a confusing
http status: 404.#5211
Removed
v0.2.125Compare Source
Added
--force-enable-abort-handlerCLI flag, which emits the hard-abortdetection and
set_on_abortmachinery onpanic=abortbuilds. Withpanic=unwindthis machinery is generated automatically; the flag doesnothing there.
#5191
Changed
__wbindgen_destroy_closureexport private in the Rust API.#5196
v0.2.123Compare Source
Added
Added the
maxAgeattribute to theCookieInitdictionary inweb-sys,matching the current Cookie Store API specification.
#5169
The js-sys futures codegen opt-in can now also be enabled via the
WASM_BINDGEN_USE_JS_SYS=1environment variable, in addition to--cfg=wasm_bindgen_use_js_sys. This works on stable when--targetis in use, where Cargo does not propagate the cfg to host proc-macros.
#5164
Changed
JsOption<T>now treats onlyundefinedas empty, aligning it withTypeScript's strict
T | undefinedsemantics and withOption<T>'s wireshape (
None↔undefined). Previouslyis_empty,as_option,into_option,unwrap,expect,unwrap_or_default, andunwrap_or_elsetreated bothnullandundefinedas absent; JSnullis now a distinct present value. The
impl<T> UpcastFrom<Null> for JsOption<T>is removed (Undefinedstill models absence), and theDebug/Displayabsent placeholder changed from"null"to"undefined". Code relying onnull → Noneshould returnundefinedfrom the JS side, or check explicitly with
val.as_option().filter(|v| !v.is_null()).#5170
Fixed
Removed invalid
js_sys::Array<T>tojs_sys::ArrayTuple<(...)>upcasts.ArrayTupleencodes a fixed tuple arity, while a plain JavaScript array doesnot prove that arity statically.
Fixed incorrect variance in
&mutreference upcasting.&mut Tupcastswere covariant in the pointee, so a
&mut Tcould be widened to a&mutof a supertype and used to write back a value the original type would not
accept, leaving a reference whose static type no longer matches the value
it points to. Mutable references are now invariant in their pointee:
&mut Tonly upcasts to&mut Targetwhen bothTarget: UpcastFrom<T>and
T: UpcastFrom<Target>hold. This rejects the invalid widening but isa breaking change for callers that relied on widening
&mutreferences.#5176
Fixed WASI targets (
wasm32-wasip1/wasm32-wasip2) emitting unresolved__wbindgen_placeholder__imports, which broke component linking. Thecodegen and runtime gates now exclude
target_os = "wasi"(restoring thepre-0.2.115 stub behavior), including the
panic = "unwind"paths inwasm-bindgen-futures.#5175
Fixed a panic ("Unhandled load width 8") in the descriptor interpreter when
processing
-Cinstrument-coverage-instrumented modules, unblockingcargo llvm-cov --target wasm32-unknown-unknownfor crates whose describehelpers get instrumented.
#5179
Fixed
mainsilently never running on wasm64 for bin crates.#5181
v0.2.122Compare Source
Notices
Threading support now requires
-Clink-arg=--export=__heap_baseto be setin
RUSTFLAGSfor nightly toolchains from 2026-05-06 onward, afterrust-lang/rust#156174
removed the implicit
__heap_base/__data_endexports onwasm*targets. Atomics CI, CLI reference tests, and the
nodejs-threads,raytrace-parallel, andwasm-audio-workletexamples have beenupdated to pass
--export=__heap_baseexplicitly. The flag isbackward-compatible with older nightlies.
-Cpanic=unwindon wasm targets now emits modern (exnref) exceptionhandling by default after
rust-lang/rust#156061,
and requires Node.js 22.22.3+ (for
WebAssembly.JSTag). Legacy EH wasmcan still be produced on current nightlies by adding
-Cllvm-args=-wasm-use-legacy-ehtoRUSTFLAGS; Node.js 20 may besupported with legacy exception handling, with a tracking issue in
#5151.
Added
Implemented
TryFromJsValueforVec<T>whereT: TryFromJsValue.A JS value converts when it is a real
Array(perArray.isArray)and every element converts via
T::try_from_js_value. This composesrecursively (
Vec<Vec<String>>,Vec<Option<T>>) and works for anyTwith aTryFromJsValueimpl, including primitives,String,JsValue, andJsCasttypes. Array-likes (objects withlengthandnumeric indices) are intentionally rejected to mirror the static ABI
representation used by
js_value_vector_from_abi.New
extends_js_classandextends_js_namespaceattributes onexported structs to allow defining the parent
js_classname whenit has been customized by
js_nameand the parent's ownjs_namespaceas well in turn. New validation is added at code generation time that
will now catch these cases instead of emitting invalid code. Example:
#5154
Changed
When an exported struct uses
js_namespace, the corresponding valuemust now be repeated on every
implblock. Previously the impl-sidedefaults silently worked resulting in inconsistent emission. Example:
To ease this transition for
js_namespaceusage, diagnosticmessages now include hints for missing namespaces for easier
fixing.
#5154
Fixed
Fixed the descriptor interpreter panicking on
BrandBrIfinstructions emitted by recent nightly compilers when building with
panic=unwind.#5158
Emscripten output now works against vanilla upstream emscripten without
requiring a fork. Dependency tracking,
HEAP_DATA_VIEWsetup,function-decl intrinsic inlining, catch-wrapper gating, and imported
global handling have all been corrected; ESM imports
(
#[wasm_bindgen(module = "...")]and snippets) are emitted to asidecar
library_bindgen.extern-pre.jsconsumers pass to emcc via--extern-pre-js; namespaced exports (js_namespace = [...]on astruct/impl) now attach to
Module.<segments>instead of emittingtop-level
export const(which emcc's library evaluator rejects);the generated
.d.tsfor namespaced exports is now valid TypeScript(mangled identifiers stay module-internal via
declare class/declare enum/declare functionplusexport { BindgenModule };to mark the file as a module; no spurious unqualified
Calc:property on
BindgenModulefor namespaced items; namespace shapesland as plain interface members (
app: { math: { Calc: typeof app__math__Calc } };) instead of the previously-emittedexport let app: { ... };which was invalid TS1131 syntax inside aninterface body).
#5156
Fixed a duplicate phantom class being emitted for an exported struct
renamed via
js_name(Rust ident != JS class name) and/or placed in ajs_namespace, when the struct crosses the boundary as aJsValue(e.g. via
.into()). TheWrapInExportedClass/UnwrapExportedClassimports were keyed by the Rust ident rather than the qualified JS name
that
exported_classesis keyed by (a regression from #5154), so afresh empty class entry was minted and emitted alongside the real one,
with a
free()referencing a nonexistent wasm export. Riding thesame release's #5154 wire-format bump, the now-vestigial
rust_namefield is dropped from the schema and the namespace-qualified name is
no longer cached on
AuxStruct,AuxEnum, orExportedClass(derived on demand from
(name, js_namespace)), collapsing threefallback chains that only papered over the pre-#5154 keying.
#5160
v0.2.121Compare Source
Added
Added the
slice_to_arrayattribute for imported JS functions,which makes a
&[T](orOption<&[T]>) argument arrive on the JSside as a plain
Arrayrather than a typed array — withoutchanging the Rust-side
&[T]signature. Useful when binding JSAPIs that take
T[]rather thanTypedArray<T>. For primitiveelement kinds the wire is the same zero-copy borrow used by plain
&[T], with the JS-side shim wrapping the view inArray.from(...)to materialise the
Array— no extra allocation. ForString,JsValue, and JS-imported element types the Rust side builds afresh
[u32]index buffer that JS reads and frees, with per-element&T -> JsValue(refcount bump for handle-shaped types). NoT: Clonebound is required. The attribute can be set per-fn(
#[wasm_bindgen(slice_to_array)] fn ...) or per-block on anextern "C" { ... }declaration to apply to every imported functionin that block.
&[ExportedRustStruct]remains unsupported (useowned
Vec<T>for that). Has no effect on exported functions;default
&[T](typed-array view / memory borrow) and ownedVec<T>semantics are unchanged for callers that didn't opt in.See the
slice_to_arrayguide page.#5145
Added
js_sys::AggregateErrorbindings (constructor,errorsgetter, andnew_with_message/new_with_optionsoverloads).AggregateErrorrepresentsmultiple unrelated errors wrapped in a single error, e.g. as thrown by
Promise.anywhen all input promises reject, along withjs_sys::ErrorOptions,accepted by built-in error constructors.
ErrorOptions::new(cause)constructs an instance pre-populated with
cause, andget_cause/set_causeprovide typed access to the property. All standard errorconstructors that previously took only a
message(EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,WebAssembly.CompileError,WebAssembly.LinkError,WebAssembly.RuntimeError) now expose anew_with_options(message, &ErrorOptions)overload, andErrorgainsnew_with_error_options(message, &ErrorOptions)alongside the existinguntyped
new_with_options.AggregateError::new_with_optionsalso takes&ErrorOptions.#5139
Added inheritance for Rust-exported types: an exported struct may
declare
#[wasm_bindgen(extends = Parent)]to inherit from anotherexported
#[wasm_bindgen]struct. The macro injects a hiddenparent: wasm_bindgen::Parent<Parent>field (a refcounted cell aroundthe parent value) and emits
class Child extends Parentin thegenerated JS /
.d.ts. The child gets anAsRef<Parent<Parent>>implfor the direct parent, and threads per-class pointer slots through
the wasm ABI so that
instanceof Parentis true and parent methodsdispatch soundly via the JS prototype chain. From inside child
methods, parent data is reached via
self.parent.borrow()/self.parent.borrow_mut(). See the newextendsguide page.#5120
Added
js_sys::FinalizationRegistrybindings (constructor,register,register_with_token, andunregister). The cleanup callback parameteris typed as
&Function<fn(JsValue) -> Undefined>, so closures created viaClosure::newcan be passed usingFunction::from_closure(for ownedclosures retained by JS) or
Function::closure_ref(for borrowed scopedclosures). Pairs with the existing
js_sys::WeakRefbindings.#5140
Added support for well-known symbols in
js_name,getter, andsettervia the explicit bracket-string form"[Symbol.<name>]". This works for imported and exported methods,fields, getters, and setters. For example,
#[wasm_bindgen(js_name = "[Symbol.iterator]")]on an exported methodgenerates
[Symbol.iterator]() { ... }on the generated JS class, andthe same syntax works for
getter/setterand for imported items.#4230
Added level 2 bindings for
ViewTransitiontoweb-sys.#5138
Add support for dynamic unions: a
#[wasm_bindgen]enum that mixes string-literalvariants with single-field tuple variants is now exported as an untagged TypeScript
union and dispatched dynamically at the JS↔Rust boundary. The new enum-level
#[wasm_bindgen(fallback)]attribute makes the last tuple variant anunconditional catch-all, supporting unions whose trailing variant has no
runtime check (e.g., interface-only imports). String enums and dynamic
unions now emit
export type(was baretype) so the alias is a namedexport, and both honour the
privateflag to suppress the keyword.#4734
#2153
#2088
Fixed
From<Promise<T>> for JsFuture<T>andIntoFuture for Promise<T>nowaccept any
T: FromWasmAbi(rather thanT: JsGeneric), lettingimported
async fns return dynamic-union enums.TryFromJsValuefor C-style enums no longer accepts non-numeric valuesvia JS unary
+coercion. Previously callingdyn_into::<MyEnum>()ona string would silently coerce it via
+"foo"(yieldingNaN, thenNaN as u32 = 0) and could match a discriminant by accident; theconversion now returns
Nonefor any value that is not a JS number.#4734
Fix compilation failure with
no_std+release#5134
Raw identifiers (
r#name) on enums, enum variants, extern types, statics,and
implblocks no longer leak ther#prefix into generated JS / TSoutput and shim names. The Rust-side identifier and the JS-side name are
now tracked separately for enum variants, and all known identifier
fallback paths apply
Ident::unraw()so e.g.pub enum r#Enum { r#A }generatesEnum.Ainstead of producingsyntactically invalid JS.
#4323
Using the
-C panic=unwindoption when building for the bundler targetwould produce invalid JS.
#5142
Changed
js_sys::DataViewnow implements thejs_sys::TypedArraytrait. AFIXMEnotes that the trait should be renamed toArrayBufferViewinthe next major release to better reflect the WebIDL spec name covering
both
DataViewand the typed-array types.#5135
v0.2.120Compare Source
Added
Added support for the
wasm64-unknown-unknowntarget (memory64 / wasm64).usize/isizeand raw pointers are now lowered through anf64JSnumber ABI on wasm64 (matching the existing convention used for
Option<u32>etc. on wasm32), with the CLI inspecting the module's memory type to pick
the right codegen path. Includes a dedicated
wasm64CI job and testsuite covering the new ABI paths.
#5004
Promise ergonomics:
Promise::all_tupleandPromise::all_settled_tuplefor heterogeneous concurrent awaits (arity 1..=8, destructure via
.into_tuple()), and a newwasm_bindgen::IntoJsGenerictrait underpinningtyped-
Arrayinference (with codegen-emitted identity impls and a#[wasm_bindgen(no_into_js_generic)]opt-out for types likeJsClosure).Also re-exports
JsGenericfrom the prelude. Typed collection onjs_sys::Array<T>is exposed as the inherent constructorArray::<T>::from_iter_typed(and companionextend_typed), inferringTfrom the iterator item via
IntoJsGeneric. The stableFromIterator/Extendimpls onArray(=Array<JsValue>) bound byAsRef<JsValue>are preserved, so existing
.collect::<Array>()call sites keep compilingunchanged. Fixes #5042.
#5121,
#5125
Added
wasm_bindgen::instance()to return the currentWebAssembly.Instance. The generated JS glue retains theinstantiated
WebAssembly.Instance.#5118
Added a
--cfg=wasm_bindgen_use_js_sysopt-in that makes async macro codegenuse
js_sys::futuresinstead ofwasm_bindgen_futures, dropping the needfor
wasm-bindgen-futureswhen the crate already depends onjs-sys. A cfgis used rather than a Cargo feature so the choice stays scoped to the crate
that opts in.
#5112
#5127
Changed
web-sysbindings by omitting redundant#[wasm_bindgen]attributes when they match wasm-bindgen defaults, includingstructural method annotations and matching
js_nameentries. The#[wasm_bindgen]attribute parser now also accepts string-literal forms forextends,static_method_of, andvendor_prefix(alongside the existingbare-path/ident syntax), and the generator emits these arguments along with
js_nameas string literals sorustfmtcan format the generated#[wasm_bindgen(...)]attributes uniformly.#5122
Fixed
Fixed namespaced export identifiers in generated JS/TS to use qualified names
consistently, resolving order-dependent codegen issues across platforms. Also
fixed
Vec<T>types in TS signatures to resolve through the identifier map.#5106
Fixed
wasm-bindgen-test-runnertreating ChromeDriver stderr warnings asstartup failures on macOS, causing a restart loop until timeout. The runner
no longer uses stderr output to determine if a driver has failed; instead a
per-attempt timeout detects stuck drivers and retries on a new port.
#5111
v0.2.118Compare Source
Added
Added
Error::stack_trace_limit()andError::set_stack_trace_limit()bindingsto
js-sysfor the non-standard V8Error.stackTraceLimitproperty.#5082
Added support for multiple
#[wasm_bindgen(start)]functions, which arechained together at initialization, as well as a new
#[wasm_bindgen(start, private)]to register a start function withoutexporting it as a public export.
#5081
Reinitialization is no longer automatically applied when using
panic=unwindand
--experimental-reset-state-function, instead it is triggered by anyuse of the
handler::schedule_reinit()function underpanic=unwind,which is supported from within the
on_aborthandler for reinit workflows.Renamed
handler::reinit()tohandler::schedule_reinit()and removedthe
set_on_reinit()handler. The__instance_terminatedaddressis now always a simple boolean (
0= live,1= terminated).#5083
handler::schedule_reinit()now works underpanic=abortbuilds. Previouslyit 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
#5102
Fixed
ES module
importstatements are now hoisted to the top of generated JSfiles, placed right after the
@ts-self-typesdirective. This ensuresvalid ES module output since
importdeclarations must precede otherstatements.
#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 elementsegment offsets as
global.get $__table_baseor extended const expressionsinstead of plain
i32.const Nfor large function tables; the fix adds aconst-expression evaluator in
get_function_table_entryand guards againstinteger underflow in multi-segment tables. Second, the descriptor interpreter
now routes all global reads/writes through a single
globalsHashMap seededfrom 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 tablecaused byGOT.func.internal.*globals being misidentified as thestack pointer.
#5076
#5080
#5093
#5095
v0.2.117Compare Source
Fixed
Fixed a regression introduced in #5026 where stable
web-sysmethods thataccept a union type containing a
[WbgGeneric]interface (e.g.ImageBitmapSource, which includesVideoFrame) incorrectly applied typedgenerics to all union expansions rather than only those whose argument type
is itself
[WbgGeneric]. In practice this causedWindow::create_image_bitmap_with_*and the corresponding
WorkerGlobalScopeoverloads to returnPromise<ImageBitmap>instead ofPromise<JsValue>for the stable(non-
VideoFrame) call sites, breakingJsFuture::from(promise).await?.#5064
#5073
Fixed handling logic for environment variable
WASM_BINDGEN_TEST_ADDRESSinthe test runner, when running tests in headless mode.
#5087
v0.2.116Compare Source
Added
js_sys::Float16Arraybindings,DataViewfloat16 accessors usingf32, and raw[u16]helper APIs for interoperability with binary16representations 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 Fnimport arguments instead of a hidden generic parameter and where-clause. The
generated signature is cleaner and the
MaybeUnwindSafebound is visibledirectly in the argument position. The ABI and wire format are unchanged.
When building with
panic=unwind, closures that capture non-UnwindSafevalues (e.g.
&mut T,Cell<T>) must wrap them inAssertUnwindSafebeforecapture; on all other targets
MaybeUnwindSafeis a no-op blanket impl.#5056
v0.2.115Compare Source
Added
console.debug/log/info/warn/erroroutput from user-spawnedWorkerandSharedWorkerinstances is now forwarded to the CLI test runner duringheadless 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()ratherthan crashing the worker. The
--nocaptureflag is respected.#5037
js_sys::Promise<T>now implementsIntoFuture, enabling direct.awaitonany JS promise without a wrapper type. The
wasm-bindgen-futuresimplementationhas been moved into
js-sysbehind an optionalfuturesfeature, which isactivated automatically when
wasm-bindgen-futuresis a dependency. Allexisting
wasm_bindgen_futures::*import paths continue to work unchanged viare-exports.
js_sys::futuresis also available directly for users who wantpromise.awaitwithout depending onwasm-bindgen-futures.#5049
Added
--target emscriptensupport, generating alibrary_bindgen.jsfilefor 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 toweb-sys.#5008
Added
wasm_bindgen::handlermodule withset_on_abortandset_on_reinithooks for
panic=unwindbuilds.set_on_abortregisters a callback invokedafter the instance is terminated (hard abort, OOM, stack overflow).
set_on_reinitregisters a callback invoked afterreinit()resets theWebAssembly instance via
--experimental-reset-state-function. Handlers arestored 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_closureexport.
#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:nonefor Chrome/Firefox,visibility:hiddenfor Safari).#4960
TTY-gated status/clear output in the test runner shell to avoid
\rcontrol-characterartifacts in non-interactive (CI) environments.
#4960
Added
bench_console_log_10mbbenchmark alongside the existing 1MB benchmark for theheadless 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-bindgeninterpreter by reversing the args collected from the stack.#5047
Added support for per-operation
[WbgGeneric]in WebIDL, restoring typedgeneric return types (e.g.
Promise<ImageBitmap>) forcreateImageBitmaponWindowandWorkerGlobalScopethat were lost after theVideoFramestabilization.
#5026
Fixed missing
#[cfg(feature = "...")]gates on deprecated dictionary buildermethods 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 useundefinedinstead ofnull, to be compatible withOption::Noneand JS default parameters.#5023
Fixed unsound
unsafetransmutes inJsOption<T>::wrap,as_option, andinto_optionby replacing
transmute_copywithunchecked_into(). Also tightened theJsGenerictrait bound and
JsOption<T>impl block to requireT: JsGeneric(which impliesJsCast),preventing use with arbitrary non-JS types.
#5030
Fixed headless test runner emitting
\rcarriage-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) introducedin v0.2.109 where the stable
FromIteratorandExtendimpls onjs_sys::Arraywere changed from
A: AsRef<JsValue>toA: AsRef<T>. Because#[wasm_bindgen]generates multiple
AsRefimpls per type, the compiler could not uniquely resolveT, breaking code likeArray::from_iter([my_wasm_value])without explicitannotations. The stable impls are restored to
A: AsRef<JsValue>(returningArray<JsValue>); the genericA: AsRef<T>forms remain available underjs_sys_unstable_apis.#5052
Fixed
skip_typescriptnot being respected when usingreexport, causingTypeScript definitions to be incorrectly emitted for re-exported items marked
with
#[wasm_bindgen(skip_typescript)].#5051
Removed
v0.2.114Compare Source
Added
Added
[WbgGeneric]WebIDL extended attribute for opting stable dictionary and interfacedefinitions into typed generics (the same signatures unstable APIs use), avoiding legacy
&JsValuefallbacks. Applied to all new VideoFrame-related types.#5008
Added
unchecked_optional_param_typeattribute for marking exported function parameters asoptional in TypeScript (
?:) and JSDoc ([paramName]) output. Mutually exclusive withunchecked_param_type. Required parameters after optional parameters are rejected at compile time.#5002
Added termination detection for
panic=unwindbuilds. When a non-JS exception (e.g. a Rustpanic) escapes from Wasm, the instance is marked as terminated and subsequent calls from JS
into Wasm will throw a
Module terminatederror instead of re-entering corrupted state.#5005
When
--reset-stateis combined withpanic=unwindbuilds, the Wasm instance isautomatically reset after a fatal termination, allowing subsequent calls to succeed
instead of throwing a
Module terminatederror.#5013
Changed
Replaced runtime
0x80000000vtable bit-flag for closure unwind safety with acompile-time
const UNWIND_SAFE: boolgeneric on the invoke shim,OwnedClosure,and
BorrowedClosure. RemovesOwnedClosureUnwindand deduplicates internalclosure helpers. The public API is unchanged.
#5003
Removed unused
IntoWasmClosureRef*::WithLifetimetypes,WasmClosure::to_wasm_slice, and a lifetime fromIntoWasmClosureRef*; movedStaticassociated type intoWasmClosure.#5003
Fixed
Fixed exported structs/enums/functions with the same
js_namebut differentjs_namespacevalues producing symbol collisions at compile time, by derivinginternal wasm symbols from a qualified name that includes the namespace.
#4977
Fixed soundness hole in
ScopedClosure'sUpcastFromthat allowed to extend the lifetime after the originalScopedClosurewas dropped.#5006
v0.2.113Compare Source
Changed
Reduced usage of
unsafecode: replacedtransmute/transmute_copywith safealternatives for
Boolean/Null/Undefinedconstants andArrayTupleconversions,unified duplicated
AsRef/Fromimpls for generic imported types, and removed the__wbindgen_object_is_undefinedintrinsic in favor of a safe Rust-side equivalent.#4993
Renamed
__wbindgen_object_is_null_or_undefinedintrinsic to__wbindgen_is_null_or_undefinedand removed the__wbindgen_object_is_undefinedintrinsic, replacing it with a safe Rust-side check. The
is_null_or_undefinedchecknow uses safe
&JsValueABI instead of rawu32.#4994
Fixed
types (e.g.
texImage2Dtaking aVideoFrameparameter). These methods werebeing named in a separate unstable expansion namespace, producing overly-short
names like
tex_image_2dinstead of the correcttex_image_2d_with_u32_and_u32_and_video_frame. The fix separates the signatureclassification 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.
#4991
v0.2.112Compare Source
Removed
ImmediateClosuretype introduced in 0.2.109. Stack-borrowed&dyn Fn/&mut dyn FnMutclosures are now treated as unwind safe by default (panics are caught and converted to JS exceptions
with proper unwinding). A unified
ScopedClosure::immediateapproach may be revisited in a futurerelease.
#4986
v0.2.111Compare Source
Fixed
re-added deprecated
Promise::then2binding, revertedPromise::all_settledstable signature to take
&JsValueinstead of ownedObject, and addeddefault type parameters (
= JsValue) toArrayIntoIter,ArrayIter, andIterstructs.#4979
v0.2.110Compare Source
Changed
Closure::foo(),Closure::foo_aborting()andClosure::foo_assert_unwind_safe()this then fully allows switching from the UnwindSafe bound now being applies on foo() to use one of thealternatives, given these limitations of AssertUnwindSafe. The same applies to
ImmediateClosure. In addition, mutable reentrancy guards areadded for
ImmediateClosure, and it is updated to be pass-by-value as well.#4975
Fixed
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_ofmethods returning the own type, to allowArray::ofgeneric to now be on theArray<T>impl block.#4974
v0.2.109Compare Source
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.#4876
Added
ScopedClosure<'a, T>as a unified closure type with lifetime parameter.ScopedClosure::borrow(&f)(for immutableFn) andScopedClosure::borrow_mut(&mut f)(for mutableFnMut) create borrowed closures that can capture non-'staticreferences, ideal for immediate/synchronous JS callbacks.Closure<T>is now a type alias forScopedClosure<'static, T>, maintaining backwards compatibility. Also addedIntoWasmAbiimplementation forClosure<T>enabling pass-by-value ownership transfer to JavaScript.Added
ImmediateClosure<'a, T>as a lightweight, unwind-safe replacement for&dyn FnMutin immediate/synchronous callbacks. UnlikeScopedClosure, it hasno JS call on creation, no JS call on drop, and no GC overhead—the same ABI as
&dyn FnMutbut with panic safety. UseImmediateClosure::new(&f)forimmutable
Fnclosures (easier to satisfy unwind safety) orImmediateClosure::new_mut(&mut f)formutable
FnMutclosures. Closure parameter types are automatically inferred from context.Also implements
From<&ImmediateClosure<T>> for ScopedClosure<T>for API migration.#4950
Implement
#[wasm_bindgen(catch)]exception handling directly in Wasm usingWebAssembly.JSTagwhen Wasm exception handling is available. This generatessmaller and faster code by avoiding JavaScript
handleErrorwrapper functions.#4942
Add Node.js
worker_threadssupport for atomics builds. When targeting Node.js with atomics enabled, wasm-bindgen now generatesinitSync({ 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.
#4936
Added support for WebIDL namespace attributes in
wasm-bindgen-webidl. This enablesAPIs like the CSS Custom Highlight API which adds the
highlightsattribute to theCSSnamespace.#4930
Added stable
ShowPopoverOptionsdictionary andshow_popover_with_options()method toHtmlElement, and unstableTogglePopoverOptionsdictionary per the WHATWG HTML spec.#4968
Added unstable Geolocation API types per the latest W3C spec:
GeolocationCoordinates,GeolocationPosition, andGeolocationPositionError. TheGeolocationinterface nowhas both stable methods (using the old
Position/PositionErrortypes with[Throws])and unstable methods (using the new types without
[Throws]}, matching actual browser behavior).#2578
Added
matrixTransform()method toDOMPointReadOnlyinweb-sys.#4962
Added the
webandnodetargets to the--experimental-reset-state-functionflag.#4909
Added
oncancelevent handler toGlobalEventHandlers(available onHtmlElement,Document,Window, etc.).#4542
Added
CommandEventandCommandEventInitfrom the Invoker Commands API.#4552
Added
AbstractRange,StaticRange, andStaticRangeInitinterfaces.#4221
Updated WebCodecs API to Working Draft 2026-01-29 and MediaRecorder API to 2025-04-17.
Added
rotationandfliptoVideoDecoderConfig.#4411
Added support for unstable WebIDL to override stable attribute types, allowing
corrected type signatures behind
web_sys_unstable_apis. Applied toMouseEventcoordinate attributes (
clientX,clientY,screenX,screenY,offsetX,offsetY,pageX,pageY) which now returnf64instead ofi32whenunstable APIs are enabled, per the CSSOM View spec draft.
#4935
Added support for unstable WebIDL to override stable method return types. This
enables User Timing Level 3 APIs where
Performance.mark()andPerformance.measure()return
PerformanceMarkandPerformanceMeasurerespectively (instead ofundefined)when
web_sys_unstable_apisis enabled. Also addedPerformanceMarkOptions,PerformanceMeasureOptions, and thedetailattribute on marks/measures.#3734
Added non-standard
modeoption forFileSystemFileHandle.createSyncAccessHandle().Also improved WebIDL generator to track stability at the signature level, allowing
stable methods to have unstable overloads.
#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. Sequencearguments in unstable APIs now use typed slices (
&[T]) instead of&JsValue.Fixed inner string enum types to use
JsStringin generic positions, addedBigIntto builtin identifiers, and fixed dictionary field feature gates to not over-constrain
getters with setter type requirements.
#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 expandedconstructors for each variant (e.g.
new(),new_with_gpu_texture_view()),with duplicate-signature variants elided.
#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.
#4951
Closure::new(),Closure::once(), and related methods now requireUnwindSafebounds on closures when building withpanic=unwind. New_abortingvariants (new_aborting(),once_aborting(), etc.) are provided for closures that don't need panic catching and want to avoid theUnwindSaferequirement.#4893
globaldoes not use the unsafe-evalnew Functiontrick anymore allowing to have CSP strict compliant packages withwasm-bindgen.#4910
evalandFunctionconstructors are now gated behind theunsafe-evalfeature.#4914
Fixed
Fixed incorrect JS export names when LLVM merges identical functions at
opt-level >= 2.#4946
Fixed incorrect
Closureadapter deduplication when wasm-ld's Identical Code Folding mergesinvoke functions for different closure types into the same export.
#4953
Fixed
ReferenceErrorwhen using Rust struct names that conflict with JS builtins (e.g.,Array).The constructor now correctly uses the aliased
FinalizationRegistryidentifier.#4932
Fixed
Element::scroll_top(),Element::scroll_left(), andHtmlElement::scroll_top()to return
f64instead ofi32per the CSSOM View spec, behindweb_sys_unstable_apis.The stable API is unchanged for backwards compatibility.
#4525
Added spec-compliant
i32parameter types forCanvasRenderingContext2d::get_image_data()and
put_image_data()(andOffscreenCanvasRenderingContext2dequivalents) behindweb_sys_unstable_apis. Per the HTML spec,getImageDataandputImageDatauselong(i32) for coordinates, not
double(f64). The stable API is unchanged for backwardscompatibility.
#1920
Fixed incorrect
#[cfg(web_sys_unstable_apis)]gating on stable method signatures thatshare 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 getunstable.Also adds typed generics (
Promise<T>,Array<T>,Function<fn(...)>, etc.) to allunstable API methods, and adds missing
PhotoCapabilities,PhotoSettings,MediaSettingsRange,Point2D,RedEyeReduction,FillLightMode, andMeteringModetypes from the W3C Image Capture spec.
#4964
Fixed
unfulfilled_lint_expectationswarnings when using#[expect(...)]attributeson functions annotated with
#[wasm_bindgen]. The#[expect]attributes are nowconverted to
#[allow]in generated code to prevent spurious warnings.#4409
v0.2.108Compare Source
Fixed
panic=unwindbuilds for non-Wasm targets would triggerUnwindSafeassertions.#4903
v0.2.107Compare Source
Added
Support catching panics, and raising JS Exceptions for them, when building
with panic=unwind on nightly, with the
stdfeature.#4790
Added support for passing
&[JsValue]slices from Rust to JavaScript functions.#4872
Added
privateattribute on exported types to allow generatingexports and structs as implicit internal exported types for function
arguments and returns, without exporting them on the public interface.
#4788
Added
iter_customanditer_custom_futurefor bench to do custom measurements.#4841
Added Window Management API.
#4843
Changed
Changed WASM import namespace from
wbgto./{name}_bg.jsforwebandno-modulestargets,aligning with
bundlerandexperimental-nodejs-moduleto enable cross-target WASM sharing.#4850
Replace
WASM_BINDGEN_UNSTABLE_TEST_PROFRAW_OUTandWASM_BINDGEN_UNSTABLE_TEST_PROFRAW_PREFIXwith parsingLLVM_PROFILE_FILEanalogous to Rust test coverage.#4367
Typescript custom sections sorted alphabetically across codegen-units.
#4738
Optimized demangling performance by removing redundant string formatting
#4867
Changed WASM import namespace from
__wbindgen_placeholder__to./{name}_bg.jsfornodetargets, aligning withbundlerandexperimental-nodejs-moduleto enable cross-target WASM sharing.#4869
Changed WASM import namespace from
__wbindgen_placeholder__to./{name}_bg.jsfordenoandmoduletargets, aligning withnode,bundlerandexperimental-nodejs-moduleto enable cross-target WASM sharing.#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.
--target experimental-nodejs-moduleemit one JS entrypoint (no separate_bg.js)./* @​ts-self-types="./<name>.d.ts" */to JS entrypoints for JSR/Deno resolution.#4879
Forward worker errors to test output in the test runner.
#4855
Fixed
Fix: Include doc comments in TypeScript definitions for classes
#4858
Interpreter: support try_table blocks
#4862
Interpreter: Stop interpretting descriptor after
__wbindgen_describe_cast#4862
v0.2.106Compare Source
Added
New MSRV policy, and bump of the MSRV fo 1.71.
#4801
Added
CSS Custom HighlightAPI toweb-sys.#4792
Added typed
thissupport in the first argument in free function exports viaa new
#[wasm_bindgen(this)]attribute.#4757
Added
reexportattribute for imports to support re-exporting imported types,with optional renaming.
#4759
Added
js_namespaceattribute on exported types, mirroring the importsemantics to enable arbitrarily nested exported interface objects.
#4744
Added 'container' attribute to
ScrollIntoViewOptions#4806
Updated and refactored output generation to use alphabetical ordering
of declarations.
#4813
Added benchmark support to
wasm-bindgen-test.#4812
#4823
Fixed
Fixed node test harness getting stuck after tests completed.
#4776
Quote names containing colons in generated .d.ts.
#4488
Fixes TryFromJsValue for structs JsValue stack corruption on failure.
#4786
Fixed
wasm-bindgen-test-runneroutputting empty line when using the--listoption. In particular,cargo-nextestnow works correctly.#4803
It now works to build with
-Cpanic=unwind.#4796
#4783
#4782
Fixed duplicate symbols caused by enabling v0 mangling.
#4822
Fixed a multithreaded wasm32+atomics race where
Atomics.waitAsyncpromise callbacks could callrunwithout waking first, causing sporadic panics.#4821
Removed
v0.2.105Compare Source
Added
Added
Math::PIbinding tojs_sys, exposing the ECMAScriptMath.PIconstant.#4748
Added ability to use
--keep-lld-exportsinwasm-bindgen-test-runnerby setting theWASM_BINDGEN_KEEP_LLD_EXPORTSenvironment variable.#4736
Added
CookieStoreAPI.#4706
Added
run_cli_with_argslibrary functions to allwasm_bindgen_clientrypoints.#4710
Added
get_rawandset_rawforWebAssembly.Table.#4701
Added
new_with_valueandgrow_with_valueforWebAssembly.Table.#4698
Added better support for async stack traces when building in debug mode.
#4711
Extended support for
TryFromJsValuetrait implementations.#4714
New
JsValue.is_null_or_undefined()method and intrinsic.#4751
Support for
Option<JsValue>in function arguments and return.#4752
Support for
WASM_BINDGEN_KEEP_TEST_BUILD=1environment variableto retain build files when using the test runner.
#4758
Fixed
Fixed multithreading JS output for targets
bundler,denoandmodule.#4685
Fixed
TextDe/Encoderdetection for audio worklet use-cases.#4703
Fixed post-processing failures in case Std has debug assertions enabled.
#4705
Fixed JS memory leak in
wasm_bindgen::Closure.#4709
Fixed warning when using
#[wasm_bindgen(wasm_bindgen=xxx)]on struct.#4715
Removed
wasm-bindgen-backendwill no longer be published.#4696
v0.2.104Compare Source
Added
Added bindings for
WeakRef.#4659
Support
Symbol.disposemethods by default, when it is supported in the environment.#4666
Added
aarch64-unknown-linux-muslrelease artifacts.#4668
Changed
Unconditionally use the global
TextEncoder/TextDecoderfor string encoding/decoding. The Node.js output now requires a minimum of Node.js v11.#4670
Deprecate the
msrvcrate feature. MSRV detection is now always on.#4675
Fixed
Fixed wasm-bindgen-cli's
encode_intoargument not working.#4663
Fixed a bug in
--experimental-reset-state-functionsupport for heap reset.#4665
Fixed compilation failures on Rust v1.82 and v1.83.
#4675
v0.2.103Compare Source
Fixed
#4656
v0.2.102Compare Source
Added
Added
DocumentOrShadowRoot.adoptedStyleSheets.#4625
Added support for arguments with spaces using shell-style quoting in webdriver
*_ARGSenvironment variables to
wasm-bindgen-test.#4433
Added ability to determine WebDriver JSON config location via
WASM_BINDGEN_TEST_WEBDRIVER_JSONenvironment variable towasm-bindgen-test.#4434
Generate DWARF for tests by default. See the guide on debug information for more details.
#4635
New
--target=moduletarget for outputting source phase imports.#4638
Changed
wasm-bindgen --helpdocs.#4646
Fixed
Fixed wrong method names for
GestureEventbindings.#4615
Fix crash caused by allocations during
TypedArrayinteractions.#4622
v0.2.101Compare Source
Added
Added format and colorSpace support to VideoFrameCopyToOptions
#4543
Added support for the
onbeforeinputattribute.#4544
TypedArray::new_from_slice(&[T])constructor that allows to create aJS-owned
TypedArrayfrom a Rust slice.#4555
Added
Function::call4andFunction::bind4throughFunction::call9Function::bind9methods for calling and binding JavaScript functions with 4-9 arguments.#4572
Added isPointInFill and isPointInStroke methods for the SVGGeometryElement idl.
#4509
Added unstable bindings for
GestureEvent.#4589
Stricter checks for
module,raw_moduleandinline_jsattributes applied to inapplicable items.#4522
Add bindings for
PictureInPicture.#4593
Added
bytesmethod for theBlobidl#4506
Add error message when export symbol is not found
#4594
Changed
Deprecate async constructors.
#4402
The
sizeargument toGPUCommandEncoder.copyBufferToBufferis now optional.#4508
MSRV of CLI tools bumped to v1.82. This does not affect libraries like
wasm-bindgen,js-sysandweb-sys!#4608
Fixed
Detect more failure scenarios when retrieving the Wasm module.
#4556
Add a workaround for
TextDecoderfailing in older version of Safari when too many bytes are decoded through it over its lifetime.#4472
TypedArray::from(&[T])now works reliably across memory reallocations.#4555
Fix incorrect memory loading and storing assertions during post-processing.
#4554
Fix test
--exactoption not working as expected.#4549
Fix tables being removed even though they are used by stack closures.
#4119
Skip
__wasm_call_ctorswhich we don't want to interpret.#4562
Fix infinite recursion caused by the lack of proc-macro hygiene.
#4601
Fix running coverage with no_modules.
#4604
Fix proc-macro hygiene with
core.#4606
Removed
Crates intended purely for internal consumption by the wasm-bindgen CLI will no longer be published:
#4608
wasm-bindgen-externref-xformwasm-bindgen-multi-value-xformwasm-bindgen-threads-xformwasm-bindgen-wasm-conventionswasm-bindgen-wasm-interpreterv0.2.100Compare Source
Released 2025-01-12
Added
Add attributes to overwrite return (``unchecked_return_type
) and parameter types (unchecked_param_type), descriptions (return_descriptionandparam_description) as well as parameter names (js_name`) for exported functions and methods. See the guide for more details.#4394
Add a
copy_to_uninit()method to allTypedArrays. It takes&mut [MaybeUninit<T>]and returns&mut [T].#4340
Add test coverage support for Node.js.
#4348
Support importing memory and using
wasm_bindgen::module()in Node.js.#4349
Add
--list,--ignored,--exactand--nocapturetowasm-bindgen-test-runner, analogous tocargo test.#4356
Add bindings to
Date.to_locale_time_string_with_options.#4384
#[wasm_bindgen]now correctly applies#[cfg(...)]s instructs.#4351
Changed
Optional parameters are now typed as
T | undefined | nullto reflect the actual JS behavior.#4188
Adding
getter,setter, andconstructormethods to enums now results in a compiler error. This was previously erroneously allowed and resulted in invalid JS code gen.#4278
Handle stuck and failed WebDriver processes when re-trying to start them.
#4340
Align test output closer to native
cargo test.#4358
Error if URL in
<WEBDRIVER>_REMOTEcan't be parsed instead of just ignoring it.#4362
Remove
WASM_BINDGEN_THREADS_MAX_MEMORYandWASM_BINDGEN_THREADS_STACK_SIZE. The maximum memory size can be set via-Clink-arg=--max-memory=<size>. The stack size of a thread can be set when initializing the thread via thedefaultfunction.#4363
console.*()calls in tests are now always intercepted by default. To show them use--nocapture. When shown they are always printed in-place instead of after test results, analogous tocargo test.#4356
Fixed
Fixed using JavaScript keyword as identifiers not being handled correctly.
#4329
structandenumnames will now error at compile time, instead of causing invalid JS code gen.js_namespaceon imports.js_namespaceormoduleattribute.js_namespaceormoduleattribute._{keyword}.Fixed passing large arrays into Rust failing because of internal memory allocations invalidating the memory buffer.
#4353
Pass along an
ignoreattribute tounsupportedtests.#4360
Use OS provided temporary directory for tests instead of Cargo's
targetdirectory.#4361
Error if URL in
<WEBDRIVER>_REMOTEcan't be parsed.#4362
Internal functions are now removed instead of invalidly imported if they are unused.
#4366
Fixed
no_stdsupport for all APIs inweb-sys.#4378
Prevent generating duplicate exports for closure conversions.
#4380
v0.2.99Compare Source
Released 2024-12-07
Fixed
wasm-bindgenv0.2.98 only compatible withwasm-bindgen-cliof the same version.#4331
v0.2.98Compare Source
Released 2024-12-07
Added
Add support for compiling with
atomicsfor Node.js.#4318
Add
WASM_BINDGEN_TEST_DRIVER_TIMEOUTenvironment variable to control the timeout to start and connect to the test driver.#4320
Add support for number slices of type
MaybeUninit<T>.#4316
Changed
Remove
once_cell/critical-sectionrequirement forno_stdwith atomics.#4322
static FOO: Option<T>now returnsNoneif undeclared in JS instead of throwing an error in JS.#4319
Fixed
Fix macro-hygiene for calls to
std::thread_local!.#4315
Fix feature resolver version 1 compatibility.
#4327
v0.2.97Compare Source
Released 2024-11-30
Fixed
js-sysandwasm-bindgen-futuresrelying on internal paths ofwasm-bindgenthat are not crate feature additive.#4305
v0.2.96Compare Source
Released 2024-11-29
Added
Added support for the
HTMLOrSVGElementmixin, which is used for all interfaces deriving fromElement.#4143
Added bindings for MathMLElement.
#4143
Added JSDoc type annotations to C-style enums.
#4192
Added support for C-style enums with negative discriminants.
#4204
Added bindings for
MediaStreamTrack.getCapabilities.#4236
Added WASM ABI support for
u128andi128#4222
Added support for the
wasm32v1-nonetarget.#4277
Added support for
no_stdtojs-sys,web-sys,wasm-bindgen-futuresandwasm-bindgen-test.#4277
Added support for
no_stdtolink_to!,static_string(viathread_local_v2) andthrow.#4277
Added environment variables to configure tests:
WASM_BINDGEN_USE_BROWSER,WASM_BINDGEN_USE_DEDICATED_WORKER,WASM_BINDGEN_USE_SHARED_WORKERWASM_BINDGEN_USE_SERVICE_WORKER,WASM_BINDGEN_USE_DENOandWASM_BINDGEN_USE_NODE_EXPERIMENTAL. The use ofwasm_bindgen_test_configure!will overwrite any environment variable.#4295
Changed
String enums now generate private TypeScript types but only if used.
#4174
Remove unnecessary JSDoc type annotations from generated
.d.tsfiles#4187
Deprecate
autofocus,tabIndex,focus()andblur()bindings in favor of bindings on the inheritedElementclass.#4143
Optimized ABI performance for
Option<{i32,u32,isize,usize,f32,*const T,*mut T}>.#4183
Deprecate
--reference-typesin favor of automatic target feature detection.#4237
wasm-bindgen-test-runnernow tries to restart the WebDriver on failure, instead of spending its timeout period trying to connect to a non-existing WebDriver.#4267
Deprecated
#[wasm_bindgen(thread_local)]in favor of#[wasm_bindgen(thread_local_v2)], which creates awasm_bindgen::JsThreadLocal. It is similar tostd::thread::LocalKeybut supportsno_std.#4277
Updated the WebGPU API to the current draft as of 2024-11-22.
#4290
Improved error messages for
selfarguments in invalid positions.#4276
Fixed
Fixed methods with
self: &Selfconsuming the object.#4178
Fixed unused string enums generating JS values.
#4193
Fixed triggering lints in testing facilities.
#4195
Fixed
#[should_panic]not working with#[wasm_bindgen_test(unsupported = ...)].#4196
Fixed potential
nullerror when usingJsValue::as_debug_string().#4192
Fixed generated types when the getter and setter of a property have different types.
#4202
Fixed generated types when a static getter/setter has the same name as an instance getter/setter.
#4202
Fixed invalid TypeScript return types for multivalue signatures.
#4210
Only emit
table.fillinstructions if the bulk-memory proposal is enabled.#4237
Fixed calls to
JsCast::instanceof()not respecting JavaScript namespaces.#4241
Fixed imports for functions using
thisand late binding.#4225
Don't expose non-functioning implicit constructors to classes when none are provided.
#4282
v0.2.95Compare Source
Released 2024-10-10
Added
Added support for implicit discriminants in enums.
#4152
Added support for
Selfin complex type expressions in methods.#4155
Changed
#4174
Fixed
Fixed generated setters from WebIDL interface attributes binding to wrong JS method names.
#4170
Fix string enums showing up in JS documentation and TypeScript bindings without corresponding types.
#4175
v0.2.94Compare Source
Released 2024-10-09
Added
Added support for the WebAssembly
Tail Callproposal.#4111
Add bindings for
RTCPeerConnection.setConfiguration(RTCConfiguration)method.#4105
Add bindings to
RTCRtpTransceiverDirection.stopped.#4102
Added experimental support for
Symbol.disposeviaWASM_BINDGEN_EXPERIMENTAL_SYMBOL_DISPOSE.#4118
Added bindings for the draft WebRTC Encoded Transform spec.
#4125
Added
Debugimplementation toJsError.#4136
Added support for
js_nameandskip_typescriptattributes for string enums.#4147
Added
unsupportedcrate towasm_bindgen_test(unsupported = test)as a way of running tests on non-Wasm targets as well.#4150
Added additional bindings for methods taking buffer view types (e.g.
&[u8]) with corresponding JS types (e.g.Uint8Array).#4156
Added additional bindings for setters from WebIDL interface attributes with applicaple parameter types of just
JsValue.#4156
Changed
Implicitly enable reference type and multivalue transformations if the module already makes use of the corresponding target features.
#4133
Updated Gamepad API.
#4134
Deprecated
Gamepad::display_idandGamepadHapticActuator::type_.#4134
Removed
GamepadAxisMoveEvent,GamepadAxisMoveEventInit,GamepadButtonEvent,GamepadButtonEventInitandGamepadServiceTest, which were seemingly never implemented by any JS environment.#4134
Changed
TextDecoder.decode()inputparameter type from&mut [u8]to&[u8].#4141
Updated the WebGPU API to the current draft as of 2024-10-07.
#4145
Deprecated generated setters from WebIDL interface attribute taking
JsValuein favor of newer bindings with specific parameter types.#4156
Fixed
Fixed linked modules emitting snippet files when not using
--split-linked-modules.#4066
Fixed incorrect deprecation warning when passing no parameter into
default()(init()) orinitSync().#4074
Fixed many proc-macro generated
implblocks missing#[automatically_derived], affecting test coverage.#4078
Fixed negative
BigIntvalues being incorrectly formatted with two minus signs.#4082
#4088
Fixed emitted
package.jsonstructure to correctly specify its dependencies#4091
Fixed returning
Option<Enum>now correctly has the| undefinedtype in TS bindings.#4137
Fixed enum variant name collisions with object prototype fields.
#4137
Fixed multiline doc comment alignment and remove empty ones entirely.
#4135
Fixed
experimental-nodejs-moduletarget when used with#[wasm_bindgen(start)].#4093
Fixed error when importing very large JS files.
#4146
Specify
"type": "module"when deploying to nodejs-module#4092
Fixed string enums not generating TypeScript types.
#4147
Bindings that take buffer view types (e.g.
&[u8]) as parameters will now correctly return aResultwhen they might not support a backingSharedArrayBuffer. This only applies to new and unstable APIs, which won't cause a breaking in the API.#4156
v0.2.93Compare Source
Released 2024-08-13
Added
Allow exporting functions named
default. Throw error in wasm-bindgen-cli if --target web andan exported symbol is named
default.#3930
Added support for arbitrary expressions when using
#[wasm_bindgen(typescript_custom_section)].#3901
Implement
From<NonNull<T>>forJsValue.#3877
Add method
copy_withinfor TypedArray, add methodsfind_last,find_last_indexfor Array.#3888
Added support for returning
Vecs from async functions.#3630
Added bindings for
InputDeviceInfoandMediaTrackCapabilities.#3935
Add bindings for
RTCRtpReceiver.getCapabilities(DOMString)method.#3941
Add bindings for
VisualViewport.#3931
Add bindings for
queueMicrotask.#3981
Add experimental bindings for User Agent Client Hints API
#3989
Add bindings for
FocusOptions.#3996
Add bindings for
RTCRtpReceiver.jitterBufferTarget.#3968
Generate getters for all WebIDL dictionary types.
#3993
Support for iterable in WebIDL. Gives
entries,keys,valuesmethods for regular and asynchronous, as well asfor_eachfor regular, iterables.#3962
Add bindings for
HTMLTableCellElement.abbrandscopeproperties.#3972
Add WebIDL definitions relating to
Popover API.#3977
Added the
thread_stack_sizeproperty to the object parameter ofdefault()(init()) andinitSync(), making it possible to set the stack size of spawned threads.__wbindgen_thread_destroy()now has a third optional parameter for the stack size, the default stack size is assumed when not passing it. When calling from the thread to be destroyed, by passing no parameters, the correct stack size is determined internally.#3995
Added bindings to the Device Memory API.
#4011
Added support for WebIDL records. This added new methods to various APIs, notably
ClipboardItem(),GPUDeviceDescriptor.requiredLimitsandHeader().#4030
Added an official MSRV policy. Library MSRV changes will be accompanied by a minor version bump. CLI tool MSRV can change with any version bump.
#4038
Added bindings to
NavigatorOptions.vibrate.#4041
Added an experimental Node.JS ES module target, in comparison the current
nodetarget uses CommonJS, with--target experimental-nodejs-moduleor when testing withwasm_bindgen_test_configure!(run_in_node_experimental).#4027
Added importing strings as
JsStringthrough#[wasm_bindgen(thread_local, static_string)] static STRING: JsString = "a string literal";.#4055
Added experimental test coverage support for
wasm-bindgen-test-runner, see the guide for more information.#4060
Changed
Stabilize Web Share API.
#3882
Generate JS bindings for WebIDL dictionary setters instead of using
Reflect. This increases the size of the Web API bindings but should be more performant. Also, importing getters/setters from JS now supports specifying the JS attribute name as a string, e.g.#[wasm_bindgen(method, setter = "x-cdm-codecs")].#3898
Greatly improve the performance of sending WebIDL 'string enums' across the JavaScript boundary by converting the enum variant string to/from an int.
#3915
Use
table.fillwhen appropriate.#3446
Annotated methods in WebCodecs that throw.
#3970
Update and stabilize the Clipboard API.
#3992
Deprecate builder-pattern type setters for WebIDL dictionary types and introduce non-mutable setters instead.
#3993
Allow imported async functions to return any type that can be converted from a
JsValue.#3919
Update Web Authentication API to level 3.
#4000
Deprecate
AudioBufferSourceNode.onendedandAudioBufferSourceNode.stop().#4020
Increase default stack size for spawned threads from 1 to 2 MB.
#3995
Deprecated parameters to
default(init) andinitSyncin favor of an object.#3995
Update
AbortSignalandAbortControlleraccording to the WHATWG specification.#4026
Update the Indexed DB API.
#4027
UnwrapThrowExt for Resultnow makes use of the requiredDebugbound to display the error as well.#4035
#4049
MSRV of CLI tools bumped to v1.76. This does not affect libraries like
wasm-bindgen,js-sysandweb-sys!#4037
Filtered files in published crates, significantly reducing the package size and notably excluding any bash files.
#4046
Deprecated
JsStaticin favor of#[wasm_bindgen(thread_local)], which creates astd::thread::LocalKey. The syntax is otherwise the same.#4057
Removed
impl Deref for JsStaticwhen compiling withcfg(target_feature = "atomics"), which was unsound.#4057
Updated the WebGPU WebIDL to the current draft as of 2024-08-05.
#4062
Use object URLs for linked modules without
--split-linked-modules.#4067
Fixed
Copy port from headless test server when using
WASM_BINDGEN_TEST_ADDRESS.#3873
Fix
catchnot being thread-safe.#3879
Fix MSRV compilation.
#3927
Fix
clippy::empty_docslint.#3946
Fix missing target features in module when enabling reference types or multi-value transformation.
#3967
Fixed Rust values getting GC'd while still borrowed.
#3940
Fixed Rust values not getting GC'd if they were created via. a constructor.
#3940
Fix triggering
clippy::mem_forgetlint in exported structs.#3985
Fix MDN links to static interface methods.
#4010
Fixed Deno support.
#3990
Fix
__wbindgen_thread_destroy()ignoring parameters.#3995
Fix
no_stdsupport and therefor compiling withdefault-features = false.#4005
Fix byte order for big-endian platforms.
#4015
Allow ex/importing structs, functions and parameters named with raw identifiers.
#4025
Implement a more reliable way to detect the stack pointer.
#4036
#[track_caller]is now always applied onUnwrapThrowExtmethods when not targetingwasm32-unknown-unknown.#4042
Fixed linked modules emitting snippet files when not using
--split-linked-modules.#4066
Configuration
📅 Schedule: (in timezone Etc/GMT)
🚦 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 has been generated by Mend Renovate.
⚠️ Artifact update problem
Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
The artifact failure details are included below:
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
File name: Cargo.lock
48695589c79b67c87531Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠️ Warning: custom changes will be lost.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.