diff options
Diffstat (limited to 'deps/v8/src/ia32/frames-ia32.cc')
-rw-r--r-- | deps/v8/src/ia32/frames-ia32.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/deps/v8/src/ia32/frames-ia32.cc b/deps/v8/src/ia32/frames-ia32.cc index 5c900bedd7..dea439f24b 100644 --- a/deps/v8/src/ia32/frames-ia32.cc +++ b/deps/v8/src/ia32/frames-ia32.cc @@ -56,14 +56,19 @@ StackFrame::Type ExitFrame::GetStateForFramePointer(Address fp, State* state) { state->fp = fp; state->sp = sp; state->pc_address = reinterpret_cast<Address*>(sp - 1 * kPointerSize); - return EXIT; + // Determine frame type. + if (Memory::Address_at(fp + ExitFrameConstants::kDebugMarkOffset) != 0) { + return EXIT_DEBUG; + } else { + return EXIT; + } } void ExitFrame::Iterate(ObjectVisitor* v) const { - v->VisitPointer(&code_slot()); - // The arguments are traversed as part of the expression stack of - // the calling frame. + // Exit frames on IA-32 do not contain any pointers. The arguments + // are traversed as part of the expression stack of the calling + // frame. } |