Move getter/setter name formatting into the derive macro and reuse the
getter name suffix as the property key, avoiding a third stored name.
Keep shared installation and V8 callback mappings. Cover static names
and Unicode property keys in the existing tests.
Extend metadata installation to consecutive statically named accessors
without callback data. Preserve run boundaries, receiver checks and
getter/setter names and lengths, with native callback mappings resolved
during installation. Cover mixed method/accessor order and generic getters.
This step passes focused WebIDL clippy and 98 binding/derive tests.
Validation on the unchanged final source tree: cargo fmt --all;
cargo clippy --workspace --all-targets --all-features -- -D warnings;
cargo nextest run --no-fail-fast (20,505 passed, 18 existing skips).
Batch consecutive statically named template methods without callback data
through constant metadata and a shared installer. Resolve native callback
mappings during installation, preserving aliases, ordering, descriptors
and the original JavaScript callback path.
Keep generic callback data, nested entries, return values and exception
identity covered by the binding regression tests.
This step passes focused WebIDL clippy and 98 binding/derive tests.
Validation on the unchanged final source tree: cargo fmt --all;
cargo clippy --workspace --all-targets --all-features -- -D warnings;
cargo nextest run --no-fail-fast (20,505 passed, 18 existing skips).
Share object method and accessor construction through a concrete runtime helper.
Preserve callback data, receiver checks and installation order while using
V8's original per-callback adaptation.
This step passes focused WebIDL clippy and 96 binding/derive tests.
Validation on the unchanged final source tree: cargo fmt --all;
cargo clippy --workspace --all-targets --all-features -- -D warnings;
cargo nextest run --no-fail-fast (20,505 passed, 18 existing skips).
Add declarative V8 receiver access checks and Window brand validation. Authorize SameObject getters before cache reads, preserve captured objects for retired Realms, and materialize child proxies for the actual accessing context with isolated facade tokens.
Generate stateless method and accessor tables with receiver checks and native
value callbacks. Cache FunctionTemplates per isolate and use V8's per-context
function instances, without retaining target Windows or observer realms.
Cover function identity, realm prototypes, descriptors, receiver validation,
exception and termination propagation, and context collection.
Use native Web API identity for ResizeObserver and IntersectionObserver targets and roots, accepting genuine cross-realm objects and registered native proxies while rejecting forged, inherited and author-Proxy values. Validate root membership during dictionary conversion, before later getters, and resolve native targets without reading public nodeType properties.
A 204-case regression matrix covers both observer interfaces and realms, native proxy acceptance, invalid targets, poisoned properties, option conversion order and original exception identity.
Expose the backing-object lookup from the existing native brand layer rather than unwrapping author Proxies in DOM callbacks. Extend its existing identity tests for cross-realm objects, forged objects, registered native Proxies, outer author Proxies and revocation.