| Index: src/debug/debug.cc | 
| diff --git a/src/debug/debug.cc b/src/debug/debug.cc | 
| index 9bb27516e825327f6f28f6c9b3193ecd35a16903..d3f3b905151a02ab82f5d626353ad30b487522db 100644 | 
| --- a/src/debug/debug.cc | 
| +++ b/src/debug/debug.cc | 
| @@ -336,6 +336,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; | 
| } | 
|  | 
|  | 
| @@ -928,6 +929,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 | 
| @@ -1510,11 +1522,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; | 
| } | 
|  | 
|  | 
|  |