Keep Uint8Array identity while validating the native buffer: reject author proxies and resizable/growable storage, distinguish detached fixed buffers from detached resizable buffers, and reject shared storage unless the declaration explicitly permits it. Add derive-level allow_shared support and mark TextEncoder.encodeInto’s destination according to Encoding IDL. Depends on the shared native buffer introspection foundation; conversion tests cover direct locals, optional/sequence fields, shared policy and getter exceptions.
Add the shared WebIDL octet converter and derive support for explicit octet and inferred u8 fields. Convert through JavaScript numeric coercion and modulo arithmetic. Regressions cover negative/fractional/large values, nonfinite numbers, thrown conversion identity, argument sequence order, dictionaries, and unsupported primitives. MIDI bindings are separate.
Add borrowed AllowShared BufferSource conversion for algorithms that copy after dictionaries are converted, including native range writes and atomic shared-memory byte access. Reject resizable/growable storage and author proxies using native identity, including detached resizable buffers and views. Tests cover late snapshots, bounded writes, surrounding bytes, detachment and native resizable flags. Individual API migrations are separate.
Add an explicit unrestricted_float converter to the shared WebIDL value and derive infrastructure. Preserve signed zero, NaN and infinities while rounding finite numbers to binary32; required arity, conversion side effects and original exceptions retain the existing contracts. Cross-realm tests compare Math.fround and check callee-realm TypeError.
Derive dictionary member conversion in lexical order and add explicit #[webidl(inherit)] support that converts ancestor dictionaries before derived members. Migrate the existing native EventInit-based dictionaries together so sorting does not mix inherited and own members. Reject incompatible inheritance attributes and duplicate own member names. V8 integration tests cover aliases, nested and inherited dictionaries, Proxy/getter traces, early exceptions and coercion ordering. Native renderer regressions cover twelve event constructors in two realms, flag preservation, and ancestor getter exceptions preventing all derived reads.
Add sequence fields for Vec and optional Vec, with inferred or explicit item converters and interface/brand_check metadata. Reuse the runtime iterator and preserve interleaved conversion, exception identity, nullability and object identity across realms.
Validation on the combined tree: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings; cargo nextest run --no-fail-fast (19639 passed, 16 skipped; CARGO_BUILD_JOBS=1).
Add dictionary fields backed by WebIdlDictionary, including empty, optional and nullable conversions without requiring Rust Default. Preserve required-member checks, getter order, scope-dependent defaults and original exceptions.
Allow non-defaulted interface arguments to convert in field order without adding an arity gate, so existing XPath conversion timing can be preserved.
Validation on the combined tree: cargo fmt --all; cargo clippy --workspace --all-targets --all-features -- -D warnings; cargo nextest run --no-fail-fast (19639 passed, 16 skipped; CARGO_BUILD_JOBS=1).
Add interface and brand_check field attributes to argument and dictionary derives, including variadic object arguments. Preserve native object identity and validate brands at each field conversion position.
Cover nullability, conversion order, cross-realm errors, registered native proxies, and invalid attribute combinations.
Add an explicit UTF-16 DOMString converter for bindings that must preserve lone surrogates. Reuse the existing UTF-16 extraction helper and keep this change additive, without rerouting the existing DOMString converter.
Regressions cover code-unit preservation, scalar conversion, null-to-empty options, single string-hint coercion, exception identity and callee-realm TypeErrors. Existing DOMString and USVString behavior is also checked.
Add the WebIDL restricted float converter and f32 inference in generated argument and dictionary bindings. Round finite numbers to binary32, reject values that become nonfinite, and preserve exceptions from numeric conversion.
Regression coverage compares rounding with V8 Math.fround, including signed zero, subnormals and overflow, and checks implicit/explicit derived argument conversion, single coercion, exception identity and the callee TypeError realm. Extracted from the AudioBuffer commit without an audio runtime dependency.
Apply integer truncation before range validation and constrain 64-bit EnforceRange to JavaScript exact integers. Cover negative fractions, finite endpoints, non-finite values, and OPFS offset range rejection.
Source: 1a1ca5af42
Propagate WebIDL sequence conversion errors without IteratorClose. Convert all inner sequences before validating URLSearchParams pair lengths or normalizing Headers, preserving getter order and conversion exceptions.
Source: afe693c9a3, 4a420981c3