Index: src/interpreter/interpreter.cc |
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc |
index b515c7bb974ebac7be204a3c7a0d39fab603cdd9..0b2aa77a050a4de5c3d9f4b1d28e7d5a53184717 100644 |
--- a/src/interpreter/interpreter.cc |
+++ b/src/interpreter/interpreter.cc |
@@ -1746,11 +1746,12 @@ void Interpreter::DoSuspendGenerator(InterpreterAssembler* assembler) { |
Node* generator_reg = __ BytecodeOperandReg(0); |
Node* generator = __ LoadRegister(generator_reg); |
- Node* array = __ ExportRegisterFile(); |
+ Node* array = |
+ __ LoadObjectField(generator, JSGeneratorObject::kOperandStackOffset); |
Node* context = __ GetContext(); |
Node* state = __ GetAccumulator(); |
- __ StoreObjectField(generator, JSGeneratorObject::kOperandStackOffset, array); |
+ __ ExportRegisterFile(array); |
__ StoreObjectField(generator, JSGeneratorObject::kContextOffset, context); |
__ StoreObjectField(generator, JSGeneratorObject::kContinuationOffset, state); |
@@ -1768,8 +1769,6 @@ void Interpreter::DoResumeGenerator(InterpreterAssembler* assembler) { |
__ ImportRegisterFile( |
__ LoadObjectField(generator, JSGeneratorObject::kOperandStackOffset)); |
- __ StoreObjectField(generator, JSGeneratorObject::kOperandStackOffset, |
- __ HeapConstant(isolate_->factory()->empty_fixed_array())); |
Node* old_state = |
__ LoadObjectField(generator, JSGeneratorObject::kContinuationOffset); |