Move WebCore into Source
[WebKit-https.git] / Source / WebCore / bindings / scripts / test / JS / JSTestObj.cpp
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 #include "config.h"
22 #include "JSTestObj.h"
23
24 #include "ExceptionCode.h"
25 #include "HTMLNames.h"
26 #include "IDBBindingUtilities.h"
27 #include "IDBKey.h"
28 #include "JSDOMBinding.h"
29 #include "JSEventListener.h"
30 #include "JSOptionsObject.h"
31 #include "JSTestCallback.h"
32 #include "JSTestObj.h"
33 #include "JSlog.h"
34 #include "KURL.h"
35 #include "ScriptArguments.h"
36 #include "ScriptCallStack.h"
37 #include "ScriptCallStackFactory.h"
38 #include "SerializedScriptValue.h"
39 #include "TestObj.h"
40 #include <runtime/Error.h>
41 #include <runtime/JSNumberCell.h>
42 #include <runtime/JSString.h>
43 #include <wtf/GetPtr.h>
44
45 using namespace JSC;
46
47 namespace WebCore {
48
49 ASSERT_CLASS_FITS_IN_CELL(JSTestObj);
50
51 /* Hash table */
52 #if ENABLE(JIT)
53 #define THUNK_GENERATOR(generator) , generator
54 #else
55 #define THUNK_GENERATOR(generator)
56 #endif
57
58 static const HashTableValue JSTestObjTableValues[37] =
59 {
60     { "readOnlyIntAttr", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyIntAttr), (intptr_t)0 THUNK_GENERATOR(0) },
61     { "readOnlyStringAttr", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyStringAttr), (intptr_t)0 THUNK_GENERATOR(0) },
62     { "readOnlyTestObjAttr", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlyTestObjAttr), (intptr_t)0 THUNK_GENERATOR(0) },
63     { "shortAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjShortAttr), (intptr_t)setJSTestObjShortAttr THUNK_GENERATOR(0) },
64     { "unsignedShortAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedShortAttr), (intptr_t)setJSTestObjUnsignedShortAttr THUNK_GENERATOR(0) },
65     { "intAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjIntAttr), (intptr_t)setJSTestObjIntAttr THUNK_GENERATOR(0) },
66     { "longLongAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjLongLongAttr), (intptr_t)setJSTestObjLongLongAttr THUNK_GENERATOR(0) },
67     { "unsignedLongLongAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjUnsignedLongLongAttr), (intptr_t)setJSTestObjUnsignedLongLongAttr THUNK_GENERATOR(0) },
68     { "stringAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttr), (intptr_t)setJSTestObjStringAttr THUNK_GENERATOR(0) },
69     { "testObjAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjTestObjAttr), (intptr_t)setJSTestObjTestObjAttr THUNK_GENERATOR(0) },
70     { "XMLObjAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjXMLObjAttr), (intptr_t)setJSTestObjXMLObjAttr THUNK_GENERATOR(0) },
71     { "create", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCreate), (intptr_t)setJSTestObjCreate THUNK_GENERATOR(0) },
72     { "reflectedStringAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t)setJSTestObjReflectedStringAttr THUNK_GENERATOR(0) },
73     { "reflectedIntegralAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedIntegralAttr), (intptr_t)setJSTestObjReflectedIntegralAttr THUNK_GENERATOR(0) },
74     { "reflectedUnsignedIntegralAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedUnsignedIntegralAttr), (intptr_t)setJSTestObjReflectedUnsignedIntegralAttr THUNK_GENERATOR(0) },
75     { "reflectedBooleanAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedBooleanAttr), (intptr_t)setJSTestObjReflectedBooleanAttr THUNK_GENERATOR(0) },
76     { "reflectedURLAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedURLAttr), (intptr_t)setJSTestObjReflectedURLAttr THUNK_GENERATOR(0) },
77     { "reflectedNonEmptyURLAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedNonEmptyURLAttr), (intptr_t)setJSTestObjReflectedNonEmptyURLAttr THUNK_GENERATOR(0) },
78     { "reflectedStringAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t)setJSTestObjReflectedStringAttr THUNK_GENERATOR(0) },
79     { "reflectedCustomIntegralAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomIntegralAttr), (intptr_t)setJSTestObjReflectedCustomIntegralAttr THUNK_GENERATOR(0) },
80     { "reflectedCustomBooleanAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomBooleanAttr), (intptr_t)setJSTestObjReflectedCustomBooleanAttr THUNK_GENERATOR(0) },
81     { "reflectedCustomURLAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomURLAttr), (intptr_t)setJSTestObjReflectedCustomURLAttr THUNK_GENERATOR(0) },
82     { "reflectedCustomNonEmptyURLAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedCustomNonEmptyURLAttr), (intptr_t)setJSTestObjReflectedCustomNonEmptyURLAttr THUNK_GENERATOR(0) },
83     { "attrWithGetterException", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttrWithGetterException), (intptr_t)setJSTestObjAttrWithGetterException THUNK_GENERATOR(0) },
84     { "attrWithSetterException", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjAttrWithSetterException), (intptr_t)setJSTestObjAttrWithSetterException THUNK_GENERATOR(0) },
85     { "stringAttrWithGetterException", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrWithGetterException), (intptr_t)setJSTestObjStringAttrWithGetterException THUNK_GENERATOR(0) },
86     { "stringAttrWithSetterException", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrWithSetterException), (intptr_t)setJSTestObjStringAttrWithSetterException THUNK_GENERATOR(0) },
87     { "customAttr", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCustomAttr), (intptr_t)setJSTestObjCustomAttr THUNK_GENERATOR(0) },
88     { "scriptStringAttr", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjScriptStringAttr), (intptr_t)0 THUNK_GENERATOR(0) },
89 #if ENABLE(Condition1)
90     { "conditionalAttr1", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr1), (intptr_t)setJSTestObjConditionalAttr1 THUNK_GENERATOR(0) },
91 #endif
92 #if ENABLE(Condition1) && ENABLE(Condition2)
93     { "conditionalAttr2", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr2), (intptr_t)setJSTestObjConditionalAttr2 THUNK_GENERATOR(0) },
94 #endif
95 #if ENABLE(Condition1) || ENABLE(Condition2)
96     { "conditionalAttr3", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConditionalAttr3), (intptr_t)setJSTestObjConditionalAttr3 THUNK_GENERATOR(0) },
97 #endif
98     { "description", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjDescription), (intptr_t)0 THUNK_GENERATOR(0) },
99     { "id", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjId), (intptr_t)setJSTestObjId THUNK_GENERATOR(0) },
100     { "hash", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjHash), (intptr_t)0 THUNK_GENERATOR(0) },
101     { "constructor", DontEnum | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConstructor), (intptr_t)0 THUNK_GENERATOR(0) },
102     { 0, 0, 0, 0 THUNK_GENERATOR(0) }
103 };
104
105 #undef THUNK_GENERATOR
106 static JSC_CONST_HASHTABLE HashTable JSTestObjTable = { 133, 127, JSTestObjTableValues, 0 };
107 /* Hash table for constructor */
108 #if ENABLE(JIT)
109 #define THUNK_GENERATOR(generator) , generator
110 #else
111 #define THUNK_GENERATOR(generator)
112 #endif
113
114 static const HashTableValue JSTestObjConstructorTableValues[12] =
115 {
116     { "CONST_VALUE_0", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_0), (intptr_t)0 THUNK_GENERATOR(0) },
117     { "CONST_VALUE_1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_1), (intptr_t)0 THUNK_GENERATOR(0) },
118     { "CONST_VALUE_2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_2), (intptr_t)0 THUNK_GENERATOR(0) },
119     { "CONST_VALUE_4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_4), (intptr_t)0 THUNK_GENERATOR(0) },
120     { "CONST_VALUE_8", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_8), (intptr_t)0 THUNK_GENERATOR(0) },
121     { "CONST_VALUE_9", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_9), (intptr_t)0 THUNK_GENERATOR(0) },
122     { "CONST_VALUE_10", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_10), (intptr_t)0 THUNK_GENERATOR(0) },
123     { "CONST_VALUE_11", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_11), (intptr_t)0 THUNK_GENERATOR(0) },
124     { "CONST_VALUE_12", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_12), (intptr_t)0 THUNK_GENERATOR(0) },
125     { "CONST_VALUE_13", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_13), (intptr_t)0 THUNK_GENERATOR(0) },
126     { "CONST_VALUE_14", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_14), (intptr_t)0 THUNK_GENERATOR(0) },
127     { 0, 0, 0, 0 THUNK_GENERATOR(0) }
128 };
129
130 #undef THUNK_GENERATOR
131 static JSC_CONST_HASHTABLE HashTable JSTestObjConstructorTable = { 33, 31, JSTestObjConstructorTableValues, 0 };
132
133 COMPILE_ASSERT(0 == TestObj::CONST_VALUE_0, TestObjEnumCONST_VALUE_0IsWrongUseDontCheckEnums);
134 COMPILE_ASSERT(1 == TestObj::CONST_VALUE_1, TestObjEnumCONST_VALUE_1IsWrongUseDontCheckEnums);
135 COMPILE_ASSERT(2 == TestObj::CONST_VALUE_2, TestObjEnumCONST_VALUE_2IsWrongUseDontCheckEnums);
136 COMPILE_ASSERT(4 == TestObj::CONST_VALUE_4, TestObjEnumCONST_VALUE_4IsWrongUseDontCheckEnums);
137 COMPILE_ASSERT(8 == TestObj::CONST_VALUE_8, TestObjEnumCONST_VALUE_8IsWrongUseDontCheckEnums);
138 COMPILE_ASSERT(-1 == TestObj::CONST_VALUE_9, TestObjEnumCONST_VALUE_9IsWrongUseDontCheckEnums);
139 COMPILE_ASSERT("my constant string" == TestObj::CONST_VALUE_10, TestObjEnumCONST_VALUE_10IsWrongUseDontCheckEnums);
140 COMPILE_ASSERT(0xffffffff == TestObj::CONST_VALUE_11, TestObjEnumCONST_VALUE_11IsWrongUseDontCheckEnums);
141 COMPILE_ASSERT(0x01 == TestObj::CONST_VALUE_12, TestObjEnumCONST_VALUE_12IsWrongUseDontCheckEnums);
142 COMPILE_ASSERT(0X20 == TestObj::CONST_VALUE_13, TestObjEnumCONST_VALUE_13IsWrongUseDontCheckEnums);
143 COMPILE_ASSERT(0x1abc == TestObj::CONST_VALUE_14, TestObjEnumCONST_VALUE_14IsWrongUseDontCheckEnums);
144
145 class JSTestObjConstructor : public DOMConstructorObject {
146 public:
147     JSTestObjConstructor(JSC::ExecState*, JSDOMGlobalObject*);
148
149     virtual bool getOwnPropertySlot(JSC::ExecState*, const JSC::Identifier&, JSC::PropertySlot&);
150     virtual bool getOwnPropertyDescriptor(JSC::ExecState*, const JSC::Identifier&, JSC::PropertyDescriptor&);
151     virtual const JSC::ClassInfo* classInfo() const { return &s_info; }
152     static const JSC::ClassInfo s_info;
153     static PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
154     {
155         return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount);
156     }
157 protected:
158     static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::ImplementsHasInstance | DOMConstructorObject::StructureFlags;
159 };
160
161 const ClassInfo JSTestObjConstructor::s_info = { "TestObjConstructor", 0, &JSTestObjConstructorTable, 0 };
162
163 JSTestObjConstructor::JSTestObjConstructor(ExecState* exec, JSDOMGlobalObject* globalObject)
164     : DOMConstructorObject(JSTestObjConstructor::createStructure(globalObject->objectPrototype()), globalObject)
165 {
166     putDirect(exec->propertyNames().prototype, JSTestObjPrototype::self(exec, globalObject), DontDelete | ReadOnly);
167 }
168
169 bool JSTestObjConstructor::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
170 {
171     return getStaticValueSlot<JSTestObjConstructor, DOMObject>(exec, &JSTestObjConstructorTable, this, propertyName, slot);
172 }
173
174 bool JSTestObjConstructor::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
175 {
176     return getStaticValueDescriptor<JSTestObjConstructor, DOMObject>(exec, &JSTestObjConstructorTable, this, propertyName, descriptor);
177 }
178
179 /* Hash table for prototype */
180 #if ENABLE(JIT)
181 #define THUNK_GENERATOR(generator) , generator
182 #else
183 #define THUNK_GENERATOR(generator)
184 #endif
185
186 static const HashTableValue JSTestObjPrototypeTableValues[48] =
187 {
188     { "CONST_VALUE_0", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_0), (intptr_t)0 THUNK_GENERATOR(0) },
189     { "CONST_VALUE_1", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_1), (intptr_t)0 THUNK_GENERATOR(0) },
190     { "CONST_VALUE_2", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_2), (intptr_t)0 THUNK_GENERATOR(0) },
191     { "CONST_VALUE_4", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_4), (intptr_t)0 THUNK_GENERATOR(0) },
192     { "CONST_VALUE_8", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_8), (intptr_t)0 THUNK_GENERATOR(0) },
193     { "CONST_VALUE_9", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_9), (intptr_t)0 THUNK_GENERATOR(0) },
194     { "CONST_VALUE_10", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_10), (intptr_t)0 THUNK_GENERATOR(0) },
195     { "CONST_VALUE_11", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_11), (intptr_t)0 THUNK_GENERATOR(0) },
196     { "CONST_VALUE_12", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_12), (intptr_t)0 THUNK_GENERATOR(0) },
197     { "CONST_VALUE_13", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_13), (intptr_t)0 THUNK_GENERATOR(0) },
198     { "CONST_VALUE_14", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCONST_VALUE_14), (intptr_t)0 THUNK_GENERATOR(0) },
199     { "voidMethod", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionVoidMethod), (intptr_t)0 THUNK_GENERATOR(0) },
200     { "voidMethodWithArgs", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionVoidMethodWithArgs), (intptr_t)3 THUNK_GENERATOR(0) },
201     { "intMethod", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionIntMethod), (intptr_t)0 THUNK_GENERATOR(0) },
202     { "intMethodWithArgs", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionIntMethodWithArgs), (intptr_t)3 THUNK_GENERATOR(0) },
203     { "objMethod", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionObjMethod), (intptr_t)0 THUNK_GENERATOR(0) },
204     { "objMethodWithArgs", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionObjMethodWithArgs), (intptr_t)3 THUNK_GENERATOR(0) },
205     { "methodThatRequiresAllArgs", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodThatRequiresAllArgs), (intptr_t)2 THUNK_GENERATOR(0) },
206     { "methodThatRequiresAllArgsAndThrows", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows), (intptr_t)2 THUNK_GENERATOR(0) },
207     { "serializedValue", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionSerializedValue), (intptr_t)1 THUNK_GENERATOR(0) },
208     { "idbKey", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionIdbKey), (intptr_t)1 THUNK_GENERATOR(0) },
209     { "optionsObject", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionOptionsObject), (intptr_t)2 THUNK_GENERATOR(0) },
210     { "methodWithException", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithException), (intptr_t)0 THUNK_GENERATOR(0) },
211     { "customMethod", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionCustomMethod), (intptr_t)0 THUNK_GENERATOR(0) },
212     { "customMethodWithArgs", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionCustomMethodWithArgs), (intptr_t)3 THUNK_GENERATOR(0) },
213     { "customArgsAndException", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionCustomArgsAndException), (intptr_t)1 THUNK_GENERATOR(0) },
214     { "addEventListener", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionAddEventListener), (intptr_t)3 THUNK_GENERATOR(0) },
215     { "removeEventListener", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionRemoveEventListener), (intptr_t)3 THUNK_GENERATOR(0) },
216     { "withDynamicFrame", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithDynamicFrame), (intptr_t)0 THUNK_GENERATOR(0) },
217     { "withDynamicFrameAndArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithDynamicFrameAndArg), (intptr_t)1 THUNK_GENERATOR(0) },
218     { "withDynamicFrameAndOptionalArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg), (intptr_t)2 THUNK_GENERATOR(0) },
219     { "withDynamicFrameAndUserGesture", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture), (intptr_t)1 THUNK_GENERATOR(0) },
220     { "withDynamicFrameAndUserGestureASAD", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD), (intptr_t)2 THUNK_GENERATOR(0) },
221     { "withScriptStateVoid", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithScriptStateVoid), (intptr_t)0 THUNK_GENERATOR(0) },
222     { "withScriptStateObj", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithScriptStateObj), (intptr_t)0 THUNK_GENERATOR(0) },
223     { "withScriptStateVoidException", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithScriptStateVoidException), (intptr_t)0 THUNK_GENERATOR(0) },
224     { "withScriptStateObjException", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithScriptStateObjException), (intptr_t)0 THUNK_GENERATOR(0) },
225     { "withScriptExecutionContext", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionWithScriptExecutionContext), (intptr_t)0 THUNK_GENERATOR(0) },
226     { "methodWithOptionalArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithOptionalArg), (intptr_t)1 THUNK_GENERATOR(0) },
227     { "methodWithNonOptionalArgAndOptionalArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg), (intptr_t)2 THUNK_GENERATOR(0) },
228     { "methodWithNonOptionalArgAndTwoOptionalArgs", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs), (intptr_t)3 THUNK_GENERATOR(0) },
229     { "methodWithCallbackArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithCallbackArg), (intptr_t)1 THUNK_GENERATOR(0) },
230     { "methodWithNonCallbackArgAndCallbackArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg), (intptr_t)2 THUNK_GENERATOR(0) },
231     { "methodWithCallbackAndOptionalArg", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg), (intptr_t)1 THUNK_GENERATOR(0) },
232     { "overloadedMethod", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionOverloadedMethod), (intptr_t)2 THUNK_GENERATOR(0) },
233     { "classMethod", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionClassMethod), (intptr_t)0 THUNK_GENERATOR(0) },
234     { "classMethodWithOptional", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsTestObjPrototypeFunctionClassMethodWithOptional), (intptr_t)1 THUNK_GENERATOR(0) },
235     { 0, 0, 0, 0 THUNK_GENERATOR(0) }
236 };
237
238 #undef THUNK_GENERATOR
239 static JSC_CONST_HASHTABLE HashTable JSTestObjPrototypeTable = { 136, 127, JSTestObjPrototypeTableValues, 0 };
240 const ClassInfo JSTestObjPrototype::s_info = { "TestObjPrototype", 0, &JSTestObjPrototypeTable, 0 };
241
242 JSObject* JSTestObjPrototype::self(ExecState* exec, JSGlobalObject* globalObject)
243 {
244     return getDOMPrototype<JSTestObj>(exec, globalObject);
245 }
246
247 bool JSTestObjPrototype::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
248 {
249     return getStaticPropertySlot<JSTestObjPrototype, JSObject>(exec, &JSTestObjPrototypeTable, this, propertyName, slot);
250 }
251
252 bool JSTestObjPrototype::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
253 {
254     return getStaticPropertyDescriptor<JSTestObjPrototype, JSObject>(exec, &JSTestObjPrototypeTable, this, propertyName, descriptor);
255 }
256
257 const ClassInfo JSTestObj::s_info = { "TestObj", 0, &JSTestObjTable, 0 };
258
259 JSTestObj::JSTestObj(NonNullPassRefPtr<Structure> structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestObj> impl)
260     : DOMObjectWithGlobalPointer(structure, globalObject)
261     , m_impl(impl)
262 {
263 }
264
265 JSTestObj::~JSTestObj()
266 {
267     forgetDOMObject(this, impl());
268 }
269
270 JSObject* JSTestObj::createPrototype(ExecState* exec, JSGlobalObject* globalObject)
271 {
272     return new (exec) JSTestObjPrototype(globalObject, JSTestObjPrototype::createStructure(globalObject->objectPrototype()));
273 }
274
275 bool JSTestObj::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
276 {
277     return getStaticValueSlot<JSTestObj, Base>(exec, &JSTestObjTable, this, propertyName, slot);
278 }
279
280 bool JSTestObj::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
281 {
282     return getStaticValueDescriptor<JSTestObj, Base>(exec, &JSTestObjTable, this, propertyName, descriptor);
283 }
284
285 JSValue jsTestObjReadOnlyIntAttr(ExecState* exec, JSValue slotBase, const Identifier&)
286 {
287     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
288     UNUSED_PARAM(exec);
289     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
290     JSValue result = jsNumber(imp->readOnlyIntAttr());
291     return result;
292 }
293
294 JSValue jsTestObjReadOnlyStringAttr(ExecState* exec, JSValue slotBase, const Identifier&)
295 {
296     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
297     UNUSED_PARAM(exec);
298     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
299     JSValue result = jsString(exec, imp->readOnlyStringAttr());
300     return result;
301 }
302
303 JSValue jsTestObjReadOnlyTestObjAttr(ExecState* exec, JSValue slotBase, const Identifier&)
304 {
305     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
306     UNUSED_PARAM(exec);
307     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
308     JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->readOnlyTestObjAttr()));
309     return result;
310 }
311
312 JSValue jsTestObjShortAttr(ExecState* exec, JSValue slotBase, const Identifier&)
313 {
314     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
315     UNUSED_PARAM(exec);
316     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
317     JSValue result = jsNumber(imp->shortAttr());
318     return result;
319 }
320
321 JSValue jsTestObjUnsignedShortAttr(ExecState* exec, JSValue slotBase, const Identifier&)
322 {
323     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
324     UNUSED_PARAM(exec);
325     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
326     JSValue result = jsNumber(imp->unsignedShortAttr());
327     return result;
328 }
329
330 JSValue jsTestObjIntAttr(ExecState* exec, JSValue slotBase, const Identifier&)
331 {
332     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
333     UNUSED_PARAM(exec);
334     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
335     JSValue result = jsNumber(imp->intAttr());
336     return result;
337 }
338
339 JSValue jsTestObjLongLongAttr(ExecState* exec, JSValue slotBase, const Identifier&)
340 {
341     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
342     UNUSED_PARAM(exec);
343     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
344     JSValue result = jsNumber(imp->longLongAttr());
345     return result;
346 }
347
348 JSValue jsTestObjUnsignedLongLongAttr(ExecState* exec, JSValue slotBase, const Identifier&)
349 {
350     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
351     UNUSED_PARAM(exec);
352     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
353     JSValue result = jsNumber(imp->unsignedLongLongAttr());
354     return result;
355 }
356
357 JSValue jsTestObjStringAttr(ExecState* exec, JSValue slotBase, const Identifier&)
358 {
359     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
360     UNUSED_PARAM(exec);
361     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
362     JSValue result = jsString(exec, imp->stringAttr());
363     return result;
364 }
365
366 JSValue jsTestObjTestObjAttr(ExecState* exec, JSValue slotBase, const Identifier&)
367 {
368     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
369     UNUSED_PARAM(exec);
370     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
371     JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->testObjAttr()));
372     return result;
373 }
374
375 JSValue jsTestObjXMLObjAttr(ExecState* exec, JSValue slotBase, const Identifier&)
376 {
377     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
378     UNUSED_PARAM(exec);
379     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
380     JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->xmlObjAttr()));
381     return result;
382 }
383
384 JSValue jsTestObjCreate(ExecState* exec, JSValue slotBase, const Identifier&)
385 {
386     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
387     UNUSED_PARAM(exec);
388     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
389     JSValue result = jsBoolean(imp->isCreate());
390     return result;
391 }
392
393 JSValue jsTestObjReflectedStringAttr(ExecState* exec, JSValue slotBase, const Identifier&)
394 {
395     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
396     UNUSED_PARAM(exec);
397     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
398     JSValue result = jsString(exec, imp->getAttribute(WebCore::HTMLNames::reflectedstringattrAttr));
399     return result;
400 }
401
402 JSValue jsTestObjReflectedIntegralAttr(ExecState* exec, JSValue slotBase, const Identifier&)
403 {
404     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
405     UNUSED_PARAM(exec);
406     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
407     JSValue result = jsNumber(imp->getIntegralAttribute(WebCore::HTMLNames::reflectedintegralattrAttr));
408     return result;
409 }
410
411 JSValue jsTestObjReflectedUnsignedIntegralAttr(ExecState* exec, JSValue slotBase, const Identifier&)
412 {
413     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
414     UNUSED_PARAM(exec);
415     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
416     JSValue result = jsNumber(std::max(0, imp->getIntegralAttribute(WebCore::HTMLNames::reflectedunsignedintegralattrAttr)));
417     return result;
418 }
419
420 JSValue jsTestObjReflectedBooleanAttr(ExecState* exec, JSValue slotBase, const Identifier&)
421 {
422     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
423     UNUSED_PARAM(exec);
424     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
425     JSValue result = jsBoolean(imp->hasAttribute(WebCore::HTMLNames::reflectedbooleanattrAttr));
426     return result;
427 }
428
429 JSValue jsTestObjReflectedURLAttr(ExecState* exec, JSValue slotBase, const Identifier&)
430 {
431     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
432     UNUSED_PARAM(exec);
433     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
434     JSValue result = jsString(exec, imp->getURLAttribute(WebCore::HTMLNames::reflectedurlattrAttr));
435     return result;
436 }
437
438 JSValue jsTestObjReflectedNonEmptyURLAttr(ExecState* exec, JSValue slotBase, const Identifier&)
439 {
440     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
441     UNUSED_PARAM(exec);
442     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
443     JSValue result = jsString(exec, imp->getNonEmptyURLAttribute(WebCore::HTMLNames::reflectednonemptyurlattrAttr));
444     return result;
445 }
446
447 JSValue jsTestObjReflectedStringAttr(ExecState* exec, JSValue slotBase, const Identifier&)
448 {
449     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
450     UNUSED_PARAM(exec);
451     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
452     JSValue result = jsString(exec, imp->getAttribute(WebCore::HTMLNames::customContentStringAttrAttr));
453     return result;
454 }
455
456 JSValue jsTestObjReflectedCustomIntegralAttr(ExecState* exec, JSValue slotBase, const Identifier&)
457 {
458     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
459     UNUSED_PARAM(exec);
460     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
461     JSValue result = jsNumber(imp->getIntegralAttribute(WebCore::HTMLNames::customContentIntegralAttrAttr));
462     return result;
463 }
464
465 JSValue jsTestObjReflectedCustomBooleanAttr(ExecState* exec, JSValue slotBase, const Identifier&)
466 {
467     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
468     UNUSED_PARAM(exec);
469     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
470     JSValue result = jsBoolean(imp->hasAttribute(WebCore::HTMLNames::customContentBooleanAttrAttr));
471     return result;
472 }
473
474 JSValue jsTestObjReflectedCustomURLAttr(ExecState* exec, JSValue slotBase, const Identifier&)
475 {
476     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
477     UNUSED_PARAM(exec);
478     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
479     JSValue result = jsString(exec, imp->getURLAttribute(WebCore::HTMLNames::customContentURLAttrAttr));
480     return result;
481 }
482
483 JSValue jsTestObjReflectedCustomNonEmptyURLAttr(ExecState* exec, JSValue slotBase, const Identifier&)
484 {
485     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
486     UNUSED_PARAM(exec);
487     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
488     JSValue result = jsString(exec, imp->getNonEmptyURLAttribute(WebCore::HTMLNames::customContentNonEmptyURLAttrAttr));
489     return result;
490 }
491
492 JSValue jsTestObjAttrWithGetterException(ExecState* exec, JSValue slotBase, const Identifier&)
493 {
494     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
495     ExceptionCode ec = 0;
496     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
497     JSC::JSValue result = jsNumber(imp->attrWithGetterException(ec));
498     setDOMException(exec, ec);
499     return result;
500 }
501
502 JSValue jsTestObjAttrWithSetterException(ExecState* exec, JSValue slotBase, const Identifier&)
503 {
504     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
505     UNUSED_PARAM(exec);
506     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
507     JSValue result = jsNumber(imp->attrWithSetterException());
508     return result;
509 }
510
511 JSValue jsTestObjStringAttrWithGetterException(ExecState* exec, JSValue slotBase, const Identifier&)
512 {
513     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
514     ExceptionCode ec = 0;
515     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
516     JSC::JSValue result = jsString(exec, imp->stringAttrWithGetterException(ec));
517     setDOMException(exec, ec);
518     return result;
519 }
520
521 JSValue jsTestObjStringAttrWithSetterException(ExecState* exec, JSValue slotBase, const Identifier&)
522 {
523     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
524     UNUSED_PARAM(exec);
525     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
526     JSValue result = jsString(exec, imp->stringAttrWithSetterException());
527     return result;
528 }
529
530 JSValue jsTestObjCustomAttr(ExecState* exec, JSValue slotBase, const Identifier&)
531 {
532     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
533     return castedThis->customAttr(exec);
534 }
535
536 JSValue jsTestObjScriptStringAttr(ExecState* exec, JSValue slotBase, const Identifier&)
537 {
538     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
539     UNUSED_PARAM(exec);
540     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
541     JSValue result = jsOwnedStringOrNull(exec, imp->scriptStringAttr());
542     return result;
543 }
544
545 #if ENABLE(Condition1)
546 JSValue jsTestObjConditionalAttr1(ExecState* exec, JSValue slotBase, const Identifier&)
547 {
548     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
549     UNUSED_PARAM(exec);
550     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
551     JSValue result = jsNumber(imp->conditionalAttr1());
552     return result;
553 }
554 #endif
555
556 #if ENABLE(Condition1) && ENABLE(Condition2)
557 JSValue jsTestObjConditionalAttr2(ExecState* exec, JSValue slotBase, const Identifier&)
558 {
559     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
560     UNUSED_PARAM(exec);
561     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
562     JSValue result = jsNumber(imp->conditionalAttr2());
563     return result;
564 }
565 #endif
566
567 #if ENABLE(Condition1) || ENABLE(Condition2)
568 JSValue jsTestObjConditionalAttr3(ExecState* exec, JSValue slotBase, const Identifier&)
569 {
570     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
571     UNUSED_PARAM(exec);
572     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
573     JSValue result = jsNumber(imp->conditionalAttr3());
574     return result;
575 }
576 #endif
577
578 JSValue jsTestObjDescription(ExecState* exec, JSValue slotBase, const Identifier&)
579 {
580     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
581     UNUSED_PARAM(exec);
582     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
583     JSValue result = jsNumber(imp->description());
584     return result;
585 }
586
587 JSValue jsTestObjId(ExecState* exec, JSValue slotBase, const Identifier&)
588 {
589     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
590     UNUSED_PARAM(exec);
591     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
592     JSValue result = jsNumber(imp->id());
593     return result;
594 }
595
596 JSValue jsTestObjHash(ExecState* exec, JSValue slotBase, const Identifier&)
597 {
598     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(slotBase));
599     UNUSED_PARAM(exec);
600     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
601     JSValue result = jsString(exec, imp->hash());
602     return result;
603 }
604
605 JSValue jsTestObjConstructor(ExecState* exec, JSValue slotBase, const Identifier&)
606 {
607     JSTestObj* domObject = static_cast<JSTestObj*>(asObject(slotBase));
608     return JSTestObj::getConstructor(exec, domObject->globalObject());
609 }
610 void JSTestObj::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
611 {
612     lookupPut<JSTestObj, Base>(exec, propertyName, value, &JSTestObjTable, this, slot);
613 }
614
615 void setJSTestObjShortAttr(ExecState* exec, JSObject* thisObject, JSValue value)
616 {
617     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
618     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
619     imp->setShortAttr(value.toInt32(exec));
620 }
621
622 void setJSTestObjUnsignedShortAttr(ExecState* exec, JSObject* thisObject, JSValue value)
623 {
624     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
625     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
626     imp->setUnsignedShortAttr(value.toUInt32(exec));
627 }
628
629 void setJSTestObjIntAttr(ExecState* exec, JSObject* thisObject, JSValue value)
630 {
631     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
632     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
633     imp->setIntAttr(value.toInt32(exec));
634 }
635
636 void setJSTestObjLongLongAttr(ExecState* exec, JSObject* thisObject, JSValue value)
637 {
638     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
639     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
640     imp->setLongLongAttr(static_cast<long long>(value.toInteger(exec)));
641 }
642
643 void setJSTestObjUnsignedLongLongAttr(ExecState* exec, JSObject* thisObject, JSValue value)
644 {
645     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
646     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
647     imp->setUnsignedLongLongAttr(static_cast<unsigned long long>(value.toInteger(exec)));
648 }
649
650 void setJSTestObjStringAttr(ExecState* exec, JSObject* thisObject, JSValue value)
651 {
652     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
653     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
654     imp->setStringAttr(ustringToString(value.toString(exec)));
655 }
656
657 void setJSTestObjTestObjAttr(ExecState* exec, JSObject* thisObject, JSValue value)
658 {
659     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
660     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
661     imp->setTestObjAttr(toTestObj(value));
662 }
663
664 void setJSTestObjXMLObjAttr(ExecState* exec, JSObject* thisObject, JSValue value)
665 {
666     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
667     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
668     imp->setXMLObjAttr(toTestObj(value));
669 }
670
671 void setJSTestObjCreate(ExecState* exec, JSObject* thisObject, JSValue value)
672 {
673     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
674     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
675     imp->setCreate(value.toBoolean(exec));
676 }
677
678 void setJSTestObjReflectedStringAttr(ExecState* exec, JSObject* thisObject, JSValue value)
679 {
680     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
681     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
682     imp->setAttribute(WebCore::HTMLNames::reflectedstringattrAttr, valueToStringWithNullCheck(exec, value));
683 }
684
685 void setJSTestObjReflectedIntegralAttr(ExecState* exec, JSObject* thisObject, JSValue value)
686 {
687     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
688     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
689     imp->setIntegralAttribute(WebCore::HTMLNames::reflectedintegralattrAttr, value.toInt32(exec));
690 }
691
692 void setJSTestObjReflectedUnsignedIntegralAttr(ExecState* exec, JSObject* thisObject, JSValue value)
693 {
694     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
695     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
696     imp->setUnsignedIntegralAttribute(WebCore::HTMLNames::reflectedunsignedintegralattrAttr, value.toUInt32(exec));
697 }
698
699 void setJSTestObjReflectedBooleanAttr(ExecState* exec, JSObject* thisObject, JSValue value)
700 {
701     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
702     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
703     imp->setBooleanAttribute(WebCore::HTMLNames::reflectedbooleanattrAttr, value.toBoolean(exec));
704 }
705
706 void setJSTestObjReflectedURLAttr(ExecState* exec, JSObject* thisObject, JSValue value)
707 {
708     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
709     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
710     imp->setAttribute(WebCore::HTMLNames::reflectedurlattrAttr, valueToStringWithNullCheck(exec, value));
711 }
712
713 void setJSTestObjReflectedNonEmptyURLAttr(ExecState* exec, JSObject* thisObject, JSValue value)
714 {
715     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
716     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
717     imp->setAttribute(WebCore::HTMLNames::reflectednonemptyurlattrAttr, valueToStringWithNullCheck(exec, value));
718 }
719
720 void setJSTestObjReflectedStringAttr(ExecState* exec, JSObject* thisObject, JSValue value)
721 {
722     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
723     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
724     imp->setAttribute(WebCore::HTMLNames::customContentStringAttrAttr, valueToStringWithNullCheck(exec, value));
725 }
726
727 void setJSTestObjReflectedCustomIntegralAttr(ExecState* exec, JSObject* thisObject, JSValue value)
728 {
729     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
730     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
731     imp->setIntegralAttribute(WebCore::HTMLNames::customContentIntegralAttrAttr, value.toInt32(exec));
732 }
733
734 void setJSTestObjReflectedCustomBooleanAttr(ExecState* exec, JSObject* thisObject, JSValue value)
735 {
736     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
737     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
738     imp->setBooleanAttribute(WebCore::HTMLNames::customContentBooleanAttrAttr, value.toBoolean(exec));
739 }
740
741 void setJSTestObjReflectedCustomURLAttr(ExecState* exec, JSObject* thisObject, JSValue value)
742 {
743     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
744     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
745     imp->setAttribute(WebCore::HTMLNames::customContentURLAttrAttr, valueToStringWithNullCheck(exec, value));
746 }
747
748 void setJSTestObjReflectedCustomNonEmptyURLAttr(ExecState* exec, JSObject* thisObject, JSValue value)
749 {
750     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
751     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
752     imp->setAttribute(WebCore::HTMLNames::customContentNonEmptyURLAttrAttr, valueToStringWithNullCheck(exec, value));
753 }
754
755 void setJSTestObjAttrWithGetterException(ExecState* exec, JSObject* thisObject, JSValue value)
756 {
757     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
758     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
759     ExceptionCode ec = 0;
760     imp->setAttrWithGetterException(value.toInt32(exec), ec);
761     setDOMException(exec, ec);
762 }
763
764 void setJSTestObjAttrWithSetterException(ExecState* exec, JSObject* thisObject, JSValue value)
765 {
766     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
767     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
768     ExceptionCode ec = 0;
769     imp->setAttrWithSetterException(value.toInt32(exec), ec);
770     setDOMException(exec, ec);
771 }
772
773 void setJSTestObjStringAttrWithGetterException(ExecState* exec, JSObject* thisObject, JSValue value)
774 {
775     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
776     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
777     ExceptionCode ec = 0;
778     imp->setStringAttrWithGetterException(ustringToString(value.toString(exec)), ec);
779     setDOMException(exec, ec);
780 }
781
782 void setJSTestObjStringAttrWithSetterException(ExecState* exec, JSObject* thisObject, JSValue value)
783 {
784     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
785     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
786     ExceptionCode ec = 0;
787     imp->setStringAttrWithSetterException(ustringToString(value.toString(exec)), ec);
788     setDOMException(exec, ec);
789 }
790
791 void setJSTestObjCustomAttr(ExecState* exec, JSObject* thisObject, JSValue value)
792 {
793     static_cast<JSTestObj*>(thisObject)->setCustomAttr(exec, value);
794 }
795
796 #if ENABLE(Condition1)
797 void setJSTestObjConditionalAttr1(ExecState* exec, JSObject* thisObject, JSValue value)
798 {
799     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
800     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
801     imp->setConditionalAttr1(value.toInt32(exec));
802 }
803 #endif
804
805 #if ENABLE(Condition1) && ENABLE(Condition2)
806 void setJSTestObjConditionalAttr2(ExecState* exec, JSObject* thisObject, JSValue value)
807 {
808     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
809     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
810     imp->setConditionalAttr2(value.toInt32(exec));
811 }
812 #endif
813
814 #if ENABLE(Condition1) || ENABLE(Condition2)
815 void setJSTestObjConditionalAttr3(ExecState* exec, JSObject* thisObject, JSValue value)
816 {
817     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
818     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
819     imp->setConditionalAttr3(value.toInt32(exec));
820 }
821 #endif
822
823 void setJSTestObjId(ExecState* exec, JSObject* thisObject, JSValue value)
824 {
825     JSTestObj* castedThis = static_cast<JSTestObj*>(thisObject);
826     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
827     imp->setId(value.toInt32(exec));
828 }
829
830 JSValue JSTestObj::getConstructor(ExecState* exec, JSGlobalObject* globalObject)
831 {
832     return getDOMConstructor<JSTestObjConstructor>(exec, static_cast<JSDOMGlobalObject*>(globalObject));
833 }
834
835 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionVoidMethod(ExecState* exec)
836 {
837     JSValue thisValue = exec->hostThisValue();
838     if (!thisValue.inherits(&JSTestObj::s_info))
839         return throwVMTypeError(exec);
840     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
841     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
842
843     imp->voidMethod();
844     return JSValue::encode(jsUndefined());
845 }
846
847 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionVoidMethodWithArgs(ExecState* exec)
848 {
849     JSValue thisValue = exec->hostThisValue();
850     if (!thisValue.inherits(&JSTestObj::s_info))
851         return throwVMTypeError(exec);
852     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
853     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
854     int intArg = exec->argument(0).toInt32(exec);
855     if (exec->hadException())
856         return JSValue::encode(jsUndefined());
857     const String& strArg = ustringToString(exec->argument(1).toString(exec));
858     if (exec->hadException())
859         return JSValue::encode(jsUndefined());
860     TestObj* objArg = toTestObj(exec->argument(2));
861     if (exec->hadException())
862         return JSValue::encode(jsUndefined());
863
864     imp->voidMethodWithArgs(intArg, strArg, objArg);
865     return JSValue::encode(jsUndefined());
866 }
867
868 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionIntMethod(ExecState* exec)
869 {
870     JSValue thisValue = exec->hostThisValue();
871     if (!thisValue.inherits(&JSTestObj::s_info))
872         return throwVMTypeError(exec);
873     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
874     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
875
876
877     JSC::JSValue result = jsNumber(imp->intMethod());
878     return JSValue::encode(result);
879 }
880
881 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionIntMethodWithArgs(ExecState* exec)
882 {
883     JSValue thisValue = exec->hostThisValue();
884     if (!thisValue.inherits(&JSTestObj::s_info))
885         return throwVMTypeError(exec);
886     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
887     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
888     int intArg = exec->argument(0).toInt32(exec);
889     if (exec->hadException())
890         return JSValue::encode(jsUndefined());
891     const String& strArg = ustringToString(exec->argument(1).toString(exec));
892     if (exec->hadException())
893         return JSValue::encode(jsUndefined());
894     TestObj* objArg = toTestObj(exec->argument(2));
895     if (exec->hadException())
896         return JSValue::encode(jsUndefined());
897
898
899     JSC::JSValue result = jsNumber(imp->intMethodWithArgs(intArg, strArg, objArg));
900     return JSValue::encode(result);
901 }
902
903 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionObjMethod(ExecState* exec)
904 {
905     JSValue thisValue = exec->hostThisValue();
906     if (!thisValue.inherits(&JSTestObj::s_info))
907         return throwVMTypeError(exec);
908     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
909     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
910
911
912     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->objMethod()));
913     return JSValue::encode(result);
914 }
915
916 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionObjMethodWithArgs(ExecState* exec)
917 {
918     JSValue thisValue = exec->hostThisValue();
919     if (!thisValue.inherits(&JSTestObj::s_info))
920         return throwVMTypeError(exec);
921     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
922     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
923     int intArg = exec->argument(0).toInt32(exec);
924     if (exec->hadException())
925         return JSValue::encode(jsUndefined());
926     const String& strArg = ustringToString(exec->argument(1).toString(exec));
927     if (exec->hadException())
928         return JSValue::encode(jsUndefined());
929     TestObj* objArg = toTestObj(exec->argument(2));
930     if (exec->hadException())
931         return JSValue::encode(jsUndefined());
932
933
934     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->objMethodWithArgs(intArg, strArg, objArg)));
935     return JSValue::encode(result);
936 }
937
938 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodThatRequiresAllArgs(ExecState* exec)
939 {
940     JSValue thisValue = exec->hostThisValue();
941     if (!thisValue.inherits(&JSTestObj::s_info))
942         return throwVMTypeError(exec);
943     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
944     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
945     if (exec->argumentCount() < 2)
946         return JSValue::encode(jsUndefined());
947     const String& strArg = ustringToString(exec->argument(0).toString(exec));
948     if (exec->hadException())
949         return JSValue::encode(jsUndefined());
950     TestObj* objArg = toTestObj(exec->argument(1));
951     if (exec->hadException())
952         return JSValue::encode(jsUndefined());
953
954
955     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->methodThatRequiresAllArgs(strArg, objArg)));
956     return JSValue::encode(result);
957 }
958
959 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows(ExecState* exec)
960 {
961     JSValue thisValue = exec->hostThisValue();
962     if (!thisValue.inherits(&JSTestObj::s_info))
963         return throwVMTypeError(exec);
964     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
965     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
966     if (exec->argumentCount() < 2)
967         return throwVMError(exec, createSyntaxError(exec, "Not enough arguments"));
968     ExceptionCode ec = 0;
969     const String& strArg = ustringToString(exec->argument(0).toString(exec));
970     if (exec->hadException())
971         return JSValue::encode(jsUndefined());
972     TestObj* objArg = toTestObj(exec->argument(1));
973     if (exec->hadException())
974         return JSValue::encode(jsUndefined());
975
976
977     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->methodThatRequiresAllArgsAndThrows(strArg, objArg, ec)));
978     setDOMException(exec, ec);
979     return JSValue::encode(result);
980 }
981
982 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionSerializedValue(ExecState* exec)
983 {
984     JSValue thisValue = exec->hostThisValue();
985     if (!thisValue.inherits(&JSTestObj::s_info))
986         return throwVMTypeError(exec);
987     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
988     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
989     RefPtr<SerializedScriptValue> serializedArg = SerializedScriptValue::create(exec, exec->argument(0));
990     if (exec->hadException())
991         return JSValue::encode(jsUndefined());
992
993     imp->serializedValue(serializedArg);
994     return JSValue::encode(jsUndefined());
995 }
996
997 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionIdbKey(ExecState* exec)
998 {
999     JSValue thisValue = exec->hostThisValue();
1000     if (!thisValue.inherits(&JSTestObj::s_info))
1001         return throwVMTypeError(exec);
1002     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1003     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1004     RefPtr<IDBKey> key = createIDBKeyFromValue(exec, exec->argument(0));
1005     if (exec->hadException())
1006         return JSValue::encode(jsUndefined());
1007
1008     imp->idbKey(key);
1009     return JSValue::encode(jsUndefined());
1010 }
1011
1012 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOptionsObject(ExecState* exec)
1013 {
1014     JSValue thisValue = exec->hostThisValue();
1015     if (!thisValue.inherits(&JSTestObj::s_info))
1016         return throwVMTypeError(exec);
1017     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1018     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1019     OptionsObject* oo = toOptionsObject(exec->argument(0));
1020     if (exec->hadException())
1021         return JSValue::encode(jsUndefined());
1022
1023     int argsCount = exec->argumentCount();
1024     if (argsCount <= 1) {
1025         imp->optionsObject(oo);
1026         return JSValue::encode(jsUndefined());
1027     }
1028
1029     OptionsObject* ooo = toOptionsObject(exec->argument(1));
1030     if (exec->hadException())
1031         return JSValue::encode(jsUndefined());
1032
1033     imp->optionsObject(oo, ooo);
1034     return JSValue::encode(jsUndefined());
1035 }
1036
1037 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithException(ExecState* exec)
1038 {
1039     JSValue thisValue = exec->hostThisValue();
1040     if (!thisValue.inherits(&JSTestObj::s_info))
1041         return throwVMTypeError(exec);
1042     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1043     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1044     ExceptionCode ec = 0;
1045
1046     imp->methodWithException(ec);
1047     setDOMException(exec, ec);
1048     return JSValue::encode(jsUndefined());
1049 }
1050
1051 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionCustomMethod(ExecState* exec)
1052 {
1053     JSValue thisValue = exec->hostThisValue();
1054     if (!thisValue.inherits(&JSTestObj::s_info))
1055         return throwVMTypeError(exec);
1056     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1057     return JSValue::encode(castedThis->customMethod(exec));
1058 }
1059
1060 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionCustomMethodWithArgs(ExecState* exec)
1061 {
1062     JSValue thisValue = exec->hostThisValue();
1063     if (!thisValue.inherits(&JSTestObj::s_info))
1064         return throwVMTypeError(exec);
1065     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1066     return JSValue::encode(castedThis->customMethodWithArgs(exec));
1067 }
1068
1069 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionCustomArgsAndException(ExecState* exec)
1070 {
1071     JSValue thisValue = exec->hostThisValue();
1072     if (!thisValue.inherits(&JSTestObj::s_info))
1073         return throwVMTypeError(exec);
1074     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1075     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1076     ExceptionCode ec = 0;
1077     RefPtr<ScriptArguments> scriptArguments(createScriptArguments(exec, 1));
1078     size_t maxStackSize = imp->shouldCaptureFullStackTrace() ? ScriptCallStack::maxCallStackSizeToCapture : 1;
1079     RefPtr<ScriptCallStack> callStack(createScriptCallStack(exec, maxStackSize));
1080     log* intArg = tolog(exec->argument(0));
1081     if (exec->hadException())
1082         return JSValue::encode(jsUndefined());
1083
1084     imp->customArgsAndException(intArg, scriptArguments, callStack, ec);
1085     setDOMException(exec, ec);
1086     return JSValue::encode(jsUndefined());
1087 }
1088
1089 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionAddEventListener(ExecState* exec)
1090 {
1091     JSValue thisValue = exec->hostThisValue();
1092     if (!thisValue.inherits(&JSTestObj::s_info))
1093         return throwVMTypeError(exec);
1094     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1095     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1096     JSValue listener = exec->argument(1);
1097     if (!listener.isObject())
1098         return JSValue::encode(jsUndefined());
1099     imp->addEventListener(ustringToAtomicString(exec->argument(0).toString(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)), exec->argument(2).toBoolean(exec));
1100     return JSValue::encode(jsUndefined());
1101 }
1102
1103 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionRemoveEventListener(ExecState* exec)
1104 {
1105     JSValue thisValue = exec->hostThisValue();
1106     if (!thisValue.inherits(&JSTestObj::s_info))
1107         return throwVMTypeError(exec);
1108     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1109     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1110     JSValue listener = exec->argument(1);
1111     if (!listener.isObject())
1112         return JSValue::encode(jsUndefined());
1113     imp->removeEventListener(ustringToAtomicString(exec->argument(0).toString(exec)), JSEventListener::create(asObject(listener), castedThis, false, currentWorld(exec)).get(), exec->argument(2).toBoolean(exec));
1114     return JSValue::encode(jsUndefined());
1115 }
1116
1117 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrame(ExecState* exec)
1118 {
1119     JSValue thisValue = exec->hostThisValue();
1120     if (!thisValue.inherits(&JSTestObj::s_info))
1121         return throwVMTypeError(exec);
1122     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1123     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1124     Frame* dynamicFrame = toDynamicFrame(exec);
1125     if (!dynamicFrame)
1126         return JSValue::encode(jsUndefined());
1127
1128     imp->withDynamicFrame(dynamicFrame);
1129     return JSValue::encode(jsUndefined());
1130 }
1131
1132 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrameAndArg(ExecState* exec)
1133 {
1134     JSValue thisValue = exec->hostThisValue();
1135     if (!thisValue.inherits(&JSTestObj::s_info))
1136         return throwVMTypeError(exec);
1137     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1138     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1139     Frame* dynamicFrame = toDynamicFrame(exec);
1140     if (!dynamicFrame)
1141         return JSValue::encode(jsUndefined());
1142     int intArg = exec->argument(0).toInt32(exec);
1143     if (exec->hadException())
1144         return JSValue::encode(jsUndefined());
1145
1146     imp->withDynamicFrameAndArg(dynamicFrame, intArg);
1147     return JSValue::encode(jsUndefined());
1148 }
1149
1150 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg(ExecState* exec)
1151 {
1152     JSValue thisValue = exec->hostThisValue();
1153     if (!thisValue.inherits(&JSTestObj::s_info))
1154         return throwVMTypeError(exec);
1155     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1156     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1157     Frame* dynamicFrame = toDynamicFrame(exec);
1158     if (!dynamicFrame)
1159         return JSValue::encode(jsUndefined());
1160     int intArg = exec->argument(0).toInt32(exec);
1161     if (exec->hadException())
1162         return JSValue::encode(jsUndefined());
1163
1164     int argsCount = exec->argumentCount();
1165     if (argsCount <= 1) {
1166         imp->withDynamicFrameAndOptionalArg(dynamicFrame, intArg);
1167         return JSValue::encode(jsUndefined());
1168     }
1169
1170     int optionalArg = exec->argument(1).toInt32(exec);
1171     if (exec->hadException())
1172         return JSValue::encode(jsUndefined());
1173
1174     imp->withDynamicFrameAndOptionalArg(dynamicFrame, intArg, optionalArg);
1175     return JSValue::encode(jsUndefined());
1176 }
1177
1178 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture(ExecState* exec)
1179 {
1180     JSValue thisValue = exec->hostThisValue();
1181     if (!thisValue.inherits(&JSTestObj::s_info))
1182         return throwVMTypeError(exec);
1183     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1184     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1185     Frame* dynamicFrame = toDynamicFrame(exec);
1186     if (!dynamicFrame)
1187         return JSValue::encode(jsUndefined());
1188     int intArg = exec->argument(0).toInt32(exec);
1189     if (exec->hadException())
1190         return JSValue::encode(jsUndefined());
1191
1192     imp->withDynamicFrameAndUserGesture(dynamicFrame, intArg, processingUserGesture());
1193     return JSValue::encode(jsUndefined());
1194 }
1195
1196 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD(ExecState* exec)
1197 {
1198     JSValue thisValue = exec->hostThisValue();
1199     if (!thisValue.inherits(&JSTestObj::s_info))
1200         return throwVMTypeError(exec);
1201     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1202     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1203     Frame* dynamicFrame = toDynamicFrame(exec);
1204     if (!dynamicFrame)
1205         return JSValue::encode(jsUndefined());
1206     int intArg = exec->argument(0).toInt32(exec);
1207     if (exec->hadException())
1208         return JSValue::encode(jsUndefined());
1209
1210     int argsCount = exec->argumentCount();
1211     if (argsCount <= 1) {
1212         imp->withDynamicFrameAndUserGestureASAD(dynamicFrame, intArg);
1213         return JSValue::encode(jsUndefined());
1214     }
1215
1216     int optionalArg = exec->argument(1).toInt32(exec);
1217     if (exec->hadException())
1218         return JSValue::encode(jsUndefined());
1219
1220     imp->withDynamicFrameAndUserGestureASAD(dynamicFrame, intArg, optionalArg, processingUserGesture());
1221     return JSValue::encode(jsUndefined());
1222 }
1223
1224 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithScriptStateVoid(ExecState* exec)
1225 {
1226     JSValue thisValue = exec->hostThisValue();
1227     if (!thisValue.inherits(&JSTestObj::s_info))
1228         return throwVMTypeError(exec);
1229     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1230     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1231
1232     imp->withScriptStateVoid(exec);
1233     return JSValue::encode(jsUndefined());
1234 }
1235
1236 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithScriptStateObj(ExecState* exec)
1237 {
1238     JSValue thisValue = exec->hostThisValue();
1239     if (!thisValue.inherits(&JSTestObj::s_info))
1240         return throwVMTypeError(exec);
1241     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1242     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1243
1244
1245     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->withScriptStateObj(exec)));
1246     if (exec->hadException())
1247         return JSValue::encode(jsUndefined());
1248     return JSValue::encode(result);
1249 }
1250
1251 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithScriptStateVoidException(ExecState* exec)
1252 {
1253     JSValue thisValue = exec->hostThisValue();
1254     if (!thisValue.inherits(&JSTestObj::s_info))
1255         return throwVMTypeError(exec);
1256     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1257     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1258     ExceptionCode ec = 0;
1259
1260     imp->withScriptStateVoidException(exec, ec);
1261     setDOMException(exec, ec);
1262     return JSValue::encode(jsUndefined());
1263 }
1264
1265 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithScriptStateObjException(ExecState* exec)
1266 {
1267     JSValue thisValue = exec->hostThisValue();
1268     if (!thisValue.inherits(&JSTestObj::s_info))
1269         return throwVMTypeError(exec);
1270     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1271     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1272     ExceptionCode ec = 0;
1273
1274
1275     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->withScriptStateObjException(exec, ec)));
1276     setDOMException(exec, ec);
1277     if (exec->hadException())
1278         return JSValue::encode(jsUndefined());
1279     return JSValue::encode(result);
1280 }
1281
1282 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionWithScriptExecutionContext(ExecState* exec)
1283 {
1284     JSValue thisValue = exec->hostThisValue();
1285     if (!thisValue.inherits(&JSTestObj::s_info))
1286         return throwVMTypeError(exec);
1287     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1288     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1289     ScriptExecutionContext* scriptContext = static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject())->scriptExecutionContext();
1290     if (!scriptContext)
1291         return JSValue::encode(jsUndefined());
1292
1293     imp->withScriptExecutionContext(scriptContext);
1294     return JSValue::encode(jsUndefined());
1295 }
1296
1297 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithOptionalArg(ExecState* exec)
1298 {
1299     JSValue thisValue = exec->hostThisValue();
1300     if (!thisValue.inherits(&JSTestObj::s_info))
1301         return throwVMTypeError(exec);
1302     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1303     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1304
1305     int argsCount = exec->argumentCount();
1306     if (argsCount <= 0) {
1307         imp->methodWithOptionalArg();
1308         return JSValue::encode(jsUndefined());
1309     }
1310
1311     int opt = exec->argument(0).toInt32(exec);
1312     if (exec->hadException())
1313         return JSValue::encode(jsUndefined());
1314
1315     imp->methodWithOptionalArg(opt);
1316     return JSValue::encode(jsUndefined());
1317 }
1318
1319 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg(ExecState* exec)
1320 {
1321     JSValue thisValue = exec->hostThisValue();
1322     if (!thisValue.inherits(&JSTestObj::s_info))
1323         return throwVMTypeError(exec);
1324     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1325     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1326     int nonOpt = exec->argument(0).toInt32(exec);
1327     if (exec->hadException())
1328         return JSValue::encode(jsUndefined());
1329
1330     int argsCount = exec->argumentCount();
1331     if (argsCount <= 1) {
1332         imp->methodWithNonOptionalArgAndOptionalArg(nonOpt);
1333         return JSValue::encode(jsUndefined());
1334     }
1335
1336     int opt = exec->argument(1).toInt32(exec);
1337     if (exec->hadException())
1338         return JSValue::encode(jsUndefined());
1339
1340     imp->methodWithNonOptionalArgAndOptionalArg(nonOpt, opt);
1341     return JSValue::encode(jsUndefined());
1342 }
1343
1344 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs(ExecState* exec)
1345 {
1346     JSValue thisValue = exec->hostThisValue();
1347     if (!thisValue.inherits(&JSTestObj::s_info))
1348         return throwVMTypeError(exec);
1349     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1350     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1351     int nonOpt = exec->argument(0).toInt32(exec);
1352     if (exec->hadException())
1353         return JSValue::encode(jsUndefined());
1354
1355     int argsCount = exec->argumentCount();
1356     if (argsCount <= 1) {
1357         imp->methodWithNonOptionalArgAndTwoOptionalArgs(nonOpt);
1358         return JSValue::encode(jsUndefined());
1359     }
1360
1361     int opt1 = exec->argument(1).toInt32(exec);
1362     if (exec->hadException())
1363         return JSValue::encode(jsUndefined());
1364     int opt2 = exec->argument(2).toInt32(exec);
1365     if (exec->hadException())
1366         return JSValue::encode(jsUndefined());
1367
1368     imp->methodWithNonOptionalArgAndTwoOptionalArgs(nonOpt, opt1, opt2);
1369     return JSValue::encode(jsUndefined());
1370 }
1371
1372 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithCallbackArg(ExecState* exec)
1373 {
1374     JSValue thisValue = exec->hostThisValue();
1375     if (!thisValue.inherits(&JSTestObj::s_info))
1376         return throwVMTypeError(exec);
1377     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1378     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1379     if (exec->argumentCount() <= 0 || !exec->argument(0).isObject()) {
1380         setDOMException(exec, TYPE_MISMATCH_ERR);
1381         return JSValue::encode(jsUndefined());
1382     }
1383     RefPtr<TestCallback> callback = JSTestCallback::create(asObject(exec->argument(0)), castedThis->globalObject());
1384
1385     imp->methodWithCallbackArg(callback);
1386     return JSValue::encode(jsUndefined());
1387 }
1388
1389 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg(ExecState* exec)
1390 {
1391     JSValue thisValue = exec->hostThisValue();
1392     if (!thisValue.inherits(&JSTestObj::s_info))
1393         return throwVMTypeError(exec);
1394     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1395     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1396     int nonCallback = exec->argument(0).toInt32(exec);
1397     if (exec->hadException())
1398         return JSValue::encode(jsUndefined());
1399     if (exec->argumentCount() <= 1 || !exec->argument(1).isObject()) {
1400         setDOMException(exec, TYPE_MISMATCH_ERR);
1401         return JSValue::encode(jsUndefined());
1402     }
1403     RefPtr<TestCallback> callback = JSTestCallback::create(asObject(exec->argument(1)), castedThis->globalObject());
1404
1405     imp->methodWithNonCallbackArgAndCallbackArg(nonCallback, callback);
1406     return JSValue::encode(jsUndefined());
1407 }
1408
1409 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg(ExecState* exec)
1410 {
1411     JSValue thisValue = exec->hostThisValue();
1412     if (!thisValue.inherits(&JSTestObj::s_info))
1413         return throwVMTypeError(exec);
1414     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1415     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1416     RefPtr<TestCallback> callback;
1417     if (exec->argumentCount() > 0 && !exec->argument(0).isNull() && !exec->argument(0).isUndefined()) {
1418         if (!exec->argument(0).isObject()) {
1419             setDOMException(exec, TYPE_MISMATCH_ERR);
1420             return JSValue::encode(jsUndefined());
1421         }
1422         callback = JSTestCallback::create(asObject(exec->argument(0)), castedThis->globalObject());
1423     }
1424
1425     imp->methodWithCallbackAndOptionalArg(callback);
1426     return JSValue::encode(jsUndefined());
1427 }
1428
1429 static EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod1(ExecState* exec)
1430 {
1431     JSValue thisValue = exec->hostThisValue();
1432     if (!thisValue.inherits(&JSTestObj::s_info))
1433         return throwVMTypeError(exec);
1434     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1435     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1436     TestObj* objArg = toTestObj(exec->argument(0));
1437     if (exec->hadException())
1438         return JSValue::encode(jsUndefined());
1439     const String& strArg = ustringToString(exec->argument(1).toString(exec));
1440     if (exec->hadException())
1441         return JSValue::encode(jsUndefined());
1442
1443     imp->overloadedMethod(objArg, strArg);
1444     return JSValue::encode(jsUndefined());
1445 }
1446
1447 static EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod2(ExecState* exec)
1448 {
1449     JSValue thisValue = exec->hostThisValue();
1450     if (!thisValue.inherits(&JSTestObj::s_info))
1451         return throwVMTypeError(exec);
1452     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1453     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1454     TestObj* objArg = toTestObj(exec->argument(0));
1455     if (exec->hadException())
1456         return JSValue::encode(jsUndefined());
1457
1458     int argsCount = exec->argumentCount();
1459     if (argsCount <= 1) {
1460         imp->overloadedMethod(objArg);
1461         return JSValue::encode(jsUndefined());
1462     }
1463
1464     int intArg = exec->argument(1).toInt32(exec);
1465     if (exec->hadException())
1466         return JSValue::encode(jsUndefined());
1467
1468     imp->overloadedMethod(objArg, intArg);
1469     return JSValue::encode(jsUndefined());
1470 }
1471
1472 static EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod3(ExecState* exec)
1473 {
1474     JSValue thisValue = exec->hostThisValue();
1475     if (!thisValue.inherits(&JSTestObj::s_info))
1476         return throwVMTypeError(exec);
1477     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1478     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1479     const String& strArg = ustringToString(exec->argument(0).toString(exec));
1480     if (exec->hadException())
1481         return JSValue::encode(jsUndefined());
1482
1483     imp->overloadedMethod(strArg);
1484     return JSValue::encode(jsUndefined());
1485 }
1486
1487 static EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod4(ExecState* exec)
1488 {
1489     JSValue thisValue = exec->hostThisValue();
1490     if (!thisValue.inherits(&JSTestObj::s_info))
1491         return throwVMTypeError(exec);
1492     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1493     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1494     int intArg = exec->argument(0).toInt32(exec);
1495     if (exec->hadException())
1496         return JSValue::encode(jsUndefined());
1497
1498     imp->overloadedMethod(intArg);
1499     return JSValue::encode(jsUndefined());
1500 }
1501
1502 static EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod5(ExecState* exec)
1503 {
1504     JSValue thisValue = exec->hostThisValue();
1505     if (!thisValue.inherits(&JSTestObj::s_info))
1506         return throwVMTypeError(exec);
1507     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1508     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1509     if (exec->argumentCount() <= 0 || !exec->argument(0).isObject()) {
1510         setDOMException(exec, TYPE_MISMATCH_ERR);
1511         return JSValue::encode(jsUndefined());
1512     }
1513     RefPtr<TestCallback> callback = JSTestCallback::create(asObject(exec->argument(0)), castedThis->globalObject());
1514
1515     imp->overloadedMethod(callback);
1516     return JSValue::encode(jsUndefined());
1517 }
1518
1519 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionOverloadedMethod(ExecState* exec)
1520 {
1521     if ((exec->argumentCount() == 2 && (exec->argument(0).isNull() || (exec->argument(0).isObject() && asObject(exec->argument(0))->inherits(&JSTestObj::s_info))) && (exec->argument(1).isNull() || exec->argument(1).isUndefined() || exec->argument(1).isString() || exec->argument(1).isObject())))
1522         return jsTestObjPrototypeFunctionOverloadedMethod1(exec);
1523     if ((exec->argumentCount() == 1 && (exec->argument(0).isNull() || (exec->argument(0).isObject() && asObject(exec->argument(0))->inherits(&JSTestObj::s_info)))) || (exec->argumentCount() == 2 && (exec->argument(0).isNull() || (exec->argument(0).isObject() && asObject(exec->argument(0))->inherits(&JSTestObj::s_info)))))
1524         return jsTestObjPrototypeFunctionOverloadedMethod2(exec);
1525     if ((exec->argumentCount() == 1 && (exec->argument(0).isNull() || exec->argument(0).isUndefined() || exec->argument(0).isString() || exec->argument(0).isObject())))
1526         return jsTestObjPrototypeFunctionOverloadedMethod3(exec);
1527     if (exec->argumentCount() == 1)
1528         return jsTestObjPrototypeFunctionOverloadedMethod4(exec);
1529     if ((exec->argumentCount() == 1 && (exec->argument(0).isNull() || exec->argument(0).isObject())))
1530         return jsTestObjPrototypeFunctionOverloadedMethod5(exec);
1531     return throwVMTypeError(exec);
1532 }
1533
1534 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionClassMethod(ExecState* exec)
1535 {
1536     JSValue thisValue = exec->hostThisValue();
1537     if (!thisValue.inherits(&JSTestObj::s_info))
1538         return throwVMTypeError(exec);
1539     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1540     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1541
1542     imp->classMethod();
1543     return JSValue::encode(jsUndefined());
1544 }
1545
1546 EncodedJSValue JSC_HOST_CALL jsTestObjPrototypeFunctionClassMethodWithOptional(ExecState* exec)
1547 {
1548     JSValue thisValue = exec->hostThisValue();
1549     if (!thisValue.inherits(&JSTestObj::s_info))
1550         return throwVMTypeError(exec);
1551     JSTestObj* castedThis = static_cast<JSTestObj*>(asObject(thisValue));
1552     TestObj* imp = static_cast<TestObj*>(castedThis->impl());
1553
1554     int argsCount = exec->argumentCount();
1555     if (argsCount <= 0) {
1556
1557         JSC::JSValue result = jsNumber(imp->classMethodWithOptional());
1558         return JSValue::encode(result);
1559     }
1560
1561     int arg = exec->argument(0).toInt32(exec);
1562     if (exec->hadException())
1563         return JSValue::encode(jsUndefined());
1564
1565
1566     JSC::JSValue result = jsNumber(imp->classMethodWithOptional(arg));
1567     return JSValue::encode(result);
1568 }
1569
1570 // Constant getters
1571
1572 JSValue jsTestObjCONST_VALUE_0(ExecState* exec, JSValue, const Identifier&)
1573 {
1574     UNUSED_PARAM(exec);
1575     return jsNumber(static_cast<int>(0));
1576 }
1577
1578 JSValue jsTestObjCONST_VALUE_1(ExecState* exec, JSValue, const Identifier&)
1579 {
1580     UNUSED_PARAM(exec);
1581     return jsNumber(static_cast<int>(1));
1582 }
1583
1584 JSValue jsTestObjCONST_VALUE_2(ExecState* exec, JSValue, const Identifier&)
1585 {
1586     UNUSED_PARAM(exec);
1587     return jsNumber(static_cast<int>(2));
1588 }
1589
1590 JSValue jsTestObjCONST_VALUE_4(ExecState* exec, JSValue, const Identifier&)
1591 {
1592     UNUSED_PARAM(exec);
1593     return jsNumber(static_cast<int>(4));
1594 }
1595
1596 JSValue jsTestObjCONST_VALUE_8(ExecState* exec, JSValue, const Identifier&)
1597 {
1598     UNUSED_PARAM(exec);
1599     return jsNumber(static_cast<int>(8));
1600 }
1601
1602 JSValue jsTestObjCONST_VALUE_9(ExecState* exec, JSValue, const Identifier&)
1603 {
1604     UNUSED_PARAM(exec);
1605     return jsNumber(static_cast<int>(-1));
1606 }
1607
1608 JSValue jsTestObjCONST_VALUE_10(ExecState* exec, JSValue, const Identifier&)
1609 {
1610     return jsStringOrNull(exec, String("my constant string"));
1611 }
1612
1613 JSValue jsTestObjCONST_VALUE_11(ExecState* exec, JSValue, const Identifier&)
1614 {
1615     UNUSED_PARAM(exec);
1616     return jsNumber(static_cast<int>(0xffffffff));
1617 }
1618
1619 JSValue jsTestObjCONST_VALUE_12(ExecState* exec, JSValue, const Identifier&)
1620 {
1621     UNUSED_PARAM(exec);
1622     return jsNumber(static_cast<int>(0x01));
1623 }
1624
1625 JSValue jsTestObjCONST_VALUE_13(ExecState* exec, JSValue, const Identifier&)
1626 {
1627     UNUSED_PARAM(exec);
1628     return jsNumber(static_cast<int>(0X20));
1629 }
1630
1631 JSValue jsTestObjCONST_VALUE_14(ExecState* exec, JSValue, const Identifier&)
1632 {
1633     UNUSED_PARAM(exec);
1634     return jsNumber(static_cast<int>(0x1abc));
1635 }
1636
1637 JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, TestObj* object)
1638 {
1639     return getDOMObjectWrapper<JSTestObj>(exec, globalObject, object);
1640 }
1641 TestObj* toTestObj(JSC::JSValue value)
1642 {
1643     return value.inherits(&JSTestObj::s_info) ? static_cast<JSTestObj*>(asObject(value))->impl() : 0;
1644 }
1645
1646 }