Index: src/interpreter/interpreter.cc |
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc |
index 01e80583599c631276e5ae2f64d59c316cfa3c1c..355a2054acb1e631390b097ae6589bcd63fa1469 100644 |
--- a/src/interpreter/interpreter.cc |
+++ b/src/interpreter/interpreter.cc |
@@ -1698,14 +1698,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(); |
} |