Browse Source

LibJS/Bytecode: Fix register being freed too early in `delete` codegen

It wasn't actually possible for it to get reused incorrectly here, but
let's fix the bug anyway.
Andreas Kling 1 year ago
parent
commit
01ec56f1ed
1 changed files with 1 additions and 1 deletions
  1. 1 1
      Userland/Libraries/LibJS/Bytecode/Generator.cpp

+ 1 - 1
Userland/Libraries/LibJS/Bytecode/Generator.cpp

@@ -528,7 +528,7 @@ CodeGenerationErrorOr<Optional<ScopedOperand>> Generator::emit_delete_reference(
         if (is<SuperExpression>(expression.object())) {
         if (is<SuperExpression>(expression.object())) {
             auto super_reference = TRY(emit_super_reference(expression));
             auto super_reference = TRY(emit_super_reference(expression));
 
 
-            auto dst = Operand(allocate_register());
+            auto dst = allocate_register();
             if (super_reference.referenced_name.has_value()) {
             if (super_reference.referenced_name.has_value()) {
                 emit<Bytecode::Op::DeleteByValueWithThis>(dst, *super_reference.base, *super_reference.this_value, *super_reference.referenced_name);
                 emit<Bytecode::Op::DeleteByValueWithThis>(dst, *super_reference.base, *super_reference.this_value, *super_reference.referenced_name);
             } else {
             } else {