Commit Graph
18 Commits
Author SHA1 Message Date
ldm0 bd0ddc3f8d perf(webapi): generate static accessor function names
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.
2026-10-22 02:56:07 +08:00
ldm0 31ee126de3 perf(webidl): install template accessors from static metadata
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).
2026-10-21 23:16:23 +08:00
ldm0 e1d3638300 perf(webidl): install template methods from static metadata
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).
2026-10-21 23:16:23 +08:00
ldm0 b4f9a9677f refactor(webapi): add native cross-origin member declarations
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.
2026-10-17 03:31:45 +08:00
ldm0 d9928760ed fix(webidl): isolate internal descriptor records from prototype pollution 2026-10-12 14:59:03 +08:00
ldm0 29bb4dc91d feat(webidl): expose declared prototype attribute metadata 2026-10-06 01:48:34 +08:00
ldm0 661e6cfd99 fix(renderer): propagate intrinsic finalization failures 2026-10-04 23:19:25 +08:00
ldm0 0a87c564fc fix(webidl): validate observer Element arguments with native brands
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.
2026-10-02 01:10:35 +08:00
ldm0 a7160b75ac refactor(webapi): rename record role to plain 2026-09-12 01:38:23 +08:00
ldm0 961eac7f7c refactor(webapi): share accessor preparation and validation 2026-09-12 01:38:23 +08:00
ldm0 2e6167f127 refactor(webapi): make object roles and receiver identity explicit 2026-09-12 01:38:23 +08:00
ldm0 c1679b1b25 refactor(webapi): share generated interface descriptors 2026-09-12 01:38:23 +08:00
ldm0 c35acc033d refactor(webapi): retire unused interface object derive 2026-09-12 01:38:23 +08:00
ldm0 967a0d03d8 refactor(webapi): replace legacy brands with generated receiver checks 2026-09-11 18:32:44 +08:00
ldm0 9f2e9632ac refactor(webapi): migrate native construction paths to shared identity 2026-09-11 18:32:44 +08:00
ldm0 25d7b63e06 feat(webapi): generate private platform object identity 2026-09-11 18:32:44 +08:00
ldm0 91a0c5b970 fix(webidl): generate native receiver checks in declarative bindings 2026-09-09 00:22:07 +08:00
ldm0 27b5135cb6 Public preview 2026-08-11 00:10:12 +08:00