OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-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 1353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1364 Object** argv[argc] = { script_source.location(), | 1364 Object** argv[argc] = { script_source.location(), |
1365 script_name.location(), | 1365 script_name.location(), |
1366 script_function.location() }; | 1366 script_function.location() }; |
1367 return MakeJSObject(CStrVector("MakeCompileEvent"), | 1367 return MakeJSObject(CStrVector("MakeCompileEvent"), |
1368 argc, | 1368 argc, |
1369 argv, | 1369 argv, |
1370 caught_exception); | 1370 caught_exception); |
1371 } | 1371 } |
1372 | 1372 |
1373 | 1373 |
1374 Handle<String> Debugger::ProcessRequest(Handle<Object> exec_state, | |
1375 Handle<Object> request, | |
1376 bool stopped) { | |
1377 // Get the function ProcessDebugRequest (declared in debug.js). | |
1378 Handle<JSFunction> process_denbug_request = | |
1379 Handle<JSFunction>(JSFunction::cast( | |
1380 Debug::debug_context()->global()->GetProperty( | |
1381 *Factory::LookupAsciiSymbol("ProcessDebugRequest")))); | |
1382 | |
1383 // Call ProcessDebugRequest expect String result. The ProcessDebugRequest | |
1384 // will never throw an exception (see debug.js). | |
1385 bool caught_exception; | |
1386 const int argc = 3; | |
1387 Object** argv[argc] = { exec_state.location(), | |
1388 request.location(), | |
1389 stopped ? Factory::true_value().location() : | |
1390 Factory::false_value().location()}; | |
1391 Handle<Object> result = Execution::TryCall(process_denbug_request, | |
1392 Factory::undefined_value(), | |
1393 argc, argv, | |
1394 &caught_exception); | |
1395 if (caught_exception) { | |
1396 return Factory::empty_symbol(); | |
1397 } | |
1398 | |
1399 return Handle<String>::cast(result); | |
1400 } | |
1401 | |
1402 | |
1403 void Debugger::OnException(Handle<Object> exception, bool uncaught) { | 1374 void Debugger::OnException(Handle<Object> exception, bool uncaught) { |
1404 HandleScope scope; | 1375 HandleScope scope; |
1405 | 1376 |
1406 // Bail out based on state or if there is no listener for this event | 1377 // Bail out based on state or if there is no listener for this event |
1407 if (Debug::InDebugger()) return; | 1378 if (Debug::InDebugger()) return; |
1408 if (!Debugger::EventActive(v8::Exception)) return; | 1379 if (!Debugger::EventActive(v8::Exception)) return; |
1409 | 1380 |
1410 // Bail out if exception breaks are not active | 1381 // Bail out if exception breaks are not active |
1411 if (uncaught) { | 1382 if (uncaught) { |
1412 // Uncaught exceptions are reported by either flags. | 1383 // Uncaught exceptions are reported by either flags. |
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1963 } | 1934 } |
1964 | 1935 |
1965 | 1936 |
1966 void LockingMessageQueue::Clear() { | 1937 void LockingMessageQueue::Clear() { |
1967 ScopedLock sl(lock_); | 1938 ScopedLock sl(lock_); |
1968 queue_.Clear(); | 1939 queue_.Clear(); |
1969 } | 1940 } |
1970 | 1941 |
1971 | 1942 |
1972 } } // namespace v8::internal | 1943 } } // namespace v8::internal |
OLD | NEW |