Index: src/debug.cc |
diff --git a/src/debug.cc b/src/debug.cc |
index 2058d48b71e431bf9a89816dbfc47bcf755f11d5..c632378997fcfc0d690757a21fe9a2ac67c45045 100644 |
--- a/src/debug.cc |
+++ b/src/debug.cc |
@@ -1,4 +1,4 @@ |
-// Copyright 2011 the V8 project authors. All rights reserved. |
+// Copyright 2012 the V8 project authors. All rights reserved. |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
// met: |
@@ -3234,6 +3234,12 @@ EnterDebugger::~EnterDebugger() { |
debug->set_interrupts_pending(DEBUGBREAK); |
isolate_->stack_guard()->Continue(DEBUGBREAK); |
} |
+ // If there is a pending termination request, we don't want to deal |
+ // with that now, either. |
+ if (isolate_->stack_guard()->IsTerminateExecution()) { |
+ debug->set_interrupts_pending(TERMINATE); |
+ isolate_->stack_guard()->Continue(TERMINATE); |
+ } |
debug->ClearMirrorCache(); |
} |
@@ -3249,6 +3255,10 @@ EnterDebugger::~EnterDebugger() { |
debug->clear_interrupt_pending(DEBUGBREAK); |
isolate_->stack_guard()->DebugBreak(); |
} |
+ if (debug->is_interrupt_pending(TERMINATE)) { |
+ debug->clear_interrupt_pending(TERMINATE); |
+ isolate_->stack_guard()->TerminateExecution(); |
+ } |
// If there are commands in the queue when leaving the debugger request |
// that these commands are processed. |