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