Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2007-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2007-2008 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 2057 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2068 // Call f and check that there are still no break points. | 2068 // Call f and check that there are still no break points. |
| 2069 break_point_hit_count = 0; | 2069 break_point_hit_count = 0; |
| 2070 f = v8::Local<v8::Function>::Cast(env->Global()->Get(v8::String::New("f"))); | 2070 f = v8::Local<v8::Function>::Cast(env->Global()->Get(v8::String::New("f"))); |
| 2071 CHECK_EQ(0, break_point_hit_count); | 2071 CHECK_EQ(0, break_point_hit_count); |
| 2072 | 2072 |
| 2073 v8::Debug::SetDebugEventListener(NULL); | 2073 v8::Debug::SetDebugEventListener(NULL); |
| 2074 CheckDebuggerUnloaded(); | 2074 CheckDebuggerUnloaded(); |
| 2075 } | 2075 } |
| 2076 | 2076 |
| 2077 | 2077 |
| 2078 // Test that it is possible to add and remove break points in a top level | |
| 2079 // function which is already a garbage but is not collected so far. | |
|
Søren Thygesen Gjesse
2010/06/30 11:52:23
is already a garbage but is not collected so far->
| |
| 2080 TEST(ScriptBreakPointTopLevelCrash) { | |
| 2081 v8::HandleScope scope; | |
| 2082 DebugLocalContext env; | |
| 2083 env.ExposeDebug(); | |
| 2084 | |
| 2085 v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount, | |
| 2086 v8::Undefined()); | |
| 2087 | |
| 2088 v8::Local<v8::String> script_source = v8::String::New( | |
| 2089 "function f() {\n" | |
| 2090 " return 0;\n" | |
| 2091 "}\n" | |
| 2092 "f()"); | |
| 2093 | |
| 2094 int sbp1 = SetScriptBreakPointByNameFromJS("test.html", 3, -1); | |
| 2095 { | |
| 2096 v8::HandleScope scope; | |
| 2097 break_point_hit_count = 0; | |
| 2098 v8::Script::Compile(script_source, v8::String::New("test.html"))->Run(); | |
| 2099 CHECK_EQ(1, break_point_hit_count); | |
| 2100 } | |
| 2101 | |
| 2102 int sbp2 = SetScriptBreakPointByNameFromJS("test.html", 3, -1); | |
| 2103 ClearBreakPointFromJS(sbp1); | |
| 2104 ClearBreakPointFromJS(sbp2); | |
| 2105 | |
| 2106 v8::Debug::SetDebugEventListener(NULL); | |
| 2107 CheckDebuggerUnloaded(); | |
| 2108 } | |
| 2109 | |
| 2110 | |
| 2078 // Test that it is possible to remove the last break point for a function | 2111 // Test that it is possible to remove the last break point for a function |
| 2079 // inside the break handling of that break point. | 2112 // inside the break handling of that break point. |
| 2080 TEST(RemoveBreakPointInBreak) { | 2113 TEST(RemoveBreakPointInBreak) { |
| 2081 v8::HandleScope scope; | 2114 v8::HandleScope scope; |
| 2082 DebugLocalContext env; | 2115 DebugLocalContext env; |
| 2083 | 2116 |
| 2084 v8::Local<v8::Function> foo = | 2117 v8::Local<v8::Function> foo = |
| 2085 CompileFunction(&env, "function foo(){a=1;}", "foo"); | 2118 CompileFunction(&env, "function foo(){a=1;}", "foo"); |
| 2086 debug_event_remove_break_point = SetBreakPoint(foo, 0); | 2119 debug_event_remove_break_point = SetBreakPoint(foo, 0); |
| 2087 | 2120 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2122 | 2155 |
| 2123 // Run function with two debugger statement | 2156 // Run function with two debugger statement |
| 2124 foo->Call(env->Global(), 0, NULL); | 2157 foo->Call(env->Global(), 0, NULL); |
| 2125 CHECK_EQ(3, break_point_hit_count); | 2158 CHECK_EQ(3, break_point_hit_count); |
| 2126 | 2159 |
| 2127 v8::Debug::SetDebugEventListener(NULL); | 2160 v8::Debug::SetDebugEventListener(NULL); |
| 2128 CheckDebuggerUnloaded(); | 2161 CheckDebuggerUnloaded(); |
| 2129 } | 2162 } |
| 2130 | 2163 |
| 2131 | 2164 |
| 2132 // Test setting a breakpoint on the debugger statement. | 2165 // Test setting a breakpoint on the debugger statement. |
| 2133 TEST(DebuggerStatementBreakpoint) { | 2166 TEST(DebuggerStatementBreakpoint) { |
| 2134 break_point_hit_count = 0; | 2167 break_point_hit_count = 0; |
| 2135 v8::HandleScope scope; | 2168 v8::HandleScope scope; |
| 2136 DebugLocalContext env; | 2169 DebugLocalContext env; |
| 2137 v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount, | 2170 v8::Debug::SetDebugEventListener(DebugEventBreakPointHitCount, |
| 2138 v8::Undefined()); | 2171 v8::Undefined()); |
| 2139 v8::Script::Compile(v8::String::New("function foo(){debugger;}"))->Run(); | 2172 v8::Script::Compile(v8::String::New("function foo(){debugger;}"))->Run(); |
| 2140 v8::Local<v8::Function> foo = | 2173 v8::Local<v8::Function> foo = |
| 2141 v8::Local<v8::Function>::Cast(env->Global()->Get(v8::String::New("foo"))); | 2174 v8::Local<v8::Function>::Cast(env->Global()->Get(v8::String::New("foo"))); |
| 2142 | 2175 |
| (...skipping 4468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6611 v8::Context::Scope context_scope(expected_context); | 6644 v8::Context::Scope context_scope(expected_context); |
| 6612 v8::Script::Compile(v8::String::New("(function(){debugger;})();"))->Run(); | 6645 v8::Script::Compile(v8::String::New("(function(){debugger;})();"))->Run(); |
| 6613 expected_context.Dispose(); | 6646 expected_context.Dispose(); |
| 6614 expected_context.Clear(); | 6647 expected_context.Clear(); |
| 6615 v8::Debug::SetDebugEventListener(NULL); | 6648 v8::Debug::SetDebugEventListener(NULL); |
| 6616 expected_context_data = v8::Handle<v8::Value>(); | 6649 expected_context_data = v8::Handle<v8::Value>(); |
| 6617 CheckDebuggerUnloaded(); | 6650 CheckDebuggerUnloaded(); |
| 6618 } | 6651 } |
| 6619 | 6652 |
| 6620 #endif // ENABLE_DEBUGGER_SUPPORT | 6653 #endif // ENABLE_DEBUGGER_SUPPORT |
| OLD | NEW |