ladybird/Userland/Libraries/LibJS/Bytecode
Luke 597e0d95fe LibJS: Only set element in array literal to an empty value if it's null
This avoids an unnecessary empty load that immediately gets overridden.

For example, `[1,,]` would appear as:
[   0] EnterScope
[  10] LoadImmediate value:<empty>
[  28] LoadImmediate value:1
[  40] Store dst:$1
[  48] LoadImmediate value:<empty>
[  60] Store dst:$2
[  68] NewArray, elements:[$1,$2]

But now appears as:
[   0] EnterScope
[  10] LoadImmediate value:1
[  28] Store dst:$1
[  30] LoadImmediate value:<empty>
[  48] Store dst:$2
[  50] NewArray, elements:[$1,$2]
2021-06-09 09:14:40 +02:00
..
ASTCodegen.cpp LibJS: Only set element in array literal to an empty value if it's null 2021-06-09 09:14:40 +02:00
BasicBlock.cpp LibJS: Generate bytecode in basic blocks instead of one big block 2021-06-09 09:07:29 +02:00
BasicBlock.h LibJS: Generate bytecode in basic blocks instead of one big block 2021-06-09 09:07:29 +02:00
Generator.cpp LibJS: Generate bytecode in basic blocks instead of one big block 2021-06-09 09:07:29 +02:00
Generator.h LibJS: Generate bytecode in basic blocks instead of one big block 2021-06-09 09:07:29 +02:00
Instruction.cpp LibJS: Generate bytecode for array expressions 2021-06-09 01:27:18 +02:00
Instruction.h LibJS: Generate bytecode in basic blocks instead of one big block 2021-06-09 09:07:29 +02:00
Interpreter.cpp LibJS: Generate bytecode in basic blocks instead of one big block 2021-06-09 09:07:29 +02:00
Interpreter.h LibJS: Generate bytecode in basic blocks instead of one big block 2021-06-09 09:07:29 +02:00
Label.h LibJS: Generate bytecode in basic blocks instead of one big block 2021-06-09 09:07:29 +02:00
Op.cpp LibJS: Generate bytecode in basic blocks instead of one big block 2021-06-09 09:07:29 +02:00
Op.h LibJS: Generate bytecode in basic blocks instead of one big block 2021-06-09 09:07:29 +02:00
Register.h LibJS: Introduce an accumulator register to Bytecode::Interpreter 2021-06-08 21:00:12 +02:00