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 V8TestInterfaceCheckSecurity_h
8#define V8TestInterfaceCheckSecurity_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/TestInterfaceCheckSecurity.h"
15#include "platform/heap/Handle.h"
16
17namespace blink {
18
19class V8TestInterfaceCheckSecurity {
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 TestInterfaceCheckSecurity* toImpl(v8::Handle<v8::Object> object)
25    {
26        return toImpl(blink::toScriptWrappableBase(object));
27    }
28    static TestInterfaceCheckSecurity* 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(TestInterfaceCheckSecurity* impl)
35    {
36        return impl->toScriptWrappableBase();
37    }
38
39    static inline TestInterfaceCheckSecurity* toImpl(ScriptWrappableBase* internalPointer)
40    {
41        return internalPointer->toImpl<TestInterfaceCheckSecurity>();
42    }
43    static void installConditionallyEnabledProperties(v8::Handle<v8::Object>, v8::Isolate*) { }
44    static void installConditionallyEnabledMethods(v8::Handle<v8::Object>, v8::Isolate*) { }
45
46private:
47};
48
49inline v8::Handle<v8::Object> wrap(TestInterfaceCheckSecurity* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
50{
51    return impl->wrap(creationContext, isolate);
52}
53
54inline v8::Handle<v8::Value> toV8(TestInterfaceCheckSecurity* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
55{
56    if (UNLIKELY(!impl))
57        return v8::Null(isolate);
58    v8::Handle<v8::Value> wrapper = DOMDataStore::getWrapper<V8TestInterfaceCheckSecurity>(impl, isolate);
59    if (!wrapper.IsEmpty())
60        return wrapper;
61
62    return impl->wrap(creationContext, isolate);
63}
64
65template<typename CallbackInfo>
66inline void v8SetReturnValue(const CallbackInfo& callbackInfo, TestInterfaceCheckSecurity* impl)
67{
68    if (UNLIKELY(!impl)) {
69        v8SetReturnValueNull(callbackInfo);
70        return;
71    }
72    if (DOMDataStore::setReturnValueFromWrapper<V8TestInterfaceCheckSecurity>(callbackInfo.GetReturnValue(), impl))
73        return;
74    v8::Handle<v8::Object> wrapper = wrap(impl, callbackInfo.Holder(), callbackInfo.GetIsolate());
75    v8SetReturnValue(callbackInfo, wrapper);
76}
77
78template<typename CallbackInfo>
79inline void v8SetReturnValueForMainWorld(const CallbackInfo& callbackInfo, TestInterfaceCheckSecurity* impl)
80{
81    ASSERT(DOMWrapperWorld::current(callbackInfo.GetIsolate()).isMainWorld());
82    if (UNLIKELY(!impl)) {
83        v8SetReturnValueNull(callbackInfo);
84        return;
85    }
86    if (DOMDataStore::setReturnValueFromWrapperForMainWorld<V8TestInterfaceCheckSecurity>(callbackInfo.GetReturnValue(), impl))
87        return;
88    v8::Handle<v8::Value> wrapper = wrap(impl, callbackInfo.Holder(), callbackInfo.GetIsolate());
89    v8SetReturnValue(callbackInfo, wrapper);
90}
91
92template<class CallbackInfo, class Wrappable>
93inline void v8SetReturnValueFast(const CallbackInfo& callbackInfo, TestInterfaceCheckSecurity* impl, Wrappable* wrappable)
94{
95    if (UNLIKELY(!impl)) {
96        v8SetReturnValueNull(callbackInfo);
97        return;
98    }
99    if (DOMDataStore::setReturnValueFromWrapperFast<V8TestInterfaceCheckSecurity>(callbackInfo.GetReturnValue(), impl, callbackInfo.Holder(), wrappable))
100        return;
101    v8::Handle<v8::Object> wrapper = wrap(impl, callbackInfo.Holder(), callbackInfo.GetIsolate());
102    v8SetReturnValue(callbackInfo, wrapper);
103}
104
105inline v8::Handle<v8::Value> toV8(PassRefPtr<TestInterfaceCheckSecurity> impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
106{
107    return toV8(impl.get(), creationContext, isolate);
108}
109
110template<class CallbackInfo>
111inline void v8SetReturnValue(const CallbackInfo& callbackInfo, PassRefPtr<TestInterfaceCheckSecurity> impl)
112{
113    v8SetReturnValue(callbackInfo, impl.get());
114}
115
116template<class CallbackInfo>
117inline void v8SetReturnValueForMainWorld(const CallbackInfo& callbackInfo, PassRefPtr<TestInterfaceCheckSecurity> impl)
118{
119    v8SetReturnValueForMainWorld(callbackInfo, impl.get());
120}
121
122template<class CallbackInfo, class Wrappable>
123inline void v8SetReturnValueFast(const CallbackInfo& callbackInfo, PassRefPtr<TestInterfaceCheckSecurity> impl, Wrappable* wrappable)
124{
125    v8SetReturnValueFast(callbackInfo, impl.get(), wrappable);
126}
127
128} // namespace blink
129#endif // V8TestInterfaceCheckSecurity_h
130