1197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// found in the LICENSE file. 4197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 5197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch// This file has been auto-generated by code_generator_v8.py. DO NOT MODIFY! 6197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 7197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#ifndef V8TestInterfaceConstructor4_h 8197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#define V8TestInterfaceConstructor4_h 9197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 10e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#include "bindings/core/v8/ScriptWrappable.h" 11197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "bindings/core/v8/V8Binding.h" 12197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "bindings/core/v8/V8DOMWrapper.h" 13197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "bindings/core/v8/WrapperTypeInfo.h" 147242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "bindings/tests/idls/core/TestInterfaceConstructor4.h" 15197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "platform/heap/Handle.h" 16197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 17c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 18197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 19197021e6b966cfb06891637935ef33fff06433d1Ben Murdochclass V8TestInterfaceConstructor4 { 20197021e6b966cfb06891637935ef33fff06433d1Ben Murdochpublic: 21197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch static bool hasInstance(v8::Handle<v8::Value>, v8::Isolate*); 22197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch static v8::Handle<v8::Object> findInstanceInPrototypeChain(v8::Handle<v8::Value>, v8::Isolate*); 23197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch static v8::Handle<v8::FunctionTemplate> domTemplate(v8::Isolate*); 247242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci static TestInterfaceConstructor4* toImpl(v8::Handle<v8::Object> object) 25197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 267242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci return toImpl(blink::toScriptWrappableBase(object)); 27197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch } 287242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci static TestInterfaceConstructor4* toImplWithTypeCheck(v8::Isolate*, v8::Handle<v8::Value>); 29197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch static const WrapperTypeInfo wrapperTypeInfo; 307242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci static void refObject(ScriptWrappableBase* internalPointer); 31e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) static void derefObject(ScriptWrappableBase* internalPointer); 327242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci static WrapperPersistentNode* createPersistentHandle(ScriptWrappableBase* internalPointer); 33197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch static void constructorCallback(const v8::FunctionCallbackInfo<v8::Value>&); 34197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0; 357242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci static inline ScriptWrappableBase* toScriptWrappableBase(TestInterfaceConstructor4* impl) 36197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 377242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci return impl->toScriptWrappableBase(); 38197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch } 39197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 407242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci static inline TestInterfaceConstructor4* toImpl(ScriptWrappableBase* internalPointer) 41197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch { 427242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci return internalPointer->toImpl<TestInterfaceConstructor4>(); 43197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch } 44e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) static void installConditionallyEnabledProperties(v8::Handle<v8::Object>, v8::Isolate*) { } 45e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) static void installConditionallyEnabledMethods(v8::Handle<v8::Object>, v8::Isolate*) { } 46197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 47197021e6b966cfb06891637935ef33fff06433d1Ben Murdochprivate: 48197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch}; 49197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 507242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucciinline v8::Handle<v8::Object> wrap(TestInterfaceConstructor4* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate) 517242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci{ 527242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci return impl->wrap(creationContext, isolate); 537242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci} 54197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 55197021e6b966cfb06891637935ef33fff06433d1Ben Murdochinline v8::Handle<v8::Value> toV8(TestInterfaceConstructor4* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate) 56197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{ 57197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (UNLIKELY(!impl)) 58197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return v8::Null(isolate); 59197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8::Handle<v8::Value> wrapper = DOMDataStore::getWrapper<V8TestInterfaceConstructor4>(impl, isolate); 60197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (!wrapper.IsEmpty()) 61197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return wrapper; 627242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 637242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci return impl->wrap(creationContext, isolate); 64197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 65197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 66197021e6b966cfb06891637935ef33fff06433d1Ben Murdochtemplate<typename CallbackInfo> 67197021e6b966cfb06891637935ef33fff06433d1Ben Murdochinline void v8SetReturnValue(const CallbackInfo& callbackInfo, TestInterfaceConstructor4* impl) 68197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{ 69197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (UNLIKELY(!impl)) { 70197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8SetReturnValueNull(callbackInfo); 71197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return; 72197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch } 73197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (DOMDataStore::setReturnValueFromWrapper<V8TestInterfaceConstructor4>(callbackInfo.GetReturnValue(), impl)) 74197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return; 75197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8::Handle<v8::Object> wrapper = wrap(impl, callbackInfo.Holder(), callbackInfo.GetIsolate()); 76197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8SetReturnValue(callbackInfo, wrapper); 77197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 78197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 79197021e6b966cfb06891637935ef33fff06433d1Ben Murdochtemplate<typename CallbackInfo> 80197021e6b966cfb06891637935ef33fff06433d1Ben Murdochinline void v8SetReturnValueForMainWorld(const CallbackInfo& callbackInfo, TestInterfaceConstructor4* impl) 81197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{ 82197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch ASSERT(DOMWrapperWorld::current(callbackInfo.GetIsolate()).isMainWorld()); 83197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (UNLIKELY(!impl)) { 84197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8SetReturnValueNull(callbackInfo); 85197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return; 86197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch } 87197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (DOMDataStore::setReturnValueFromWrapperForMainWorld<V8TestInterfaceConstructor4>(callbackInfo.GetReturnValue(), impl)) 88197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return; 89197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8::Handle<v8::Value> wrapper = wrap(impl, callbackInfo.Holder(), callbackInfo.GetIsolate()); 90197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8SetReturnValue(callbackInfo, wrapper); 91197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 92197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 93197021e6b966cfb06891637935ef33fff06433d1Ben Murdochtemplate<class CallbackInfo, class Wrappable> 94197021e6b966cfb06891637935ef33fff06433d1Ben Murdochinline void v8SetReturnValueFast(const CallbackInfo& callbackInfo, TestInterfaceConstructor4* impl, Wrappable* wrappable) 95197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{ 96197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (UNLIKELY(!impl)) { 97197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8SetReturnValueNull(callbackInfo); 98197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return; 99197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch } 100197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch if (DOMDataStore::setReturnValueFromWrapperFast<V8TestInterfaceConstructor4>(callbackInfo.GetReturnValue(), impl, callbackInfo.Holder(), wrappable)) 101197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return; 102197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8::Handle<v8::Object> wrapper = wrap(impl, callbackInfo.Holder(), callbackInfo.GetIsolate()); 103197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8SetReturnValue(callbackInfo, wrapper); 104197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 105197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 106197021e6b966cfb06891637935ef33fff06433d1Ben Murdochinline v8::Handle<v8::Value> toV8(PassRefPtr<TestInterfaceConstructor4> impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate) 107197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{ 108197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch return toV8(impl.get(), creationContext, isolate); 109197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 110197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 111197021e6b966cfb06891637935ef33fff06433d1Ben Murdochtemplate<class CallbackInfo> 112197021e6b966cfb06891637935ef33fff06433d1Ben Murdochinline void v8SetReturnValue(const CallbackInfo& callbackInfo, PassRefPtr<TestInterfaceConstructor4> impl) 113197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{ 114197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8SetReturnValue(callbackInfo, impl.get()); 115197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 116197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 117197021e6b966cfb06891637935ef33fff06433d1Ben Murdochtemplate<class CallbackInfo> 118197021e6b966cfb06891637935ef33fff06433d1Ben Murdochinline void v8SetReturnValueForMainWorld(const CallbackInfo& callbackInfo, PassRefPtr<TestInterfaceConstructor4> impl) 119197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{ 120197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8SetReturnValueForMainWorld(callbackInfo, impl.get()); 121197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 122197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 123197021e6b966cfb06891637935ef33fff06433d1Ben Murdochtemplate<class CallbackInfo, class Wrappable> 124197021e6b966cfb06891637935ef33fff06433d1Ben Murdochinline void v8SetReturnValueFast(const CallbackInfo& callbackInfo, PassRefPtr<TestInterfaceConstructor4> impl, Wrappable* wrappable) 125197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch{ 126197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch v8SetReturnValueFast(callbackInfo, impl.get(), wrappable); 127197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch} 128197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 1297242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci} // namespace blink 130197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#endif // V8TestInterfaceConstructor4_h 131