Commit Graph
22 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 1b164fc27a perf(webidl): share object function construction
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).
2026-10-21 23:16:23 +08:00
ldm0 9f11881c1a fix(window): check native receivers before crossing realms
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.
2026-10-18 04:54:59 +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 29bb4dc91d feat(webidl): expose declared prototype attribute metadata 2026-10-06 01:48:34 +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 9b6ce47b98 refactor(webapi): share member and object code generation 2026-09-12 01:38:23 +08:00
ldm0 ed3321a3ee refactor(webapi): normalize field roles and inherited defaults 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 0c8e66219e perf(webapi): share function template installers 2026-09-01 23:21:19 +08:00
ldm0 af1859168f perf(webapi): precompute accessor function names 2026-09-01 23:21:19 +08:00
ldm0 32777a338b fix(macros): box large constructor default expressions 2026-08-27 17:53:51 +08:00
ldm0 27b5135cb6 Public preview 2026-08-11 00:10:12 +08:00