diff options
Diffstat (limited to 'gin/runner.cc')
-rw-r--r-- | gin/runner.cc | 96 |
1 files changed, 4 insertions, 92 deletions
diff --git a/gin/runner.cc b/gin/runner.cc index e8e4089..6f018b1 100644 --- a/gin/runner.cc +++ b/gin/runner.cc @@ -4,106 +4,18 @@ #include "gin/runner.h" -#include "gin/converter.h" -#include "gin/per_context_data.h" -#include "gin/try_catch.h" - -using v8::Context; -using v8::HandleScope; -using v8::Isolate; -using v8::Object; -using v8::ObjectTemplate; -using v8::Script; - namespace gin { -RunnerDelegate::RunnerDelegate() { -} - -RunnerDelegate::~RunnerDelegate() { -} - -v8::Handle<ObjectTemplate> RunnerDelegate::GetGlobalTemplate(Runner* runner) { - return v8::Handle<ObjectTemplate>(); -} - -void RunnerDelegate::DidCreateContext(Runner* runner) { -} - -void RunnerDelegate::WillRunScript(Runner* runner) { -} - -void RunnerDelegate::DidRunScript(Runner* runner) { -} - -void RunnerDelegate::UnhandledException(Runner* runner, TryCatch& try_catch) { - CHECK(false) << try_catch.GetStackTrace(); -} - -Runner::Runner(RunnerDelegate* delegate, Isolate* isolate) - : ContextHolder(isolate), - delegate_(delegate), - weak_factory_(this) { - v8::Isolate::Scope isolate_scope(isolate); - HandleScope handle_scope(isolate); - v8::Handle<v8::Context> context = - Context::New(isolate, NULL, delegate_->GetGlobalTemplate(this)); - - SetContext(context); - PerContextData::From(context)->set_runner(this); - - v8::Context::Scope scope(context); - delegate_->DidCreateContext(this); +Runner::Runner() : weak_factory_(this) { } Runner::~Runner() { } -void Runner::Run(const std::string& source, const std::string& resource_name) { - TryCatch try_catch; - v8::Handle<Script> script = Script::New(StringToV8(isolate(), source), - StringToV8(isolate(), resource_name)); - if (try_catch.HasCaught()) { - delegate_->UnhandledException(this, try_catch); - return; - } - - Run(script); -} - -void Runner::Run(v8::Handle<Script> script) { - TryCatch try_catch; - delegate_->WillRunScript(this); - - script->Run(); - - delegate_->DidRunScript(this); - if (try_catch.HasCaught()) { - delegate_->UnhandledException(this, try_catch); - } -} - -v8::Handle<v8::Value> Runner::Call(v8::Handle<v8::Function> function, - v8::Handle<v8::Value> receiver, - int argc, - v8::Handle<v8::Value> argv[]) { - TryCatch try_catch; - delegate_->WillRunScript(this); - - v8::Handle<v8::Value> result = function->Call(receiver, argc, argv); - - delegate_->DidRunScript(this); - if (try_catch.HasCaught()) { - delegate_->UnhandledException(this, try_catch); - } - - return result; -} - Runner::Scope::Scope(Runner* runner) - : isolate_scope_(runner->isolate()), - handle_scope_(runner->isolate()), - scope_(runner->context()) { + : isolate_scope_(runner->GetContextHolder()->isolate()), + handle_scope_(runner->GetContextHolder()->isolate()), + scope_(runner->GetContextHolder()->context()) { } Runner::Scope::~Scope() { |