Index: src/debug/debug.cc |
diff --git a/src/debug/debug.cc b/src/debug/debug.cc |
index 214d72e7c27abd486a994b5f33b7f7149d29071a..09fe2fb90a3859983d643f66e2cc5754ed783420 100644 |
--- a/src/debug/debug.cc |
+++ b/src/debug/debug.cc |
@@ -477,7 +477,6 @@ void Debug::ThreadInit() { |
thread_local_.last_statement_position_ = RelocInfo::kNoPosition; |
thread_local_.last_fp_ = 0; |
thread_local_.target_fp_ = 0; |
- thread_local_.step_in_enabled_ = false; |
thread_local_.return_value_ = Handle<Object>(); |
clear_suspended_generator(); |
// TODO(isolates): frames_are_dropped_? |
@@ -932,20 +931,17 @@ bool Debug::IsBreakOnException(ExceptionBreakType type) { |
void Debug::PrepareStepIn(Handle<JSFunction> function) { |
+ CHECK(last_step_action() >= StepIn); |
if (!is_active()) return; |
- if (last_step_action() < StepIn) return; |
if (in_debug_scope()) return; |
- if (thread_local_.step_in_enabled_) { |
- FloodWithOneShot(function); |
- } |
+ FloodWithOneShot(function); |
} |
void Debug::PrepareStepInSuspendedGenerator() { |
+ CHECK(has_suspended_generator()); |
if (!is_active()) return; |
if (in_debug_scope()) return; |
- DCHECK(has_suspended_generator()); |
thread_local_.last_step_action_ = StepIn; |
- thread_local_.step_in_enabled_ = true; |
Handle<JSFunction> function( |
JSGeneratorObject::cast(thread_local_.suspended_generator_)->function()); |
FloodWithOneShot(function); |
@@ -1005,10 +1001,7 @@ 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 the function on the top frame is unresolved perform step out. This will |
// be the case when calling unknown function and having the debugger stopped |
@@ -1070,11 +1063,7 @@ void Debug::PrepareStep(StepAction step_action) { |
Deoptimizer::DeoptimizeFunction(frames_it.frame()->function()); |
frames_it.Advance(); |
} |
- if (frames_it.done()) { |
- // Stepping out to the embedder. Disable step-in to avoid stepping into |
- // the next (unrelated) call that the embedder makes. |
- thread_local_.step_in_enabled_ = false; |
- } else { |
+ if (!frames_it.done()) { |
// Fill the caller function to return to with one-shot break points. |
Handle<JSFunction> caller_function(frames_it.frame()->function()); |
FloodWithOneShot(caller_function); |
@@ -1142,7 +1131,6 @@ void Debug::ClearStepping() { |
ClearOneShot(); |
thread_local_.last_step_action_ = StepNone; |
- thread_local_.step_in_enabled_ = false; |
thread_local_.last_statement_position_ = RelocInfo::kNoPosition; |
thread_local_.last_fp_ = 0; |
thread_local_.target_fp_ = 0; |
@@ -1167,12 +1155,6 @@ void Debug::ClearOneShot() { |
} |
-void Debug::EnableStepIn() { |
- STATIC_ASSERT(StepFrame > StepIn); |
- thread_local_.step_in_enabled_ = (last_step_action() >= StepIn); |
-} |
- |
- |
bool MatchingCodeTargets(Code* target1, Code* target2) { |
if (target1 == target2) return true; |
if (target1->kind() != target2->kind()) return false; |