Update binding test expectation for http://trac.webkit.org/changeset/128400
[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->globalData().heap)) JSTestInterface(structure, globalObject, impl);
40         ptr->finishCreation(globalObject->globalData());
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::JSGlobalData& globalData, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
55     {
56         return JSC::Structure::create(globalData, 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::JSGlobalData&);
83     static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | Base::StructureFlags;
84 };
85
86 class JSTestInterfaceOwner : public JSC::WeakHandleOwner {
87     virtual bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::SlotVisitor&);
88     virtual void finalize(JSC::Handle<JSC::Unknown>, void* context);
89 };
90
91 inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld*, TestInterface*)
92 {
93     DEFINE_STATIC_LOCAL(JSTestInterfaceOwner, jsTestInterfaceOwner, ());
94     return &jsTestInterfaceOwner;
95 }
96
97 inline void* wrapperContext(DOMWrapperWorld* world, TestInterface*)
98 {
99     return world;
100 }
101
102 JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestInterface*);
103 TestInterface* toTestInterface(JSC::JSValue);
104
105 class JSTestInterfacePrototype : public JSC::JSNonFinalObject {
106 public:
107     typedef JSC::JSNonFinalObject Base;
108     static JSC::JSObject* self(JSC::ExecState*, JSC::JSGlobalObject*);
109     static JSTestInterfacePrototype* create(JSC::JSGlobalData& globalData, JSC::JSGlobalObject* globalObject, JSC::Structure* structure)
110     {
111         JSTestInterfacePrototype* ptr = new (NotNull, JSC::allocateCell<JSTestInterfacePrototype>(globalData.heap)) JSTestInterfacePrototype(globalData, globalObject, structure);
112         ptr->finishCreation(globalData);
113         return ptr;
114     }
115
116     static const JSC::ClassInfo s_info;
117     static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
118     static bool getOwnPropertyDescriptor(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertyDescriptor&);
119     static JSC::Structure* createStructure(JSC::JSGlobalData& globalData, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
120     {
121         return JSC::Structure::create(globalData, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), &s_info);
122     }
123
124 private:
125     JSTestInterfacePrototype(JSC::JSGlobalData& globalData, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(globalData, structure) { }
126 protected:
127     static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags;
128 };
129
130 class JSTestInterfaceConstructor : public DOMConstructorObject {
131 private:
132     JSTestInterfaceConstructor(JSC::Structure*, JSDOMGlobalObject*);
133     void finishCreation(JSC::ExecState*, JSDOMGlobalObject*);
134
135 public:
136     typedef DOMConstructorObject Base;
137     static JSTestInterfaceConstructor* create(JSC::ExecState* exec, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
138     {
139         JSTestInterfaceConstructor* ptr = new (NotNull, JSC::allocateCell<JSTestInterfaceConstructor>(*exec->heap())) JSTestInterfaceConstructor(structure, globalObject);
140         ptr->finishCreation(exec, globalObject);
141         return ptr;
142     }
143
144     static bool getOwnPropertySlot(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&);
145     static bool getOwnPropertyDescriptor(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertyDescriptor&);
146     static const JSC::ClassInfo s_info;
147     static JSC::Structure* createStructure(JSC::JSGlobalData& globalData, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
148     {
149         return JSC::Structure::create(globalData, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), &s_info);
150     }
151 protected:
152     static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::ImplementsHasInstance | DOMConstructorObject::StructureFlags;
153     static JSC::EncodedJSValue JSC_HOST_CALL constructJSTestInterface(JSC::ExecState*);
154     static JSC::ConstructType getConstructData(JSC::JSCell*, JSC::ConstructData&);
155 };
156
157 // Functions
158
159 #if ENABLE(Condition11) || ENABLE(Condition12)
160 JSC::EncodedJSValue JSC_HOST_CALL jsTestInterfacePrototypeFunctionSupplementalMethod1(JSC::ExecState*);
161 #endif
162 #if ENABLE(Condition11) || ENABLE(Condition12)
163 JSC::EncodedJSValue JSC_HOST_CALL jsTestInterfacePrototypeFunctionSupplementalMethod2(JSC::ExecState*);
164 #endif
165 #if ENABLE(Condition11) || ENABLE(Condition12)
166 JSC::EncodedJSValue JSC_HOST_CALL jsTestInterfacePrototypeFunctionSupplementalMethod3(JSC::ExecState*);
167 #endif
168 #if ENABLE(Condition11) || ENABLE(Condition12)
169 JSC::EncodedJSValue JSC_HOST_CALL jsTestInterfaceConstructorFunctionSupplementalMethod4(JSC::ExecState*);
170 #endif
171 // Attributes
172
173 #if ENABLE(Condition11) || ENABLE(Condition12)
174 JSC::JSValue jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
175 #endif
176 #if ENABLE(Condition11) || ENABLE(Condition12)
177 JSC::JSValue jsTestInterfaceConstructorSupplementalStaticAttr(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
178 void setJSTestInterfaceConstructorSupplementalStaticAttr(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
179 #endif
180 #if ENABLE(Condition11) || ENABLE(Condition12)
181 JSC::JSValue jsTestInterfaceSupplementalStr1(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
182 #endif
183 #if ENABLE(Condition11) || ENABLE(Condition12)
184 JSC::JSValue jsTestInterfaceSupplementalStr2(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
185 void setJSTestInterfaceSupplementalStr2(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
186 #endif
187 #if ENABLE(Condition11) || ENABLE(Condition12)
188 JSC::JSValue jsTestInterfaceSupplementalStr3(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
189 void setJSTestInterfaceSupplementalStr3(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
190 #endif
191 #if ENABLE(Condition11) || ENABLE(Condition12)
192 JSC::JSValue jsTestInterfaceSupplementalNode(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
193 void setJSTestInterfaceSupplementalNode(JSC::ExecState*, JSC::JSObject*, JSC::JSValue);
194 #endif
195 JSC::JSValue jsTestInterfaceConstructor(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
196 // Constants
197
198 #if ENABLE(Condition11) || ENABLE(Condition12)
199 JSC::JSValue jsTestInterfaceSUPPLEMENTALCONSTANT1(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
200 #endif
201 #if ENABLE(Condition11) || ENABLE(Condition12)
202 JSC::JSValue jsTestInterfaceSUPPLEMENTALCONSTANT2(JSC::ExecState*, JSC::JSValue, JSC::PropertyName);
203 #endif
204
205 } // namespace WebCore
206
207 #endif // ENABLE(Condition1) || ENABLE(Condition2)
208
209 #endif