1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "gin/test/v8_test.h"
6
7#include "gin/public/isolate_holder.h"
8
9using v8::Context;
10using v8::Local;
11using v8::HandleScope;
12
13namespace gin {
14
15V8Test::V8Test() {
16}
17
18V8Test::~V8Test() {
19}
20
21void V8Test::SetUp() {
22  instance_.reset(new gin::IsolateHolder(gin::IsolateHolder::kStrictMode));
23  instance_->isolate()->Enter();
24  HandleScope handle_scope(instance_->isolate());
25  context_.Reset(instance_->isolate(), Context::New(instance_->isolate()));
26  Local<Context>::New(instance_->isolate(), context_)->Enter();
27}
28
29void V8Test::TearDown() {
30  {
31    HandleScope handle_scope(instance_->isolate());
32    Local<Context>::New(instance_->isolate(), context_)->Exit();
33    context_.Reset();
34  }
35  instance_->isolate()->Exit();
36  instance_.reset();
37}
38
39}  // namespace gin
40