| Index: src/liveedit.cc
|
| diff --git a/src/liveedit.cc b/src/liveedit.cc
|
| index 7f6455443ef5a506ea2f665b84230782e8df80ee..80e18bbbff9a9274e04f6fdd628aa671d414516b 100644
|
| --- a/src/liveedit.cc
|
| +++ b/src/liveedit.cc
|
| @@ -1468,7 +1468,9 @@ static const char* DropFrames(Vector<StackFrame*> frames,
|
| isolate->builtins()->builtin(
|
| Builtins::kFrameDropper_LiveEdit)) {
|
| // OK, we can drop our own code.
|
| - *mode = Debug::FRAME_DROPPED_IN_DIRECT_CALL;
|
| + pre_top_frame = frames[top_frame_index - 2];
|
| + top_frame = frames[top_frame_index - 1];
|
| + *mode = Debug::CURRENTLY_SET_MODE;
|
| frame_has_padding = false;
|
| } else if (pre_top_frame_code ==
|
| isolate->builtins()->builtin(Builtins::kReturn_DebugBreak)) {
|
| @@ -1483,6 +1485,15 @@ static const char* DropFrames(Vector<StackFrame*> frames,
|
| // Here the stub is CEntry, it's not debug-only and can't be padded.
|
| // If anyone would complain, a proxy padded stub could be added.
|
| frame_has_padding = false;
|
| + } else if (pre_top_frame->type() == StackFrame::ARGUMENTS_ADAPTOR) {
|
| + // This must be adaptor that remain from the frame dropping that
|
| + // is still on stack. A frame dropper frame must be above it.
|
| + ASSERT(frames[top_frame_index - 2]->LookupCode() ==
|
| + isolate->builtins()->builtin(Builtins::kFrameDropper_LiveEdit));
|
| + pre_top_frame = frames[top_frame_index - 3];
|
| + top_frame = frames[top_frame_index - 2];
|
| + *mode = Debug::CURRENTLY_SET_MODE;
|
| + frame_has_padding = false;
|
| } else {
|
| return "Unknown structure of stack above changing function";
|
| }
|
|
|