| Index: src/liveedit.cc
|
| diff --git a/src/liveedit.cc b/src/liveedit.cc
|
| index d802d0dd9d88978bcfaa56f696a660e2291ea12d..05bd550b65ed4d61f9cd9c980bab58ef76ef917e 100644
|
| --- a/src/liveedit.cc
|
| +++ b/src/liveedit.cc
|
| @@ -805,11 +805,17 @@ class FunctionInfoListener {
|
| };
|
|
|
|
|
| -Address LiveEdit::AfterBreakTarget(FrameDropMode mode, Isolate* isolate) {
|
| +void LiveEdit::InitializeThreadLocal(Debug* debug) {
|
| + debug->thread_local_.frame_drop_mode_ = LiveEdit::FRAMES_UNTOUCHED;
|
| +}
|
| +
|
| +
|
| +bool LiveEdit::SetAfterBreakTarget(Debug* debug) {
|
| Code* code = NULL;
|
| - switch (mode) {
|
| + Isolate* isolate = debug->isolate_;
|
| + switch (debug->thread_local_.frame_drop_mode_) {
|
| case FRAMES_UNTOUCHED:
|
| - break;
|
| + return false;
|
| case FRAME_DROPPED_IN_IC_CALL:
|
| // We must have been calling IC stub. Do not go there anymore.
|
| code = isolate->builtins()->builtin(Builtins::kPlainReturn_LiveEdit);
|
| @@ -821,7 +827,7 @@ Address LiveEdit::AfterBreakTarget(FrameDropMode mode, Isolate* isolate) {
|
| break;
|
| case FRAME_DROPPED_IN_DIRECT_CALL:
|
| // Nothing to do, after_break_target is not used here.
|
| - break;
|
| + return true;
|
| case FRAME_DROPPED_IN_RETURN_CALL:
|
| code = isolate->builtins()->builtin(Builtins::kFrameDropper_LiveEdit);
|
| break;
|
| @@ -829,8 +835,8 @@ Address LiveEdit::AfterBreakTarget(FrameDropMode mode, Isolate* isolate) {
|
| UNREACHABLE();
|
| break;
|
| }
|
| - if (code == NULL) return NULL;
|
| - return code->entry();
|
| + debug->after_break_target_ = code->entry();
|
| + return true;
|
| }
|
|
|
|
|
|
|