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// This file has been auto-generated by code_generator_v8.py. DO NOT MODIFY!
6
7#ifndef V8TestInterfaceNotScriptWrappable_h
8#define V8TestInterfaceNotScriptWrappable_h
9
10#include "bindings/core/v8/ScriptWrappable.h"
11#include "bindings/core/v8/V8Binding.h"
12#include "bindings/core/v8/V8DOMWrapper.h"
13#include "bindings/core/v8/WrapperTypeInfo.h"
14#include "bindings/tests/idls/core/TestInterfaceNotScriptWrappable.h"
15#include "platform/heap/Handle.h"
16
17namespace blink {
18
19class V8TestInterfaceNotScriptWrappable {
20public:
21    static bool hasInstance(v8::Handle<v8::Value>, v8::Isolate*);
22    static v8::Handle<v8::Object> findInstanceInPrototypeChain(v8::Handle<v8::Value>, v8::Isolate*);
23    static v8::Handle<v8::FunctionTemplate> domTemplate(v8::Isolate*);
24    static TestInterfaceNotScriptWrappable* toImpl(v8::Handle<v8::Object> object)
25    {
26        return toImpl(blink::toScriptWrappableBase(object));
27    }
28    static TestInterfaceNotScriptWrappable* toImplWithTypeCheck(v8::Isolate*, v8::Handle<v8::Value>);
29    static const WrapperTypeInfo wrapperTypeInfo;
30    static void refObject(ScriptWrappableBase* internalPointer);
31    static void derefObject(ScriptWrappableBase* internalPointer);
32    static WrapperPersistentNode* createPersistentHandle(ScriptWrappableBase* internalPointer);
33    static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0;
34    static inline ScriptWrappableBase* toScriptWrappableBase(TestInterfaceNotScriptWrappable* impl)
35    {
36        return impl->toScriptWrappableBase();
37    }
38
39    static inline TestInterfaceNotScriptWrappable* toImpl(ScriptWrappableBase* internalPointer)
40    {
41        return internalPointer->toImpl<TestInterfaceNotScriptWrappable>();
42    }
43    static void installConditionallyEnabledProperties(v8::Handle<v8::Object>, v8::Isolate*) { }
44    static void installConditionallyEnabledMethods(v8::Handle<v8::Object>, v8::Isolate*) { }
45
46private:
47    friend v8::Handle<v8::Object> wrap(TestInterfaceNotScriptWrappable*, v8::Handle<v8::Object> creationContext, v8::Isolate*);
48    static v8::Handle<v8::Object> createWrapper(PassRefPtr<TestInterfaceNotScriptWrappable>, v8::Handle<v8::Object> creationContext, v8::Isolate*);
49};
50
51v8::Handle<v8::Object> wrap(TestInterfaceNotScriptWrappable* impl, v8::Handle<v8::Object> creationContext, v8::Isolate*);
52
53inline v8::Handle<v8::Value> toV8(TestInterfaceNotScriptWrappable* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
54{
55    if (UNLIKELY(!impl))
56        return v8::Null(isolate);
57    v8::Handle<v8::Value> wrapper = DOMDataStore::getWrapper<V8TestInterfaceNotScriptWrappable>(impl, isolate);
58    if (!wrapper.IsEmpty())
59        return wrapper;
60
61    return wrap(impl, creationContext, isolate);
62}
63
64template<typename CallbackInfo>
65inline void v8SetReturnValue(const CallbackInfo& callbackInfo, TestInterfaceNotScriptWrappable* impl)
66{
67    if (UNLIKELY(!impl)) {
68        v8SetReturnValueNull(callbackInfo);
69        return;
70    }
71    if (DOMDataStore::setReturnValueFromWrapper<V8TestInterfaceNotScriptWrappable>(callbackInfo.GetReturnValue(), impl))
72        return;
73    v8::Handle<v8::Object> wrapper = wrap(impl, callbackInfo.Holder(), callbackInfo.GetIsolate());
74    v8SetReturnValue(callbackInfo, wrapper);
75}
76
77template<typename CallbackInfo>
78inline void v8SetReturnValueForMainWorld(const CallbackInfo& callbackInfo, TestInterfaceNotScriptWrappable* impl)
79{
80    ASSERT(DOMWrapperWorld::current(callbackInfo.GetIsolate()).isMainWorld());
81    if (UNLIKELY(!impl)) {
82        v8SetReturnValueNull(callbackInfo);
83        return;
84    }
85    if (DOMDataStore::setReturnValueFromWrapperForMainWorld<V8TestInterfaceNotScriptWrappable>(callbackInfo.GetReturnValue(), impl))
86        return;
87    v8::Handle<v8::Value> wrapper = wrap(impl, callbackInfo.Holder(), callbackInfo.GetIsolate());
88    v8SetReturnValue(callbackInfo, wrapper);
89}
90
91template<class CallbackInfo, class Wrappable>
92inline void v8SetReturnValueFast(const CallbackInfo& callbackInfo, TestInterfaceNotScriptWrappable* impl, Wrappable* wrappable)
93{
94    if (UNLIKELY(!impl)) {
95        v8SetReturnValueNull(callbackInfo);
96        return;
97    }
98    if (DOMDataStore::setReturnValueFromWrapperFast<V8TestInterfaceNotScriptWrappable>(callbackInfo.GetReturnValue(), impl, callbackInfo.Holder(), wrappable))
99        return;
100    v8::Handle<v8::Object> wrapper = wrap(impl, callbackInfo.Holder(), callbackInfo.GetIsolate());
101    v8SetReturnValue(callbackInfo, wrapper);
102}
103
104inline v8::Handle<v8::Value> toV8(PassRefPtr<TestInterfaceNotScriptWrappable> impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
105{
106    return toV8(impl.get(), creationContext, isolate);
107}
108
109template<class CallbackInfo>
110inline void v8SetReturnValue(const CallbackInfo& callbackInfo, PassRefPtr<TestInterfaceNotScriptWrappable> impl)
111{
112    v8SetReturnValue(callbackInfo, impl.get());
113}
114
115template<class CallbackInfo>
116inline void v8SetReturnValueForMainWorld(const CallbackInfo& callbackInfo, PassRefPtr<TestInterfaceNotScriptWrappable> impl)
117{
118    v8SetReturnValueForMainWorld(callbackInfo, impl.get());
119}
120
121template<class CallbackInfo, class Wrappable>
122inline void v8SetReturnValueFast(const CallbackInfo& callbackInfo, PassRefPtr<TestInterfaceNotScriptWrappable> impl, Wrappable* wrappable)
123{
124    v8SetReturnValueFast(callbackInfo, impl.get(), wrappable);
125}
126
127} // namespace blink
128#endif // V8TestInterfaceNotScriptWrappable_h
129