ladybird/Libraries/LibJS/Bytecode/AsmInterpreter
Andreas Kling e5d4c5cce8 LibJS: Check TDZ state in asm environment calls
GetCalleeAndThisFromEnvironment treated a binding as initialized when
its value slot was not <empty>. Declarative bindings do not encode TDZ
in that slot, though: uninitialized bindings keep a separate initialized
flag and their value starts as undefined.

That let the first slow-path TDZ failure populate the environment cache,
then a second call at the same site reused the cached coordinate and
turned the required ReferenceError into a TypeError from calling
undefined.

Check Binding.initialized in the asm fast path instead and cover the
cached second-hit case with a regression test.
2026-04-20 11:23:34 +02:00
..
asmint.asm LibJS: Check TDZ state in asm environment calls 2026-04-20 11:23:34 +02:00
AsmInterpreter.cpp LibJS: Call RawNativeFunction directly from asm Call 2026-04-15 15:57:48 +02:00
AsmInterpreter.h LibJS: Move bytecode interpreter state to VM 2026-04-13 18:29:43 +02:00
gen_asm_offsets.cpp LibJS: Call RawNativeFunction directly from asm Call 2026-04-15 15:57:48 +02:00