Fix disable_break parameter
Review URL: http://codereview.chromium.org/552068 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
812eff2802
commit
b400427e10
@ -1704,7 +1704,7 @@ DebugCommandProcessor.prototype.evaluateRequest_ = function(request, response) {
|
||||
if (global) {
|
||||
// Evaluate in the global context.
|
||||
response.body =
|
||||
this.exec_state_.evaluateGlobal(expression), Boolean(disable_break);
|
||||
this.exec_state_.evaluateGlobal(expression, Boolean(disable_break));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -4264,7 +4264,12 @@ class BreakpointsV8Thread : public v8::internal::Thread {
|
||||
|
||||
class BreakpointsDebuggerThread : public v8::internal::Thread {
|
||||
public:
|
||||
BreakpointsDebuggerThread(bool global_evaluate)
|
||||
: global_evaluate_(global_evaluate) {}
|
||||
void Run();
|
||||
|
||||
private:
|
||||
bool global_evaluate_;
|
||||
};
|
||||
|
||||
|
||||
@ -4332,24 +4337,51 @@ void BreakpointsDebuggerThread::Run() {
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"setbreakpoint\","
|
||||
"\"arguments\":{\"type\":\"function\",\"target\":\"dog\",\"line\":3}}";
|
||||
const char* command_3 = "{\"seq\":103,"
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"evaluate\","
|
||||
"\"arguments\":{\"expression\":\"dog()\",\"disable_break\":false}}";
|
||||
const char* command_4 = "{\"seq\":104,"
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"evaluate\","
|
||||
"\"arguments\":{\"expression\":\"x + 1\",\"disable_break\":true}}";
|
||||
const char* command_3;
|
||||
if (this->global_evaluate_) {
|
||||
command_3 = "{\"seq\":103,"
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"evaluate\","
|
||||
"\"arguments\":{\"expression\":\"dog()\",\"disable_break\":false,"
|
||||
"\"global\":true}}";
|
||||
} else {
|
||||
command_3 = "{\"seq\":103,"
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"evaluate\","
|
||||
"\"arguments\":{\"expression\":\"dog()\",\"disable_break\":false}}";
|
||||
}
|
||||
const char* command_4;
|
||||
if (this->global_evaluate_) {
|
||||
command_4 = "{\"seq\":104,"
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"evaluate\","
|
||||
"\"arguments\":{\"expression\":\"100 + 8\",\"disable_break\":true,"
|
||||
"\"global\":true}}";
|
||||
} else {
|
||||
command_4 = "{\"seq\":104,"
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"evaluate\","
|
||||
"\"arguments\":{\"expression\":\"x + 1\",\"disable_break\":true}}";
|
||||
}
|
||||
const char* command_5 = "{\"seq\":105,"
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"continue\"}";
|
||||
const char* command_6 = "{\"seq\":106,"
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"continue\"}";
|
||||
const char* command_7 = "{\"seq\":107,"
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"evaluate\","
|
||||
"\"arguments\":{\"expression\":\"dog()\",\"disable_break\":true}}";
|
||||
const char* command_7;
|
||||
if (this->global_evaluate_) {
|
||||
command_7 = "{\"seq\":107,"
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"evaluate\","
|
||||
"\"arguments\":{\"expression\":\"dog()\",\"disable_break\":true,"
|
||||
"\"global\":true}}";
|
||||
} else {
|
||||
command_7 = "{\"seq\":107,"
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"evaluate\","
|
||||
"\"arguments\":{\"expression\":\"dog()\",\"disable_break\":true}}";
|
||||
}
|
||||
const char* command_8 = "{\"seq\":108,"
|
||||
"\"type\":\"request\","
|
||||
"\"command\":\"continue\"}";
|
||||
@ -4406,12 +4438,12 @@ void BreakpointsDebuggerThread::Run() {
|
||||
v8::Debug::SendCommand(buffer, AsciiToUtf16(command_8, buffer));
|
||||
}
|
||||
|
||||
BreakpointsDebuggerThread breakpoints_debugger_thread;
|
||||
BreakpointsV8Thread breakpoints_v8_thread;
|
||||
|
||||
TEST(RecursiveBreakpoints) {
|
||||
void TestRecursiveBreakpointsGeneric(bool global_evaluate) {
|
||||
i::FLAG_debugger_auto_break = true;
|
||||
|
||||
BreakpointsDebuggerThread breakpoints_debugger_thread(global_evaluate);
|
||||
BreakpointsV8Thread breakpoints_v8_thread;
|
||||
|
||||
// Create a V8 environment
|
||||
Barriers stack_allocated_breakpoints_barriers;
|
||||
stack_allocated_breakpoints_barriers.Initialize();
|
||||
@ -4424,6 +4456,14 @@ TEST(RecursiveBreakpoints) {
|
||||
breakpoints_debugger_thread.Join();
|
||||
}
|
||||
|
||||
TEST(RecursiveBreakpoints) {
|
||||
TestRecursiveBreakpointsGeneric(false);
|
||||
}
|
||||
|
||||
TEST(RecursiveBreakpointsGlobal) {
|
||||
TestRecursiveBreakpointsGeneric(true);
|
||||
}
|
||||
|
||||
|
||||
static void DummyDebugEventListener(v8::DebugEvent event,
|
||||
v8::Handle<v8::Object> exec_state,
|
||||
|
Loading…
Reference in New Issue
Block a user