| 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();
|
| }
|
|
|
|
|