| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "gin/test/v8_test.h" |
| |
| #include "gin/array_buffer.h" |
| #include "gin/public/isolate_holder.h" |
| #include "gin/v8_initializer.h" |
| |
| using v8::Context; |
| using v8::Local; |
| using v8::HandleScope; |
| |
| namespace gin { |
| |
| V8Test::V8Test() { |
| } |
| |
| V8Test::~V8Test() { |
| } |
| |
| void V8Test::SetUp() { |
| #ifdef V8_USE_EXTERNAL_STARTUP_DATA |
| gin::V8Initializer::LoadV8Snapshot(); |
| gin::V8Initializer::LoadV8Natives(); |
| #endif |
| gin::IsolateHolder::Initialize(gin::IsolateHolder::kStrictMode, |
| gin::IsolateHolder::kStableV8Extras, |
| gin::ArrayBufferAllocator::SharedInstance()); |
| |
| instance_.reset(new gin::IsolateHolder); |
| instance_->isolate()->Enter(); |
| HandleScope handle_scope(instance_->isolate()); |
| context_.Reset(instance_->isolate(), Context::New(instance_->isolate())); |
| Local<Context>::New(instance_->isolate(), context_)->Enter(); |
| } |
| |
| void V8Test::TearDown() { |
| { |
| HandleScope handle_scope(instance_->isolate()); |
| Local<Context>::New(instance_->isolate(), context_)->Exit(); |
| context_.Reset(); |
| } |
| instance_->isolate()->Exit(); |
| instance_.reset(); |
| } |
| |
| } // namespace gin |