| Index: src/frames.cc | 
| diff --git a/src/frames.cc b/src/frames.cc | 
| index 4cdfe39183c5252096f5a42bc07e4a1ae1502539..adf807a90a1c742137b808737fbb3fe1bd04b855 100644 | 
| --- a/src/frames.cc | 
| +++ b/src/frames.cc | 
| @@ -1152,22 +1152,25 @@ void InterpretedFrame::PatchBytecodeOffset(int new_offset) { | 
| SetExpression(index, Smi::FromInt(raw_offset)); | 
| } | 
|  | 
| -Object* InterpretedFrame::GetInterpreterRegister(int register_index) const { | 
| -  const int index = InterpreterFrameConstants::kRegisterFileExpressionIndex; | 
| -  DCHECK_EQ(InterpreterFrameConstants::kRegisterFilePointerFromFp, | 
| +Object* InterpretedFrame::GetBytecodeArray() const { | 
| +  const int index = InterpreterFrameConstants::kBytecodeArrayExpressionIndex; | 
| +  DCHECK_EQ(InterpreterFrameConstants::kBytecodeArrayFromFp, | 
| StandardFrameConstants::kExpressionsOffset - index * kPointerSize); | 
| -  return GetExpression(index + register_index); | 
| +  return GetExpression(index); | 
| } | 
|  | 
| -Address InterpretedFrame::GetDispatchTable() const { | 
| -  return Memory::Address_at( | 
| -      fp() + InterpreterFrameConstants::kDispatchTableFromFp); | 
| +void InterpretedFrame::PatchBytecodeArray(Object* bytecode_array) { | 
| +  const int index = InterpreterFrameConstants::kBytecodeArrayExpressionIndex; | 
| +  DCHECK_EQ(InterpreterFrameConstants::kBytecodeArrayFromFp, | 
| +            StandardFrameConstants::kExpressionsOffset - index * kPointerSize); | 
| +  SetExpression(index, bytecode_array); | 
| } | 
|  | 
| -void InterpretedFrame::PatchDispatchTable(Address dispatch_table) { | 
| -  Address* dispatch_table_address = reinterpret_cast<Address*>( | 
| -      fp() + InterpreterFrameConstants::kDispatchTableFromFp); | 
| -  *dispatch_table_address = dispatch_table; | 
| +Object* InterpretedFrame::GetInterpreterRegister(int register_index) const { | 
| +  const int index = InterpreterFrameConstants::kRegisterFileExpressionIndex; | 
| +  DCHECK_EQ(InterpreterFrameConstants::kRegisterFilePointerFromFp, | 
| +            StandardFrameConstants::kExpressionsOffset - index * kPointerSize); | 
| +  return GetExpression(index + register_index); | 
| } | 
|  | 
| void InterpretedFrame::Summarize(List<FrameSummary>* functions) { | 
| @@ -1421,23 +1424,6 @@ void JavaScriptFrame::Iterate(ObjectVisitor* v) const { | 
| IteratePc(v, pc_address(), constant_pool_address(), LookupCode()); | 
| } | 
|  | 
| -void InterpretedFrame::Iterate(ObjectVisitor* v) const { | 
| -  // Visit tagged pointers in the fixed frame. | 
| -  Object** fixed_frame_base = | 
| -      &Memory::Object_at(fp() + InterpreterFrameConstants::kNewTargetFromFp); | 
| -  Object** fixed_frame_limit = | 
| -      &Memory::Object_at(fp() + StandardFrameConstants::kLastObjectOffset) + 1; | 
| -  v->VisitPointers(fixed_frame_base, fixed_frame_limit); | 
| - | 
| -  // Visit the expressions. | 
| -  Object** expression_base = &Memory::Object_at(sp()); | 
| -  Object** expression_limit = &Memory::Object_at( | 
| -      fp() + InterpreterFrameConstants::kBytecodeOffsetFromFp) + 1; | 
| -  v->VisitPointers(expression_base, expression_limit); | 
| - | 
| -  IteratePc(v, pc_address(), constant_pool_address(), LookupCode()); | 
| -} | 
| - | 
| void InternalFrame::Iterate(ObjectVisitor* v) const { | 
| // Internal frames only have object pointers on the expression stack | 
| // as they never have any arguments. | 
|  |