OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 2200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2211 | 2211 |
2212 v8::Local<v8::String> script = | 2212 v8::Local<v8::String> script = |
2213 v8::String::NewFromUtf8(env->GetIsolate(), | 2213 v8::String::NewFromUtf8(env->GetIsolate(), |
2214 "function f() {\n" | 2214 "function f() {\n" |
2215 " a = 1; // line 1\n" | 2215 " a = 1; // line 1\n" |
2216 "}\n" | 2216 "}\n" |
2217 "a = 2; // line 3\n"); | 2217 "a = 2; // line 3\n"); |
2218 v8::Local<v8::Function> f; | 2218 v8::Local<v8::Function> f; |
2219 { | 2219 { |
2220 v8::HandleScope scope(env->GetIsolate()); | 2220 v8::HandleScope scope(env->GetIsolate()); |
2221 CompileRunWithOrigin(script, "test.html"); | 2221 v8::Script::Compile( |
| 2222 script, v8::String::NewFromUtf8(env->GetIsolate(), "test.html"))->Run(); |
2222 } | 2223 } |
2223 f = v8::Local<v8::Function>::Cast( | 2224 f = v8::Local<v8::Function>::Cast( |
2224 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); | 2225 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
2225 | 2226 |
2226 CcTest::heap()->CollectAllGarbage(Heap::kNoGCFlags); | 2227 CcTest::heap()->CollectAllGarbage(Heap::kNoGCFlags); |
2227 | 2228 |
2228 SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 3, -1); | 2229 SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 3, -1); |
2229 | 2230 |
2230 // Call f and check that there was no break points. | 2231 // Call f and check that there was no break points. |
2231 break_point_hit_count = 0; | 2232 break_point_hit_count = 0; |
2232 f->Call(env->Global(), 0, NULL); | 2233 f->Call(env->Global(), 0, NULL); |
2233 CHECK_EQ(0, break_point_hit_count); | 2234 CHECK_EQ(0, break_point_hit_count); |
2234 | 2235 |
2235 // Recompile and run script and check that break point was hit. | 2236 // Recompile and run script and check that break point was hit. |
2236 break_point_hit_count = 0; | 2237 break_point_hit_count = 0; |
2237 CompileRunWithOrigin(script, "test.html"); | 2238 v8::Script::Compile( |
| 2239 script, v8::String::NewFromUtf8(env->GetIsolate(), "test.html"))->Run(); |
2238 CHECK_EQ(1, break_point_hit_count); | 2240 CHECK_EQ(1, break_point_hit_count); |
2239 | 2241 |
2240 // Call f and check that there are still no break points. | 2242 // Call f and check that there are still no break points. |
2241 break_point_hit_count = 0; | 2243 break_point_hit_count = 0; |
2242 f = v8::Local<v8::Function>::Cast( | 2244 f = v8::Local<v8::Function>::Cast( |
2243 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); | 2245 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
2244 CHECK_EQ(0, break_point_hit_count); | 2246 CHECK_EQ(0, break_point_hit_count); |
2245 | 2247 |
2246 v8::Debug::SetDebugEventListener2(NULL); | 2248 v8::Debug::SetDebugEventListener2(NULL); |
2247 CheckDebuggerUnloaded(); | 2249 CheckDebuggerUnloaded(); |
(...skipping 14 matching lines...) Expand all Loading... |
2262 "function f() {\n" | 2264 "function f() {\n" |
2263 " return 0;\n" | 2265 " return 0;\n" |
2264 "}\n" | 2266 "}\n" |
2265 "f()"); | 2267 "f()"); |
2266 | 2268 |
2267 int sbp1 = | 2269 int sbp1 = |
2268 SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 3, -1); | 2270 SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 3, -1); |
2269 { | 2271 { |
2270 v8::HandleScope scope(env->GetIsolate()); | 2272 v8::HandleScope scope(env->GetIsolate()); |
2271 break_point_hit_count = 0; | 2273 break_point_hit_count = 0; |
2272 CompileRunWithOrigin(script_source, "test.html"); | 2274 v8::Script::Compile(script_source, |
| 2275 v8::String::NewFromUtf8(env->GetIsolate(), "test.html")) |
| 2276 ->Run(); |
2273 CHECK_EQ(1, break_point_hit_count); | 2277 CHECK_EQ(1, break_point_hit_count); |
2274 } | 2278 } |
2275 | 2279 |
2276 int sbp2 = | 2280 int sbp2 = |
2277 SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 3, -1); | 2281 SetScriptBreakPointByNameFromJS(env->GetIsolate(), "test.html", 3, -1); |
2278 ClearBreakPointFromJS(env->GetIsolate(), sbp1); | 2282 ClearBreakPointFromJS(env->GetIsolate(), sbp1); |
2279 ClearBreakPointFromJS(env->GetIsolate(), sbp2); | 2283 ClearBreakPointFromJS(env->GetIsolate(), sbp2); |
2280 | 2284 |
2281 v8::Debug::SetDebugEventListener2(NULL); | 2285 v8::Debug::SetDebugEventListener2(NULL); |
2282 CheckDebuggerUnloaded(); | 2286 CheckDebuggerUnloaded(); |
(...skipping 3952 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6235 v8::ScriptOrigin origin2 = | 6239 v8::ScriptOrigin origin2 = |
6236 v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "new name")); | 6240 v8::ScriptOrigin(v8::String::NewFromUtf8(env->GetIsolate(), "new name")); |
6237 v8::Handle<v8::Script> script2 = v8::Script::Compile(script, &origin2); | 6241 v8::Handle<v8::Script> script2 = v8::Script::Compile(script, &origin2); |
6238 script2->Run(); | 6242 script2->Run(); |
6239 f = v8::Local<v8::Function>::Cast( | 6243 f = v8::Local<v8::Function>::Cast( |
6240 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); | 6244 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
6241 f->Call(env->Global(), 0, NULL); | 6245 f->Call(env->Global(), 0, NULL); |
6242 CHECK_EQ(3, break_point_hit_count); | 6246 CHECK_EQ(3, break_point_hit_count); |
6243 CHECK_EQ("new name", last_script_name_hit); | 6247 CHECK_EQ("new name", last_script_name_hit); |
6244 | 6248 |
6245 v8::Handle<v8::Script> script3 = v8::Script::Compile(script, &origin2); | 6249 v8::Handle<v8::Script> script3 = v8::Script::Compile( |
| 6250 script, &origin2, NULL); |
6246 script3->Run(); | 6251 script3->Run(); |
6247 f = v8::Local<v8::Function>::Cast( | 6252 f = v8::Local<v8::Function>::Cast( |
6248 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); | 6253 env->Global()->Get(v8::String::NewFromUtf8(env->GetIsolate(), "f"))); |
6249 f->Call(env->Global(), 0, NULL); | 6254 f->Call(env->Global(), 0, NULL); |
6250 CHECK_EQ(4, break_point_hit_count); | 6255 CHECK_EQ(4, break_point_hit_count); |
6251 } | 6256 } |
6252 | 6257 |
6253 | 6258 |
6254 static v8::Handle<v8::Context> expected_context; | 6259 static v8::Handle<v8::Context> expected_context; |
6255 static v8::Handle<v8::Value> expected_context_data; | 6260 static v8::Handle<v8::Value> expected_context_data; |
(...skipping 720 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6976 v8::Debug::SendCommand( | 6981 v8::Debug::SendCommand( |
6977 isolate, | 6982 isolate, |
6978 buffer, | 6983 buffer, |
6979 AsciiToUtf16(scripts_command, buffer), | 6984 AsciiToUtf16(scripts_command, buffer), |
6980 NULL); | 6985 NULL); |
6981 v8::Debug::ProcessDebugMessages(); | 6986 v8::Debug::ProcessDebugMessages(); |
6982 CHECK_EQ(BacktraceData::frame_counter, 0); | 6987 CHECK_EQ(BacktraceData::frame_counter, 0); |
6983 | 6988 |
6984 v8::Handle<v8::String> void0 = | 6989 v8::Handle<v8::String> void0 = |
6985 v8::String::NewFromUtf8(env->GetIsolate(), "void(0)"); | 6990 v8::String::NewFromUtf8(env->GetIsolate(), "void(0)"); |
6986 v8::Handle<v8::Script> script = CompileWithOrigin(void0, void0); | 6991 v8::Handle<v8::Script> script = v8::Script::Compile(void0, void0); |
6987 | 6992 |
6988 // Check backtrace from "void(0)" script. | 6993 // Check backtrace from "void(0)" script. |
6989 BacktraceData::frame_counter = -10; | 6994 BacktraceData::frame_counter = -10; |
6990 v8::Debug::SendCommand( | 6995 v8::Debug::SendCommand( |
6991 isolate, | 6996 isolate, |
6992 buffer, | 6997 buffer, |
6993 AsciiToUtf16(scripts_command, buffer), | 6998 AsciiToUtf16(scripts_command, buffer), |
6994 NULL); | 6999 NULL); |
6995 script->Run(); | 7000 script->Run(); |
6996 CHECK_EQ(BacktraceData::frame_counter, 1); | 7001 CHECK_EQ(BacktraceData::frame_counter, 1); |
6997 | 7002 |
6998 // Get rid of the debug message handler. | 7003 // Get rid of the debug message handler. |
6999 v8::Debug::SetMessageHandler2(NULL); | 7004 v8::Debug::SetMessageHandler2(NULL); |
7000 CheckDebuggerUnloaded(); | 7005 CheckDebuggerUnloaded(); |
7001 } | 7006 } |
7002 | 7007 |
7003 | 7008 |
7004 TEST(GetMirror) { | 7009 TEST(GetMirror) { |
7005 DebugLocalContext env; | 7010 DebugLocalContext env; |
7006 v8::Isolate* isolate = env->GetIsolate(); | 7011 v8::HandleScope scope(env->GetIsolate()); |
7007 v8::HandleScope scope(isolate); | |
7008 v8::Handle<v8::Value> obj = | 7012 v8::Handle<v8::Value> obj = |
7009 v8::Debug::GetMirror(v8::String::NewFromUtf8(isolate, "hodja")); | 7013 v8::Debug::GetMirror(v8::String::NewFromUtf8(env->GetIsolate(), "hodja")); |
7010 v8::Handle<v8::Function> run_test = | 7014 v8::Handle<v8::Function> run_test = |
7011 v8::Handle<v8::Function>::Cast( | 7015 v8::Handle<v8::Function>::Cast(v8::Script::New( |
7012 v8::ScriptCompiler::CompileUnbound( | 7016 v8::String::NewFromUtf8( |
7013 isolate, | 7017 env->GetIsolate(), |
7014 v8::ScriptCompiler::Source(v8_str( | 7018 "function runTest(mirror) {" |
7015 "function runTest(mirror) {" | 7019 " return mirror.isString() && (mirror.length() == 5);" |
7016 " return mirror.isString() && (mirror.length() == 5);" | 7020 "}" |
7017 "}" | 7021 "" |
7018 "" | 7022 "runTest;"))->Run()); |
7019 "runTest;")))->BindToCurrentContext()->Run()); | |
7020 v8::Handle<v8::Value> result = run_test->Call(env->Global(), 1, &obj); | 7023 v8::Handle<v8::Value> result = run_test->Call(env->Global(), 1, &obj); |
7021 CHECK(result->IsTrue()); | 7024 CHECK(result->IsTrue()); |
7022 } | 7025 } |
7023 | 7026 |
7024 | 7027 |
7025 // Test that the debug break flag works with function.apply. | 7028 // Test that the debug break flag works with function.apply. |
7026 TEST(DebugBreakFunctionApply) { | 7029 TEST(DebugBreakFunctionApply) { |
7027 DebugLocalContext env; | 7030 DebugLocalContext env; |
7028 v8::HandleScope scope(env->GetIsolate()); | 7031 v8::HandleScope scope(env->GetIsolate()); |
7029 | 7032 |
(...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7662 CHECK(result->IsString()); | 7665 CHECK(result->IsString()); |
7663 v8::String::Utf8Value utf8(result); | 7666 v8::String::Utf8Value utf8(result); |
7664 CHECK_EQ("bar", *utf8); | 7667 CHECK_EQ("bar", *utf8); |
7665 | 7668 |
7666 v8::Debug::SetDebugEventListener2(NULL); | 7669 v8::Debug::SetDebugEventListener2(NULL); |
7667 CheckDebuggerUnloaded(); | 7670 CheckDebuggerUnloaded(); |
7668 } | 7671 } |
7669 | 7672 |
7670 | 7673 |
7671 #endif // ENABLE_DEBUGGER_SUPPORT | 7674 #endif // ENABLE_DEBUGGER_SUPPORT |
OLD | NEW |