| Index: src/debug/debug.cc
|
| diff --git a/src/debug/debug.cc b/src/debug/debug.cc
|
| index 1cdaf56741383cc3cb4b92021538c6390b1685ae..55b4a839e23478e3d7288b6fd5c616b2caca62a4 100644
|
| --- a/src/debug/debug.cc
|
| +++ b/src/debug/debug.cc
|
| @@ -342,6 +342,7 @@
|
| // TODO(isolates): frames_are_dropped_?
|
| base::NoBarrier_Store(&thread_local_.current_debug_scope_,
|
| static_cast<base::AtomicWord>(0));
|
| + thread_local_.restarter_frame_function_pointer_ = NULL;
|
| }
|
|
|
|
|
| @@ -934,6 +935,17 @@
|
| thread_local_.step_in_enabled_ = false;
|
| }
|
| return;
|
| + }
|
| +
|
| + STATIC_ASSERT(StepFrame > StepIn);
|
| + if (step_action >= StepIn) {
|
| + // If there's restarter frame on top of the stack, just get the pointer
|
| + // to function which is going to be restarted.
|
| + if (thread_local_.restarter_frame_function_pointer_ != NULL) {
|
| + Handle<JSFunction> restarted_function(
|
| + JSFunction::cast(*thread_local_.restarter_frame_function_pointer_));
|
| + FloodWithOneShot(restarted_function);
|
| + }
|
| }
|
|
|
| // Fill the current function with one-shot break points even for step in on
|
| @@ -1516,11 +1528,14 @@
|
|
|
|
|
| void Debug::FramesHaveBeenDropped(StackFrame::Id new_break_frame_id,
|
| - LiveEdit::FrameDropMode mode) {
|
| + LiveEdit::FrameDropMode mode,
|
| + Object** restarter_frame_function_pointer) {
|
| if (mode != LiveEdit::CURRENTLY_SET_MODE) {
|
| thread_local_.frame_drop_mode_ = mode;
|
| }
|
| thread_local_.break_frame_id_ = new_break_frame_id;
|
| + thread_local_.restarter_frame_function_pointer_ =
|
| + restarter_frame_function_pointer;
|
| }
|
|
|
|
|
|
|