}
-// Function called from the runtime to handle a debug request receiced from the
-// debugger. When this function is called the debugger is in the broken state
-// reflected by the exec_state parameter. When pending requests are handled the
-// parameter stopping indicate the expected running state.
-function ProcessDebugRequest(exec_state, request, stopping) {
- return exec_state.debugCommandProcessor().processDebugJSONRequest(request, stopping);
-}
-
-
Debug.addListener = function(listener, opt_data) {
if (!IS_FUNCTION(listener)) throw new Error('Parameters have wrong types.');
%AddDebugEventListener(listener, opt_data);
}
-Handle<String> Debugger::ProcessRequest(Handle<Object> exec_state,
- Handle<Object> request,
- bool stopped) {
- // Get the function ProcessDebugRequest (declared in debug.js).
- Handle<JSFunction> process_denbug_request =
- Handle<JSFunction>(JSFunction::cast(
- Debug::debug_context()->global()->GetProperty(
- *Factory::LookupAsciiSymbol("ProcessDebugRequest"))));
-
- // Call ProcessDebugRequest expect String result. The ProcessDebugRequest
- // will never throw an exception (see debug.js).
- bool caught_exception;
- const int argc = 3;
- Object** argv[argc] = { exec_state.location(),
- request.location(),
- stopped ? Factory::true_value().location() :
- Factory::false_value().location()};
- Handle<Object> result = Execution::TryCall(process_denbug_request,
- Factory::undefined_value(),
- argc, argv,
- &caught_exception);
- if (caught_exception) {
- return Factory::empty_symbol();
- }
-
- return Handle<String>::cast(result);
-}
-
-
void Debugger::OnException(Handle<Object> exception, bool uncaught) {
HandleScope scope;
static Handle<Object> MakeCompileEvent(Handle<Script> script,
Handle<Object> script_function,
bool* caught_exception);
- static Handle<String> ProcessRequest(Handle<Object> exec_state,
- Handle<Object> request,
- bool stopped);
static void OnDebugBreak(Handle<Object> break_points_hit);
static void OnException(Handle<Object> exception, bool uncaught);
static void OnBeforeCompile(Handle<Script> script);