ladybird/Userland/Libraries/LibJS/Bytecode
Luke Wilde c153d1779e LibJS/Bytecode: End the for variable scope at the start of its end block
If the for loop's body is not block terminated, we will generate a Jump
to the end block which will block terminate the body. Then, we ended
the lexical variable scope if needed. However, since the body is now
block terminated, the "LeaveLexicalEnvironment" instruction that is
generated by end_variable_scope is now dropped on the floor.

This fixes this by moving it to the beginning of the end block.
2022-06-30 15:59:55 +01:00
..
Pass LibJS/Bytecode: Replace merged block references before copying them 2022-03-14 22:28:53 +01:00
ASTCodegen.cpp LibJS/Bytecode: End the for variable scope at the start of its end block 2022-06-30 15:59:55 +01:00
BasicBlock.cpp LibJS: Always inline the bytecode instruction iterator's operator++ 2021-10-25 13:37:02 +02:00
BasicBlock.h LibJS: Always inline the bytecode instruction iterator's operator++ 2021-10-25 13:37:02 +02:00
CodeGenerationError.h LibJS: Make ASTNode::generate_bytecode() fallible 2022-02-13 14:41:33 +00:00
Executable.cpp LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
Executable.h LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
Generator.cpp LibJS/Bytecode: Implement break/continue labels 2022-06-13 07:13:03 +04:30
Generator.h LibJS/Bytecode: Implement break/continue labels 2022-06-13 07:13:03 +04:30
IdentifierTable.cpp LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
IdentifierTable.h LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
Instruction.cpp LibJS: Move Instruction::length() to the Op.h header 2021-06-09 09:24:32 +02:00
Instruction.h LibJS/Bytecode: Make typeof return "undefined" on unresolvable IDs 2022-06-13 07:13:03 +04:30
Interpreter.cpp LibJS: Avoid copying the frame into the interpreter in BC generators 2022-04-18 23:59:30 +04:30
Interpreter.h LibJS: Avoid copying the frame into the interpreter in BC generators 2022-04-18 23:59:30 +04:30
Label.h AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
Op.cpp LibJS/Bytecode: Pass contains_direct_call_to_eval into ESFO::create 2022-06-13 07:13:03 +04:30
Op.h LibJS/Bytecode: Make typeof return "undefined" on unresolvable IDs 2022-06-13 07:13:03 +04:30
PassManager.h LibJS: Add a basic pass manager and add some basic passes 2021-06-15 22:06:33 +04:30
Register.h AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
StringTable.cpp LibJS: Use String and move semantics in Bytecode::StringTable 2021-10-24 17:18:07 +02:00
StringTable.h LibJS: Use String and move semantics in Bytecode::StringTable 2021-10-24 17:18:07 +02:00