| 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;
|
|
|