f36d413f5943271ef69145a07bdccf530b22f5c1
[WebKit.git] / Source / WebCore / bindings / scripts / test / JS / JSTestInterface.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., 51 Franklin Street, Fifth Floor,
18     Boston, MA 02110-1301, USA.
19 */
20
21 #ifndef JSTestInterface_h
22 #define JSTestInterface_h
23
24 #if ENABLE(Condition1) || ENABLE(Condition2)
25
26 #include "JSDOMBinding.h"
27 #include "TestInterface.h"
28 #include <runtime/JSGlobalObject.h>
29 #include <runtime/JSObject.h>
30 #include <runtime/ObjectPrototype.h>
31
32 namespace WebCore {
33
34 class JSTestInterface : public JSDOMWrapper {
35 public:
36     typedef JSDOMWrapper Base;
37     static JSTestInterface* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestInterface> impl)
38     {
39         JSTestInterface* ptr = new (NotNull, JSC::allocateCell<JSTestInterface>(globalObject->vm().heap)) JSTestInterface(structure, globalObject, impl);
40         ptr->finishCreation(globalObject->vm());
41         return ptr;
42     }
43
44     static JSC::JSObject* createPrototype(JSC::ExecState*, JSC::JSGlobalObject*);
45     static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
46     static bool getOwnPropertyDescriptor(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertyDescriptor&);
47     static void put(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&);
48     static void putByIndex(JSC::JSCell*, JSC::ExecState*, unsigned propertyName, JSC::JSValue, bool shouldThrow);
49     bool putDelegate(JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&);
50     static void destroy(JSC::JSCell*);
51     ~JSTestInterface();
52     static const JSC::ClassInfo s_info;
53
54     static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
55     {
56         return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), &s_info);
57     }
58
59     static JSC::JSValue getConstructor(JSC::ExecState*, JSC::JSGlobalObject*);
60
61     // Custom attributes
62 #if ENABLE(Condition11) || ENABLE(Condition12)
63     JSC::JSValue supplementalStr3(JSC::ExecState*) const;
64 #endif
65 #if ENABLE(Condition11) || ENABLE(Condition12)
66     void setSupplementalStr3(JSC::ExecState*, JSC::JSValue);
67 #endif
68
69     // Custom functions
70 #if ENABLE(Condition11) || ENABLE(Condition12)
71     JSC::JSValue supplementalMethod3(JSC::ExecState*);
72 #endif
73     TestInterface* impl() const { return m_impl; }
74     void releaseImpl() { m_impl->deref(); m_impl = 0; }
75
76     void releaseImplIfNotNull() { if (m_impl) { m_impl->deref(); m_impl = 0; } }
77
78 private:
79     TestInterface* m_impl;
80 protected:
81     JSTestInterface(JSC::Structure*, JSDOMGlobalObject*, PassRefPtr<TestInterface>);
82     void finishCreation(JSC::VM&);
83     static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | Base::StructureFlags;
84 };
85
86 class JSTestInterfaceOwner : public JSC::WeakHandleOwner {
87 public:
88     virtual bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::SlotVisitor&);
89     virtual void finalize(JSC::Handle<JSC::Unknown>, void* context);
90 };
91
92 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld*, TestInterface*)
93 {
94     DEFINE_STATIC_LOCAL(JSTestInterfaceOwner, jsTestInterfaceOwner, ());
95     return &jsTestInterfaceOwner;
96 }
97
98 inline void* wrapperContext(DOMWrapperWorld* world, TestInterface*)
99 {
100     return world;
101 }
102
103 JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestInterface*);
104 TestInterface* toTestInterface(JSC::JSValue);
105
106 class JSTestInterfacePrototype : public JSC::JSNonFinalObject {
107 public:
108     typedef JSC::JSNonFinalObject Base;
109     static JSC::JSObject* self(JSC::ExecState*, JSC::JSGlobalObject*);
110     static JSTestInterfacePrototype* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure)
111     {
112         JSTestInterfacePrototype* ptr = new (NotNull, JSC::allocateCell<JSTestInterfacePrototype>(vm.heap)) JSTestInterfacePrototype(vm, globalObject, structure);
113         ptr->finishCreation(vm);
114         return ptr;
115     }
116
117     static const JSC::ClassInfo s_info;
118     static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
119     static bool getOwnPropertyDescriptor(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertyDescriptor&);
120     static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
121     {
122         return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), &s_info);
123     }
124
125 private:
126     JSTestInterfacePrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(vm, structure) { }
127 protected:
128     static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
129 };
130
131 class JSTestInterfaceConstructor : public DOMConstructorObject {
132 private:
133     JSTestInterfaceConstructor(JSC::Structure*, JSDOMGlobalObject*);
134     void finishCreation(JSC::ExecState*, JSDOMGlobalObject*);
135
136 public:
137     typedef DOMConstructorObject Base;
138     static JSTestInterfaceConstructor* create(JSC::ExecState* exec, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
139     {
140         JSTestInterfaceConstructor* ptr = new (NotNull, JSC::allocateCell<JSTestInterfaceConstructor>(*exec->heap())) JSTestInterfaceConstructor(structure, globalObject);
141         ptr->finishCreation(exec, globalObject);
142         return ptr;
143     }
144
145     static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
146     static bool getOwnPropertyDescriptor(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertyDescriptor&);
147     static const JSC::ClassInfo s_info;
148     static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
149     {
150         return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), &s_info);
151     }
152 protected:
153     static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::ImplementsHasInstance | DOMConstructorObject::StructureFlags;
154     static JSC::EncodedJSValue JSC_HOST_CALL constructJSTestInterface(JSC::ExecState*);
155 #if ENABLE(TEST_INTERFACE)
156     static JSC::ConstructType getConstructData(JSC::JSCell*, JSC::ConstructData&);
157 #endif // ENABLE(TEST_INTERFACE)
158 };
159
160 // Functions
161
162 #if ENABLE(Condition11) || ENABLE(Condition12)
163 JSC::EncodedJSValue JSC_HOST_CALL jsTestInterfacePrototypeFunctionSupplementalMethod1(JSC::ExecState*);
164 #endif
165 #if ENABLE(Condition11) || ENABLE(Condition12)
166 JSC::EncodedJSValue JSC_HOST_CALL jsTestInterfacePrototypeFunctionSupplementalMethod2(JSC::ExecState*);
167 #endif
168 #if ENABLE(Condition11) || ENABLE(Condition12)
169 JSC::EncodedJSValue JSC_HOST_CALL jsTestInterfacePrototypeFunctionSupplementalMethod3(JSC::ExecState*);
170 #endif
171 #if ENABLE(Condition11) || ENABLE(Condition12)
172 JSC::EncodedJSValue JSC_HOST_CALL jsTestInterfaceConstructorFunctionSupplementalMethod4(JSC::ExecState*);
173 #endif
174 // Attributes
175
176 #if ENABLE(Condition11) || ENABLE(Condition12)
177 JSC::JSValue jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
178 #endif
179 #if ENABLE(Condition11) || ENABLE(Condition12)
180 JSC::JSValue jsTestInterfaceConstructorSupplementalStaticAttr(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
181 void setJSTestInterfaceConstructorSupplementalStaticAttr(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
182 #endif
183 #if ENABLE(Condition11) || ENABLE(Condition12)
184 JSC::JSValue jsTestInterfaceSupplementalStr1(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
185 #endif
186 #if ENABLE(Condition11) || ENABLE(Condition12)
187 JSC::JSValue jsTestInterfaceSupplementalStr2(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
188 void setJSTestInterfaceSupplementalStr2(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
189 #endif
190 #if ENABLE(Condition11) || ENABLE(Condition12)
191 JSC::JSValue jsTestInterfaceSupplementalStr3(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
192 void setJSTestInterfaceSupplementalStr3(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
193 #endif
194 #if ENABLE(Condition11) || ENABLE(Condition12)
195 JSC::JSValue jsTestInterfaceSupplementalNode(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
196 void setJSTestInterfaceSupplementalNode(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
197 #endif
198 JSC::JSValue jsTestInterfaceConstructor(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
199 // Constants
200
201 #if ENABLE(Condition11) || ENABLE(Condition12)
202 JSC::JSValue jsTestInterfaceSUPPLEMENTALCONSTANT1(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
203 #endif
204 #if ENABLE(Condition11) || ENABLE(Condition12)
205 JSC::JSValue jsTestInterfaceSUPPLEMENTALCONSTANT2(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
206 #endif
207
208 } // namespace WebCore
209
210 #endif // ENABLE(Condition1) || ENABLE(Condition2)
211
212 #endif