| Index: src/debug/debug.cc | 
| diff --git a/src/debug/debug.cc b/src/debug/debug.cc | 
| index d3f3b905151a02ab82f5d626353ad30b487522db..5f623f6b26aa11a1e5405a981ae60f2d17737947 100644 | 
| --- a/src/debug/debug.cc | 
| +++ b/src/debug/debug.cc | 
| @@ -336,7 +336,6 @@ void Debug::ThreadInit() { | 
| // 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; | 
| } | 
|  | 
|  | 
| @@ -828,18 +827,6 @@ void Debug::PrepareStep(StepAction step_action, | 
|  | 
| DCHECK(in_debug_scope()); | 
|  | 
| -  // Remember this step action and count. | 
| -  thread_local_.last_step_action_ = step_action; | 
| -  STATIC_ASSERT(StepFrame > StepIn); | 
| -  thread_local_.step_in_enabled_ = (step_action >= StepIn); | 
| -  if (step_action == StepOut) { | 
| -    // For step out target frame will be found on the stack so there is no need | 
| -    // to set step counter for it. It's expected to always be 0 for StepOut. | 
| -    thread_local_.step_count_ = 0; | 
| -  } else { | 
| -    thread_local_.step_count_ = step_count; | 
| -  } | 
| - | 
| // Get the frame where the execution has stopped and skip the debug frame if | 
| // any. The debug frame will only be present if execution was stopped due to | 
| // hitting a break point. In other situations (e.g. unhandled exception) the | 
| @@ -857,6 +844,18 @@ void Debug::PrepareStep(StepAction step_action, | 
|  | 
| feature_tracker()->Track(DebugFeatureTracker::kStepping); | 
|  | 
| +  // Remember this step action and count. | 
| +  thread_local_.last_step_action_ = step_action; | 
| +  STATIC_ASSERT(StepFrame > StepIn); | 
| +  thread_local_.step_in_enabled_ = (step_action >= StepIn); | 
| +  if (step_action == StepOut) { | 
| +    // For step out target frame will be found on the stack so there is no need | 
| +    // to set step counter for it. It's expected to always be 0 for StepOut. | 
| +    thread_local_.step_count_ = 0; | 
| +  } else { | 
| +    thread_local_.step_count_ = step_count; | 
| +  } | 
| + | 
| // First of all ensure there is one-shot break points in the top handler | 
| // if any. | 
| FloodHandlerWithOneShot(); | 
| @@ -931,17 +930,6 @@ void Debug::PrepareStep(StepAction step_action, | 
| 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 | 
| // a call target as the function called might be a native function for | 
| // which step in will not stop. It also prepares for stepping in | 
| @@ -1049,6 +1037,7 @@ void Debug::ClearStepping() { | 
|  | 
| thread_local_.step_count_ = 0; | 
| thread_local_.last_step_action_ = StepNone; | 
| +  thread_local_.step_in_enabled_ = false; | 
| thread_local_.last_statement_position_ = RelocInfo::kNoPosition; | 
| thread_local_.last_fp_ = 0; | 
| } | 
| @@ -1522,14 +1511,11 @@ bool Debug::IsBreakAtReturn(JavaScriptFrame* frame) { | 
|  | 
|  | 
| void Debug::FramesHaveBeenDropped(StackFrame::Id new_break_frame_id, | 
| -                                  LiveEdit::FrameDropMode mode, | 
| -                                  Object** restarter_frame_function_pointer) { | 
| +                                  LiveEdit::FrameDropMode mode) { | 
| 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; | 
| } | 
|  | 
|  | 
|  |