Chromium Code Reviews| 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(); |
|
jochen (gone - plz use gerrit)
2013/11/18 12:46:05
consider locking the isolate and entering before r
abarth-chromium
2013/11/18 15:33:06
Done. Is there some way to enable an ASSERT in V8
abarth-chromium
2013/11/18 15:36:40
Adding a v8::Locker causes an ASSERT. I've left i
|
| + if (try_catch.HasCaught()) |
| + delegate_->UnhandledException(this, try_catch); |
| + } |
| + delegate_->DidRunScript(this, script); |
| } |
| Runner::Scope::Scope(Runner* runner) |