1 // Copyright 2015 PDFium 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 "testing/js_embedder_test.h" 6 JSEmbedderTest()7JSEmbedderTest::JSEmbedderTest() 8 : m_pArrayBufferAllocator(new FXJS_ArrayBufferAllocator) { 9 v8::Isolate::CreateParams params; 10 params.array_buffer_allocator = m_pArrayBufferAllocator.get(); 11 m_pIsolate = v8::Isolate::New(params); 12 } 13 ~JSEmbedderTest()14JSEmbedderTest::~JSEmbedderTest() { 15 m_pIsolate->Dispose(); 16 } 17 SetUp()18void JSEmbedderTest::SetUp() { 19 EmbedderTest::SetExternalIsolate(m_pIsolate); 20 EmbedderTest::SetUp(); 21 22 v8::Isolate::Scope isolate_scope(m_pIsolate); 23 #ifdef PDF_ENABLE_XFA 24 v8::Locker locker(m_pIsolate); 25 #endif // PDF_ENABLE_XFA 26 v8::HandleScope handle_scope(m_pIsolate); 27 FXJS_PerIsolateData::SetUp(m_pIsolate); 28 FXJS_InitializeRuntime(m_pIsolate, nullptr, &m_pPersistentContext, 29 &m_StaticObjects); 30 } 31 TearDown()32void JSEmbedderTest::TearDown() { 33 FXJS_ReleaseRuntime(m_pIsolate, &m_pPersistentContext, &m_StaticObjects); 34 m_pPersistentContext.Reset(); 35 FXJS_Release(); 36 EmbedderTest::TearDown(); 37 } 38 isolate()39v8::Isolate* JSEmbedderTest::isolate() { 40 return m_pIsolate; 41 } 42 GetV8Context()43v8::Local<v8::Context> JSEmbedderTest::GetV8Context() { 44 return m_pPersistentContext.Get(m_pIsolate); 45 } 46