| 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 4007 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4018 v8::HandleScope scope; | 4018 v8::HandleScope scope; |
| 4019 DebugLocalContext env; | 4019 DebugLocalContext env; |
| 4020 | 4020 |
| 4021 const int kBufferSize = 1000; | 4021 const int kBufferSize = 1000; |
| 4022 uint16_t buffer[kBufferSize]; | 4022 uint16_t buffer[kBufferSize]; |
| 4023 const char* command_continue = | 4023 const char* command_continue = |
| 4024 "{\"seq\":0," | 4024 "{\"seq\":0," |
| 4025 "\"type\":\"request\"," | 4025 "\"type\":\"request\"," |
| 4026 "\"command\":\"continue\"}"; | 4026 "\"command\":\"continue\"}"; |
| 4027 | 4027 |
| 4028 // Create an empty function to call for processing debug commands |
| 4029 v8::Local<v8::Function> empty = |
| 4030 CompileFunction(&env, "function empty(){}", "empty"); |
| 4031 |
| 4028 // Setup message and host dispatch handlers. | 4032 // Setup message and host dispatch handlers. |
| 4029 v8::Debug::SetMessageHandler(DummyMessageHandler); | 4033 v8::Debug::SetMessageHandler(DummyMessageHandler); |
| 4030 v8::Debug::SetHostDispatchHandler(HostDispatchHandlerHitCount, | 4034 v8::Debug::SetHostDispatchHandler(HostDispatchHandlerHitCount, |
| 4031 NULL); | 4035 NULL); |
| 4032 | 4036 |
| 4033 // Fill a host dispatch and a continue command on the command queue before | 4037 // Send a host dispatch by itself. |
| 4034 // running some code. | 4038 v8::Debug::SendHostDispatch(NULL); |
| 4039 empty->Call(env->Global(), 0, NULL); // Run JavaScript to activate debugger. |
| 4040 CHECK_EQ(1, host_dispatch_hit_count); |
| 4041 |
| 4042 // Fill a host dispatch and a continue command on the command queue. |
| 4035 v8::Debug::SendHostDispatch(NULL); | 4043 v8::Debug::SendHostDispatch(NULL); |
| 4036 v8::Debug::SendCommand(buffer, AsciiToUtf16(command_continue, buffer)); | 4044 v8::Debug::SendCommand(buffer, AsciiToUtf16(command_continue, buffer)); |
| 4037 CompileRun("void 0"); | 4045 empty->Call(env->Global(), 0, NULL); // Run JavaScript to activate debugger. |
| 4038 | 4046 |
| 4039 // The host dispatch callback should be called. | 4047 // Fill a continue command and a host dispatch on the command queue. |
| 4040 CHECK_EQ(1, host_dispatch_hit_count); | 4048 v8::Debug::SendCommand(buffer, AsciiToUtf16(command_continue, buffer)); |
| 4049 v8::Debug::SendHostDispatch(NULL); |
| 4050 empty->Call(env->Global(), 0, NULL); // Run JavaScript to activate debugger. |
| 4051 empty->Call(env->Global(), 0, NULL); // Run JavaScript to activate debugger. |
| 4052 |
| 4053 // All the host dispatch callback should be called. |
| 4054 CHECK_EQ(3, host_dispatch_hit_count); |
| 4041 } | 4055 } |
| 4042 | 4056 |
| 4043 | 4057 |
| 4044 TEST(DebuggerAgent) { | 4058 TEST(DebuggerAgent) { |
| 4045 // Make sure this port is not used by other tests to allow tests to run in | 4059 // Make sure this port is not used by other tests to allow tests to run in |
| 4046 // parallel. | 4060 // parallel. |
| 4047 const int kPort = 5858; | 4061 const int kPort = 5858; |
| 4048 | 4062 |
| 4049 // Make a string with the port number. | 4063 // Make a string with the port number. |
| 4050 const int kPortBufferLen = 6; | 4064 const int kPortBufferLen = 6; |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4228 bool allow_natives_syntax = i::FLAG_allow_natives_syntax; | 4242 bool allow_natives_syntax = i::FLAG_allow_natives_syntax; |
| 4229 i::FLAG_allow_natives_syntax = true; | 4243 i::FLAG_allow_natives_syntax = true; |
| 4230 CompileRun( | 4244 CompileRun( |
| 4231 "var scripts = %DebugGetLoadedScripts();" | 4245 "var scripts = %DebugGetLoadedScripts();" |
| 4232 "for (var i = 0; i < scripts.length; ++i) {" | 4246 "for (var i = 0; i < scripts.length; ++i) {" |
| 4233 " scripts[i].line_ends;" | 4247 " scripts[i].line_ends;" |
| 4234 "}"); | 4248 "}"); |
| 4235 // Must not crash while accessing line_ends. | 4249 // Must not crash while accessing line_ends. |
| 4236 i::FLAG_allow_natives_syntax = allow_natives_syntax; | 4250 i::FLAG_allow_natives_syntax = allow_natives_syntax; |
| 4237 } | 4251 } |
| OLD | NEW |