Parents: #465, #498 Depends on: #739 Related: #729, #737
Implemented by: bc805037
Problem
#739 admits recursively closed primitive default expressions, but direct invocation-context leaves remain rejected even though the VM installs their exact values before executing the ordered parameter prologue. A bare this, bare new.target, or an ordinary function's own unmapped arguments object needs no body-variable lookup, closure capture, or expression folding.
Scope
- Admit a default Initializer only when its complete expression is bare
this, barenew.target, or bareargumentsresolving to the ordinary function's own arguments exotic. - Preserve sloppy receiver substitution, strict undefined
this, method receiver identity, lexical arrowthis/new.target, ordinary call versus constructnew.target, alternateReflect.constructtargets, and unmapped non-simpleargumentsidentity/content. - Evaluate only for raw undefined and preserve provided-value bypass, recursion/reentrancy, debugger checkpoints, moving GC, OOM restoration, and shared-chunk no-GIL behavior.
- Reuse #738/#739's immutable default-index metadata, ordered bytecode prologue, activation guards, and native-tier fail-closed policy.
An arguments parameter/pattern binding, arrow's inherited arguments, embedded unary/binary/logical/conditional/sequence/member/call/new forms, source identifiers other than the exact own arguments binding, functions/classes/allocating literals, assignments/updates, nested pattern expressions, rest mixtures, and class constructors requiring derived/field initialization remain barriers.
No-workaround rules
- No source-text recognizer, constant folding, host evaluation, tree-walker callback, guessed arguments ownership, receiver snapshot, derived-constructor placeholder, permissive recursive admission, or alternate metadata path.
- No stacks, queues, jobs, Promise, microtask, Worker lifecycle, or Map/Set iterator changes.
Acceptance
- Compiler admission proves the three exact leaf families and stable rejection for shadowed/inherited/embedded/excluded forms.
- Forced tree-walker and required bytecode agree across sloppy/strict calls, methods, arrows, base constructors, ordinary and alternate construction, own arguments, provided bypass, recursion/reentrancy, and moving GC.
- Derived/field constructor policy, malformed metadata, OOM restoration, shared no-GIL/TSan, debugger, and native activation guards remain exact.
- Full units, focused compiler/frontend/VM, threadfuzz, and exact nonzero Test262 accounting pass with zero regressions.
- A conventional commit lands directly on main and cross-links #465, #498, #739, #729, and #737.