fix(deps): update wasm-bindgen packages#1600
Merged
Merged
Conversation
Contributor
✅ Commit Signature Verification - SuccessAll commits have been verified successfully. Summary
External Contributors
No impersonation attempts detected. |
Codecov Report✅ All modified and coverable lines are covered by tests. 🚀 New features to boost your workflow:
|
139c30a to
7d1f1b6
Compare
- remove hcaptcha-wasm from Cargo.toml workspace members - delete the hcaptcha-wasm package block from Cargo.lock ♻️ refactor(hcaptcha-wasm): update Cargo.toml for standalone usage - set edition to 2021 and rust-version to 1.88 - disable publish by setting publish to false - add workspace section to hcaptcha-wasm Cargo.toml Signed-off-by: Jeremiah Russell <jerry@jrussell.ie>
…erus-org/hcaptcha-rs into renovate/wasm-bindgen-packages
|
jerusdp
approved these changes
Jun 2, 2026
jerus-bot
approved these changes
Jun 2, 2026
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.118→0.2.1220.2.118→0.2.1220.4.68→0.4.720.4.68→0.4.720.3.68→0.3.720.3.68→0.3.72Release Notes
wasm-bindgen/wasm-bindgen (wasm-bindgen)
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
Configuration
📅 Schedule: (UTC)
* 0-5 24 * *)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Never, 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.