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