| Index: src/d8.cc
|
| ===================================================================
|
| --- src/d8.cc (revision 993)
|
| +++ src/d8.cc (working copy)
|
| @@ -29,6 +29,7 @@
|
| #include <stdlib.h>
|
|
|
| #include "d8.h"
|
| +#include "d8-debug.h"
|
| #include "debug.h"
|
| #include "api.h"
|
| #include "natives.h"
|
| @@ -98,6 +99,10 @@
|
| bool report_exceptions) {
|
| HandleScope handle_scope;
|
| TryCatch try_catch;
|
| + if (i::FLAG_debugger) {
|
| + // When debugging make exceptions appear to be uncaught.
|
| + try_catch.SetVerbose(true);
|
| + }
|
| Handle<Script> script = Script::Compile(source, name);
|
| if (script.IsEmpty()) {
|
| // Print errors that happened during compilation.
|
| @@ -212,6 +217,46 @@
|
| }
|
|
|
|
|
| +Handle<String> Shell::DebugEventToText(Handle<Object> event) {
|
| + HandleScope handle_scope;
|
| + Context::Scope context_scope(utility_context_);
|
| + Handle<Object> global = utility_context_->Global();
|
| + Handle<Value> fun = global->Get(String::New("DebugEventToText"));
|
| + TryCatch try_catch;
|
| + try_catch.SetVerbose(true);
|
| + static const int kArgc = 1;
|
| + Handle<Value> argv[kArgc] = { event };
|
| + Handle<Value> val = Handle<Function>::Cast(fun)->Call(global, kArgc, argv);
|
| + if (try_catch.HasCaught()) {
|
| + return handle_scope.Close(try_catch.Exception()->ToString());
|
| + } else {
|
| + return handle_scope.Close(Handle<String>::Cast(val));
|
| + }
|
| +}
|
| +
|
| +
|
| +Handle<Value> Shell::DebugCommandToJSONRequest(Handle<String> command) {
|
| + Context::Scope context_scope(utility_context_);
|
| + Handle<Object> global = utility_context_->Global();
|
| + Handle<Value> fun = global->Get(String::New("DebugCommandToJSONRequest"));
|
| + static const int kArgc = 1;
|
| + Handle<Value> argv[kArgc] = { command };
|
| + Handle<Value> val = Handle<Function>::Cast(fun)->Call(global, kArgc, argv);
|
| + return val;
|
| +}
|
| +
|
| +
|
| +Handle<Object> Shell::DebugResponseDetails(Handle<String> response) {
|
| + Context::Scope context_scope(utility_context_);
|
| + Handle<Object> global = utility_context_->Global();
|
| + Handle<Value> fun = global->Get(String::New("DebugResponseDetails"));
|
| + static const int kArgc = 1;
|
| + Handle<Value> argv[kArgc] = { response };
|
| + Handle<Value> val = Handle<Function>::Cast(fun)->Call(global, kArgc, argv);
|
| + return Handle<Object>::Cast(val);
|
| +}
|
| +
|
| +
|
| int32_t* Counter::Bind(const char* name) {
|
| int i;
|
| for (i = 0; i < kMaxNameSize - 1 && name[i]; i++)
|
| @@ -415,6 +460,8 @@
|
| return 1;
|
| }
|
| }
|
| + if (i::FLAG_debugger)
|
| + v8::Debug::AddDebugEventListener(HandleDebugEvent);
|
| if (run_shell)
|
| RunShell();
|
| OnExit();
|
|
|