v8::Handle<v8::FunctionTemplate> V8TestInterfaceDoNotCheckConstants::domTemplate(v8::Isolate* isolate) { V8PerIsolateData* data = V8PerIsolateData::from(isolate); v8::Local<v8::FunctionTemplate> result = data->existingDOMTemplate(const_cast<WrapperTypeInfo*>(&wrapperTypeInfo)); if (!result.IsEmpty()) return result; TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate"); result = v8::FunctionTemplate::New(isolate, V8ObjectConstructor::isValidConstructorMode); configureV8TestInterfaceDoNotCheckConstantsTemplate(result, isolate); data->setDOMTemplate(const_cast<WrapperTypeInfo*>(&wrapperTypeInfo), result); return result; }
v8::Handle<v8::FunctionTemplate> V8TestInterfaceDoNotCheckConstants::domTemplate(v8::Isolate* isolate, WrapperWorldType currentWorldType) { V8PerIsolateData* data = V8PerIsolateData::from(isolate); V8PerIsolateData::TemplateMap::iterator result = data->templateMap(currentWorldType).find(&wrapperTypeInfo); if (result != data->templateMap(currentWorldType).end()) return result->value.newLocal(isolate); TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate"); v8::EscapableHandleScope handleScope(isolate); v8::Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New(isolate, V8ObjectConstructor::isValidConstructorMode); configureV8TestInterfaceDoNotCheckConstantsTemplate(templ, isolate, currentWorldType); data->templateMap(currentWorldType).add(&wrapperTypeInfo, UnsafePersistent<v8::FunctionTemplate>(isolate, templ)); return handleScope.Escape(templ); }