ladybird/Libraries/LibJS/Bytecode
Andreas Kling 5c881d1553 LibJS: Close iterators during array destructuring
Route abrupt completions from array destructuring target, default, and
store evaluation through IteratorClose when the iterator is still open.
Keep abrupt completions from iterator stepping itself on the existing
propagation path, matching the spec distinction used by other engines.

Also write back bytecode iterator done state when iterator abstract
operations mark the iterator as completed, so later close decisions see
the updated Iterator Record state. Add regression coverage for target,
default, iterator-next, and generator-return paths.
2026-05-22 01:56:57 +02:00
..
AsmInterpreter LibJS: Cache dynamic environment coordinates 2026-05-19 15:54:23 +02:00
BasicBlock.cpp LibJS: Stop worrying about Instruction destructors 2025-11-21 09:46:03 +01:00
BasicBlock.h LibJS: Drop source ranges from bytecode source maps 2026-05-14 09:41:03 +02:00
BuiltinAbstractOperationsEnabled.h LibJS: Introduce NativeJavaScriptBackedFunction 2025-11-30 11:54:54 +01:00
Builtins.h LibJS: Add a String.fromCharCode builtin opcode 2026-04-12 19:15:50 +02:00
Bytecode.def LibJS: Cache dynamic environment coordinates 2026-05-19 15:54:23 +02:00
ClassBlueprint.h LibJS+LibWeb: Keep cached script source text lazy 2026-05-18 09:18:35 +02:00
Debug.h LibJS: Move bytecode interpreter state to VM 2026-04-13 18:29:43 +02:00
Executable.cpp LibJS: Cache dynamic environment coordinates 2026-05-19 15:54:23 +02:00
Executable.h LibJS: Cache dynamic environment coordinates 2026-05-19 15:54:23 +02:00
FormatOperand.h LibJS: Stop persisting basic_block_start_offsets on Executable 2026-05-14 12:08:12 +02:00
IdentifierTable.cpp LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
IdentifierTable.h LibJS: Pre-size bytecode materialization tables 2026-05-19 11:32:50 +02:00
Instruction.cpp LibJS: Flatten Operand to 32-bit index in bytecode instruction stream 2025-12-09 21:44:13 -06:00
Instruction.h Meta: Reformat QtCreator file-listing script for readability 2026-02-23 13:10:03 +01:00
Interpreter.cpp LibJS: Close iterators during array destructuring 2026-05-22 01:56:57 +02:00
Label.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Label.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Operand.h AK: Add SentinelOptional 2026-03-20 12:03:36 +01:00
PropertyAccess.h LibJS: Reduce inline cache memory usage 2026-05-19 01:12:36 +02:00
PropertyKeyTable.cpp LibJS: Cache fully-formed PropertyKeys in Executable 2025-12-11 14:34:45 -06:00
PropertyKeyTable.h LibJS: Pre-size bytecode materialization tables 2026-05-19 11:32:50 +02:00
PropertyNameIterator.cpp LibJS: Account runtime storage as external memory 2026-05-07 10:03:09 +02:00
PropertyNameIterator.h LibJS: Account runtime storage as external memory 2026-05-07 10:03:09 +02:00
PutKind.h LibJS: Consolidate Put bytecode instructions and reduce code bloat 2026-03-04 18:53:12 +01:00
RegexTable.cpp LibRegex: Add ECMAScriptRegex and migrate callers 2026-03-27 17:32:19 +01:00
RegexTable.h LibJS: Account executable storage as external memory 2026-05-07 10:03:09 +02:00
Register.h LibJS: Replace implicit environment stack with explicit registers 2026-02-09 16:35:39 +01:00
StringTable.cpp LibJS+LibWeb: Port interned bytecode strings to UTF-16 2025-08-14 10:27:08 +02:00
StringTable.h LibJS: Pre-size bytecode materialization tables 2026-05-19 11:32:50 +02:00
Validator.cpp LibJS: Cache dynamic environment coordinates 2026-05-19 15:54:23 +02:00
Validator.h LibJS: Store bytecode cache indexes instead of pointers 2026-05-18 20:35:14 +02:00