Index: src/interpreter/interpreter.cc |
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc |
index 574602b0ed833add1261b02595de049b1bb9c805..d1fb1b1711e5bfe53ed7837a82f28a350b2d45a8 100644 |
--- a/src/interpreter/interpreter.cc |
+++ b/src/interpreter/interpreter.cc |
@@ -1716,14 +1716,16 @@ void Interpreter::DoReturn(compiler::InterpreterAssembler* assembler) { |
// |cache_length| represent output parameters. |
void Interpreter::DoForInPrepare(compiler::InterpreterAssembler* assembler) { |
Node* object = __ GetAccumulator(); |
- Node* result = __ CallRuntime(Runtime::kInterpreterForInPrepare, object); |
+ Node* result_triple = __ CallRuntime(Runtime::kForInPrepare, object); |
+ |
+ // Set output registers: |
+ // 0 == cache_type, 1 == cache_array, 2 == cache_length |
for (int i = 0; i < 3; i++) { |
- // 0 == cache_type, 1 == cache_array, 2 == cache_length |
- Node* cache_info = __ LoadFixedArrayElement(result, i); |
+ Node* cache_info = __ Projection(i, result_triple); |
Node* cache_info_reg = __ BytecodeOperandReg(i); |
__ StoreRegister(cache_info, cache_info_reg); |
} |
- __ SetAccumulator(result); |
+ |
__ Dispatch(); |
} |