Repository navigation
Conversation
|
Updated validation after the supplied review: The scope guard is retained: removing it links |
|
Thanks for this. Indexing named class expressions with their members and // a.js
function register(c) { return c; }
register(class Widget { run() {} });
// b.js — no import of anything from a.js
export function use() {
const w = new Widget();
w.run();
}
It looks like an instance-method result is accepted whenever the receiver isn't the class's inner name ( The branch is also 171 commits behind and conflicts in |
|
Thanks @Puma7 for #2499 and this PR. Named class expressions are now indexed as classes with their own methods, |
Named JS/TS class expressions currently omit their class, member ownership and inheritance. Extract that structure in both WASM and native TS/JS, while keeping the expression's inner name scoped to its body.
Closes #2499.
Retain real class-header signatures across persistence and reject leaked inner-name targets, including references from Vue/Svelte. Preserve independently visible outer bindings. The fallback scope map is cached, uses compact integer storage and is only needed to recover competing outer bindings; other language targets return immediately.
Validation: 32 expression/scope tests plus 120 native/WASM parity tests pass with the native kernel active (152 total, no skips). Ruby and node-identity controls are included. Anonymous traversal and the database/kernel ABI are unchanged. Re-index after upgrading.
Combined validation against main
80e4b459(Windows, Node 24, WASM, two workers): 6,752 passed, zero failed, 406 skipped under existing platform/kernel gates; standard timeouts unchanged. Separate active-native checks passed 152 class/parity and 112 constructor/super cases. These are local results, not GitHub CI or other-OS claims.