Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(125)

Unified Diff: gin/runner.cc

Issue 74753002: Introduce gin_shell (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« gin/gin.gyp ('K') | « gin/runner.h ('k') | gin/runner_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gin/runner.cc
diff --git a/gin/runner.cc b/gin/runner.cc
index 4b0b6f9b69d3562733b319439e2904915198bc1b..a3c9544872954967a3dd99197cb554a2574b0544 100644
--- a/gin/runner.cc
+++ b/gin/runner.cc
@@ -5,9 +5,9 @@
#include "gin/runner.h"
#include "gin/converter.h"
+#include "gin/try_catch.h"
using v8::Context;
-using v8::Handle;
using v8::HandleScope;
using v8::Isolate;
using v8::Object;
@@ -22,16 +22,26 @@ RunnerDelegate::RunnerDelegate() {
RunnerDelegate::~RunnerDelegate() {
}
-Handle<ObjectTemplate> RunnerDelegate::GetGlobalTemplate(Runner* runner) {
- return Handle<ObjectTemplate>();
+v8::Handle<ObjectTemplate> RunnerDelegate::GetGlobalTemplate(Runner* runner) {
+ return v8::Handle<ObjectTemplate>();
}
void RunnerDelegate::DidCreateContext(Runner* runner) {
}
+void RunnerDelegate::WillRunScript(Runner* runner, v8::Handle<Script> script) {
+}
+
+void RunnerDelegate::DidRunScript(Runner* runner, v8::Handle<Script> script) {
+}
+
+void RunnerDelegate::UnhandledException(Runner* runner, TryCatch& try_catch) {
+}
+
Runner::Runner(RunnerDelegate* delegate, Isolate* isolate)
: ContextHolder(isolate),
- delegate_(delegate) {
+ delegate_(delegate),
+ weak_factory_(this) {
HandleScope handle_scope(isolate);
SetContext(Context::New(isolate, NULL, delegate_->GetGlobalTemplate(this)));
@@ -46,8 +56,15 @@ void Runner::Run(const std::string& script) {
Run(Script::New(StringToV8(isolate(), script)));
}
-void Runner::Run(Handle<Script> script) {
- script->Run();
+void Runner::Run(v8::Handle<Script> script) {
+ delegate_->WillRunScript(this, script);
+ {
+ TryCatch try_catch;
+ script->Run();
+ if (try_catch.HasCaught())
+ delegate_->UnhandledException(this, try_catch);
+ }
+ delegate_->DidRunScript(this, script);
}
Runner::Scope::Scope(Runner* runner)
« gin/gin.gyp ('K') | « gin/runner.h ('k') | gin/runner_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698