Index: src/frames.cc |
diff --git a/src/frames.cc b/src/frames.cc |
index 3df27632328c1146683b1eab301b40ece035299d..71904789910e1aea454da30784f92aad89115ba8 100644 |
--- a/src/frames.cc |
+++ b/src/frames.cc |
@@ -404,11 +404,15 @@ void StackFrame::SetReturnAddressLocationResolver( |
static bool IsInterpreterFramePc(Isolate* isolate, Address pc) { |
Code* interpreter_entry_trampoline = |
isolate->builtins()->builtin(Builtins::kInterpreterEntryTrampoline); |
+ Code* interpreter_bytecode_advance = |
+ isolate->builtins()->builtin(Builtins::kInterpreterEnterBytecodeAdvance); |
Code* interpreter_bytecode_dispatch = |
isolate->builtins()->builtin(Builtins::kInterpreterEnterBytecodeDispatch); |
return (pc >= interpreter_entry_trampoline->instruction_start() && |
pc < interpreter_entry_trampoline->instruction_end()) || |
+ (pc >= interpreter_bytecode_advance->instruction_start() && |
+ pc < interpreter_bytecode_advance->instruction_end()) || |
(pc >= interpreter_bytecode_dispatch->instruction_start() && |
pc < interpreter_bytecode_dispatch->instruction_end()); |
} |
@@ -1219,9 +1223,7 @@ void OptimizedFrame::Summarize(List<FrameSummary>* frames, |
abstract_code = AbstractCode::cast(code); |
} else { |
DCHECK_EQ(frame_opcode, Translation::INTERPRETED_FRAME); |
- // BailoutId points to the next bytecode in the bytecode aray. Subtract |
- // 1 to get the end of current bytecode. |
- code_offset = bailout_id.ToInt() - 1; |
+ code_offset = bailout_id.ToInt(); // Points to current bytecode. |
abstract_code = AbstractCode::cast(shared_info->bytecode_array()); |
} |
FrameSummary summary(receiver, function, abstract_code, code_offset, |