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