[V8] Add an optional Isolate parameter to GetTemplate() and GetRawTemplate()
[WebKit-https.git] / Source / WebCore / bindings / scripts / test / V8 / V8TestActiveDOMObject.h
1 /*
2     This file is part of the WebKit open source project.
3     This file has been generated by generate-bindings.pl. DO NOT MODIFY!
4
5     This library is free software; you can redistribute it and/or
6     modify it under the terms of the GNU Library General Public
7     License as published by the Free Software Foundation; either
8     version 2 of the License, or (at your option) any later version.
9
10     This library is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13     Library General Public License for more details.
14
15     You should have received a copy of the GNU Library General Public License
16     along with this library; see the file COPYING.LIB.  If not, write to
17     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18     Boston, MA 02111-1307, USA.
19 */
20
21 #ifndef V8TestActiveDOMObject_h
22 #define V8TestActiveDOMObject_h
23
24 #include "TestActiveDOMObject.h"
25 #include "V8Binding.h"
26 #include "V8DOMWrapper.h"
27 #include "WrapperTypeInfo.h"
28 #include <v8.h>
29 #include <wtf/HashMap.h>
30 #include <wtf/text/StringHash.h>
31
32 namespace WebCore {
33
34 class V8TestActiveDOMObject {
35 public:
36     static const bool hasDependentLifetime = false;
37     static bool HasInstance(v8::Handle<v8::Value>);
38     static v8::Persistent<v8::FunctionTemplate> GetRawTemplate(v8::Isolate* = 0);
39     static v8::Persistent<v8::FunctionTemplate> GetTemplate(v8::Isolate* = 0);
40     static TestActiveDOMObject* toNative(v8::Handle<v8::Object> object)
41     {
42         return reinterpret_cast<TestActiveDOMObject*>(object->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex));
43     }
44     static void derefObject(void*);
45     static WrapperTypeInfo info;
46     static const int internalFieldCount = v8DefaultWrapperInternalFieldCount + 0;
47     static bool namedSecurityCheck(v8::Local<v8::Object> host, v8::Local<v8::Value> key, v8::AccessType, v8::Local<v8::Value> data);
48     static bool indexedSecurityCheck(v8::Local<v8::Object> host, uint32_t index, v8::AccessType, v8::Local<v8::Value> data);
49     static void installPerContextProperties(v8::Handle<v8::Object>, TestActiveDOMObject*) { }
50     static void installPerContextPrototypeProperties(v8::Handle<v8::Object>) { }
51 private:
52     friend v8::Handle<v8::Object> wrap(TestActiveDOMObject*, v8::Handle<v8::Object> creationContext, v8::Isolate*);
53     static v8::Handle<v8::Object> createWrapper(PassRefPtr<TestActiveDOMObject>, v8::Handle<v8::Object> creationContext, v8::Isolate*);
54 };
55
56
57 inline v8::Handle<v8::Object> wrap(TestActiveDOMObject* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
58 {
59     ASSERT(impl);
60     ASSERT(DOMDataStore::getWrapper(impl, isolate).IsEmpty());
61     return V8TestActiveDOMObject::createWrapper(impl, creationContext, isolate);
62 }
63
64 inline v8::Handle<v8::Value> toV8(TestActiveDOMObject* impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
65 {
66     if (UNLIKELY(!impl))
67         return v8NullWithCheck(isolate);
68     v8::Handle<v8::Value> wrapper = DOMDataStore::getWrapper(impl, isolate);
69     if (!wrapper.IsEmpty())
70         return wrapper;
71     return wrap(impl, creationContext, isolate);
72 }
73
74 template<class HolderContainer, class Wrappable>
75 inline v8::Handle<v8::Value> toV8Fast(TestActiveDOMObject* impl, const HolderContainer& container, Wrappable* wrappable)
76 {
77     if (UNLIKELY(!impl))
78         return v8Null(container.GetIsolate());
79     v8::Handle<v8::Object> wrapper = DOMDataStore::getWrapperFast(impl, container, wrappable);
80     if (!wrapper.IsEmpty())
81         return wrapper;
82     return wrap(impl, container.Holder(), container.GetIsolate());
83 }
84
85 template<class HolderContainer, class Wrappable>
86 inline v8::Handle<v8::Value> toV8Fast(PassRefPtr< TestActiveDOMObject > impl, const HolderContainer& container, Wrappable* wrappable)
87 {
88     return toV8Fast(impl.get(), container, wrappable);
89 }
90
91 inline v8::Handle<v8::Value> toV8(PassRefPtr< TestActiveDOMObject > impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
92 {
93     return toV8(impl.get(), creationContext, isolate);
94 }
95
96 }
97
98 #endif // V8TestActiveDOMObject_h