| Index: src/debug.cc
|
| diff --git a/src/debug.cc b/src/debug.cc
|
| index 2ef40c4edbdc581c2e8877db64859e39b89029af..3866a1e97886c99cd3e0e9b5da7bb1b212c852d0 100644
|
| --- a/src/debug.cc
|
| +++ b/src/debug.cc
|
| @@ -3089,8 +3089,19 @@ void Debug::HandleDebugBreak() {
|
| bool debug_command_only = isolate_->stack_guard()->CheckDebugCommand() &&
|
| !isolate_->stack_guard()->CheckDebugBreak();
|
|
|
| + bool is_debugger_statement = !isolate_->stack_guard()->CheckDebugCommand() &&
|
| + !isolate_->stack_guard()->CheckDebugBreak();
|
| +
|
| isolate_->stack_guard()->ClearDebugBreak();
|
|
|
| + if (is_debugger_statement) {
|
| + // If we have been called via 'debugger' Javascript statement,
|
| + // we might not be prepared for breakpoints.
|
| + // TODO(dslomov,yangguo): CheckDebugBreak may race with RequestDebugBreak.
|
| + // Revisit this to clean-up.
|
| + HandleScope handle_scope(isolate_);
|
| + PrepareForBreakPoints();
|
| + }
|
| ProcessDebugMessages(debug_command_only);
|
| }
|
|
|
|
|