1 // Copyright 2014 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/gc.h" 6 7 #include "base/bind.h" 8 #include "base/logging.h" 9 #include "gin/arguments.h" 10 #include "gin/converter.h" 11 #include "gin/function_template.h" 12 #include "gin/object_template_builder.h" 13 #include "gin/per_isolate_data.h" 14 #include "gin/public/wrapper_info.h" 15 #include "gin/wrappable.h" 16 #include "testing/gtest/include/gtest/gtest.h" 17 18 namespace gin { 19 20 namespace { 21 WrapperInfo g_wrapper_info = { kEmbedderNativeGin }; 22 } // namespace 23 24 const char GC::kModuleName[] = "gc"; 25 26 v8::Local<v8::Value> GC::GetModule(v8::Isolate* isolate) { 27 PerIsolateData* data = PerIsolateData::From(isolate); 28 v8::Local<v8::ObjectTemplate> templ = 29 data->GetObjectTemplate(&g_wrapper_info); 30 if (templ.IsEmpty()) { 31 templ = ObjectTemplateBuilder(isolate) 32 .SetMethod("collectGarbage", v8::V8::LowMemoryNotification) 33 .Build(); 34 data->SetObjectTemplate(&g_wrapper_info, templ); 35 } 36 return templ->NewInstance(); 37 } 38 39 } // namespace gin 40