Index: src/interpreter/bytecode-generator.cc |
diff --git a/src/interpreter/bytecode-generator.cc b/src/interpreter/bytecode-generator.cc |
index 57f54f3ef9aadc38bddf8a848db717314bb149fe..2b5b4ef828409d8bd28717a5a9186cb4134e2d46 100644 |
--- a/src/interpreter/bytecode-generator.cc |
+++ b/src/interpreter/bytecode-generator.cc |
@@ -3231,19 +3231,10 @@ void BytecodeGenerator::VisitNewLocalCatchContext(Variable* variable) { |
AccumulatorResultScope accumulator_execution_result(this); |
DCHECK(variable->IsContextSlot()); |
- // Allocate a new local block context. |
- register_allocator()->PrepareForConsecutiveAllocations(3); |
- Register name = register_allocator()->NextConsecutiveRegister(); |
- Register exception = register_allocator()->NextConsecutiveRegister(); |
- Register closure = register_allocator()->NextConsecutiveRegister(); |
- |
- builder() |
- ->StoreAccumulatorInRegister(exception) |
- .LoadLiteral(variable->name()) |
- .StoreAccumulatorInRegister(name); |
+ Register exception = register_allocator()->NewRegister(); |
+ builder()->StoreAccumulatorInRegister(exception); |
VisitFunctionClosureForContext(); |
- builder()->StoreAccumulatorInRegister(closure).CallRuntime( |
- Runtime::kPushCatchContext, name, 3); |
+ builder()->CreateCatchContext(exception, variable->name()); |
execution_result()->SetResultInAccumulator(); |
} |