tizen beta release
[framework/web/webkit-efl.git] / DerivedSources / WebCore / JSSVGClipPathElement.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
23 #if ENABLE(SVG)
24
25 #include "JSSVGClipPathElement.h"
26
27 #include "CSSMutableStyleDeclaration.h"
28 #include "CSSStyleDeclaration.h"
29 #include "CSSValue.h"
30 #include "ExceptionCode.h"
31 #include "JSCSSStyleDeclaration.h"
32 #include "JSCSSValue.h"
33 #include "JSDOMBinding.h"
34 #include "JSSVGAnimatedBoolean.h"
35 #include "JSSVGAnimatedEnumeration.h"
36 #include "JSSVGAnimatedString.h"
37 #include "JSSVGAnimatedTransformList.h"
38 #include "JSSVGElement.h"
39 #include "JSSVGMatrix.h"
40 #include "JSSVGRect.h"
41 #include "JSSVGStringList.h"
42 #include "KURL.h"
43 #include "SVGClipPathElement.h"
44 #include "SVGElement.h"
45 #include "SVGMatrix.h"
46 #include "SVGRect.h"
47 #include "SVGStringList.h"
48 #include <runtime/Error.h>
49 #include <runtime/JSString.h>
50 #include <wtf/GetPtr.h>
51
52 using namespace JSC;
53
54 namespace WebCore {
55
56 ASSERT_CLASS_FITS_IN_CELL(JSSVGClipPathElement);
57
58 /* Hash table */
59 #if ENABLE(JIT)
60 #define THUNK_GENERATOR(generator) , generator
61 #else
62 #define THUNK_GENERATOR(generator)
63 #endif
64 #if ENABLE(DFG_JIT)
65 #define INTRINSIC(intrinsic) , intrinsic
66 #else
67 #define INTRINSIC(intrinsic)
68 #endif
69
70 static const HashTableValue JSSVGClipPathElementTableValues[] =
71 {
72     { "clipPathUnits", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementClipPathUnits), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
73     { "requiredFeatures", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementRequiredFeatures), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
74     { "requiredExtensions", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementRequiredExtensions), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
75     { "systemLanguage", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementSystemLanguage), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
76     { "xmllang", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementXmllang), (intptr_t)setJSSVGClipPathElementXmllang THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
77     { "xmlspace", DontDelete, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementXmlspace), (intptr_t)setJSSVGClipPathElementXmlspace THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
78     { "externalResourcesRequired", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementExternalResourcesRequired), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
79     { "className", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementClassName), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
80     { "style", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementStyle), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
81     { "transform", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementTransform), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
82     { "nearestViewportElement", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementNearestViewportElement), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
83     { "farthestViewportElement", DontDelete | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementFarthestViewportElement), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
84     { "constructor", DontEnum | ReadOnly, (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGClipPathElementConstructor), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
85     { 0, 0, 0, 0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) }
86 };
87
88 #undef THUNK_GENERATOR
89 static const HashTable JSSVGClipPathElementTable = { 35, 31, JSSVGClipPathElementTableValues, 0 };
90 /* Hash table for constructor */
91 #if ENABLE(JIT)
92 #define THUNK_GENERATOR(generator) , generator
93 #else
94 #define THUNK_GENERATOR(generator)
95 #endif
96 #if ENABLE(DFG_JIT)
97 #define INTRINSIC(intrinsic) , intrinsic
98 #else
99 #define INTRINSIC(intrinsic)
100 #endif
101
102 static const HashTableValue JSSVGClipPathElementConstructorTableValues[] =
103 {
104     { 0, 0, 0, 0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) }
105 };
106
107 #undef THUNK_GENERATOR
108 static const HashTable JSSVGClipPathElementConstructorTable = { 1, 0, JSSVGClipPathElementConstructorTableValues, 0 };
109 const ClassInfo JSSVGClipPathElementConstructor::s_info = { "SVGClipPathElementConstructor", &DOMConstructorObject::s_info, &JSSVGClipPathElementConstructorTable, 0, CREATE_METHOD_TABLE(JSSVGClipPathElementConstructor) };
110
111 JSSVGClipPathElementConstructor::JSSVGClipPathElementConstructor(Structure* structure, JSDOMGlobalObject* globalObject)
112     : DOMConstructorObject(structure, globalObject)
113 {
114 }
115
116 void JSSVGClipPathElementConstructor::finishCreation(ExecState* exec, JSDOMGlobalObject* globalObject)
117 {
118     Base::finishCreation(exec->globalData());
119     ASSERT(inherits(&s_info));
120     putDirect(exec->globalData(), exec->propertyNames().prototype, JSSVGClipPathElementPrototype::self(exec, globalObject), DontDelete | ReadOnly);
121 }
122
123 bool JSSVGClipPathElementConstructor::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
124 {
125     return getStaticValueSlot<JSSVGClipPathElementConstructor, JSDOMWrapper>(exec, &JSSVGClipPathElementConstructorTable, static_cast<JSSVGClipPathElementConstructor*>(cell), propertyName, slot);
126 }
127
128 bool JSSVGClipPathElementConstructor::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
129 {
130     return getStaticValueDescriptor<JSSVGClipPathElementConstructor, JSDOMWrapper>(exec, &JSSVGClipPathElementConstructorTable, static_cast<JSSVGClipPathElementConstructor*>(object), propertyName, descriptor);
131 }
132
133 /* Hash table for prototype */
134 #if ENABLE(JIT)
135 #define THUNK_GENERATOR(generator) , generator
136 #else
137 #define THUNK_GENERATOR(generator)
138 #endif
139 #if ENABLE(DFG_JIT)
140 #define INTRINSIC(intrinsic) , intrinsic
141 #else
142 #define INTRINSIC(intrinsic)
143 #endif
144
145 static const HashTableValue JSSVGClipPathElementPrototypeTableValues[] =
146 {
147     { "hasExtension", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsSVGClipPathElementPrototypeFunctionHasExtension), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
148     { "getPresentationAttribute", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsSVGClipPathElementPrototypeFunctionGetPresentationAttribute), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
149     { "getBBox", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsSVGClipPathElementPrototypeFunctionGetBBox), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
150     { "getCTM", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsSVGClipPathElementPrototypeFunctionGetCTM), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
151     { "getScreenCTM", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsSVGClipPathElementPrototypeFunctionGetScreenCTM), (intptr_t)0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
152     { "getTransformToElement", DontDelete | Function, (intptr_t)static_cast<NativeFunction>(jsSVGClipPathElementPrototypeFunctionGetTransformToElement), (intptr_t)1 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) },
153     { 0, 0, 0, 0 THUNK_GENERATOR(0) INTRINSIC(DFG::NoIntrinsic) }
154 };
155
156 #undef THUNK_GENERATOR
157 static const HashTable JSSVGClipPathElementPrototypeTable = { 17, 15, JSSVGClipPathElementPrototypeTableValues, 0 };
158 const ClassInfo JSSVGClipPathElementPrototype::s_info = { "SVGClipPathElementPrototype", &JSC::JSNonFinalObject::s_info, &JSSVGClipPathElementPrototypeTable, 0, CREATE_METHOD_TABLE(JSSVGClipPathElementPrototype) };
159
160 JSObject* JSSVGClipPathElementPrototype::self(ExecState* exec, JSGlobalObject* globalObject)
161 {
162     return getDOMPrototype<JSSVGClipPathElement>(exec, globalObject);
163 }
164
165 bool JSSVGClipPathElementPrototype::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
166 {
167     JSSVGClipPathElementPrototype* thisObject = jsCast<JSSVGClipPathElementPrototype*>(cell);
168     return getStaticFunctionSlot<JSObject>(exec, &JSSVGClipPathElementPrototypeTable, thisObject, propertyName, slot);
169 }
170
171 bool JSSVGClipPathElementPrototype::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
172 {
173     JSSVGClipPathElementPrototype* thisObject = jsCast<JSSVGClipPathElementPrototype*>(object);
174     return getStaticFunctionDescriptor<JSObject>(exec, &JSSVGClipPathElementPrototypeTable, thisObject, propertyName, descriptor);
175 }
176
177 const ClassInfo JSSVGClipPathElement::s_info = { "SVGClipPathElement", &JSSVGElement::s_info, &JSSVGClipPathElementTable, 0 , CREATE_METHOD_TABLE(JSSVGClipPathElement) };
178
179 JSSVGClipPathElement::JSSVGClipPathElement(Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<SVGClipPathElement> impl)
180     : JSSVGElement(structure, globalObject, impl)
181 {
182 }
183
184 void JSSVGClipPathElement::finishCreation(JSGlobalData& globalData)
185 {
186     Base::finishCreation(globalData);
187     ASSERT(inherits(&s_info));
188 }
189
190 JSObject* JSSVGClipPathElement::createPrototype(ExecState* exec, JSGlobalObject* globalObject)
191 {
192     return JSSVGClipPathElementPrototype::create(exec->globalData(), globalObject, JSSVGClipPathElementPrototype::createStructure(exec->globalData(), globalObject, JSSVGElementPrototype::self(exec, globalObject)));
193 }
194
195 bool JSSVGClipPathElement::getOwnPropertySlot(JSCell* cell, ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
196 {
197     JSSVGClipPathElement* thisObject = jsCast<JSSVGClipPathElement*>(cell);
198     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
199     return getStaticValueSlot<JSSVGClipPathElement, Base>(exec, &JSSVGClipPathElementTable, thisObject, propertyName, slot);
200 }
201
202 bool JSSVGClipPathElement::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
203 {
204     JSSVGClipPathElement* thisObject = jsCast<JSSVGClipPathElement*>(object);
205     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
206     return getStaticValueDescriptor<JSSVGClipPathElement, Base>(exec, &JSSVGClipPathElementTable, thisObject, propertyName, descriptor);
207 }
208
209 JSValue jsSVGClipPathElementClipPathUnits(ExecState* exec, JSValue slotBase, const Identifier&)
210 {
211     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
212     UNUSED_PARAM(exec);
213     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
214     RefPtr<SVGAnimatedEnumeration> obj = imp->clipPathUnitsAnimated();
215     JSValue result =  toJS(exec, castedThis->globalObject(), obj.get());
216     return result;
217 }
218
219
220 JSValue jsSVGClipPathElementRequiredFeatures(ExecState* exec, JSValue slotBase, const Identifier&)
221 {
222     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
223     UNUSED_PARAM(exec);
224     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
225     JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(SVGStaticListPropertyTearOff<SVGStringList>::create(imp, imp->requiredFeatures())));
226     return result;
227 }
228
229
230 JSValue jsSVGClipPathElementRequiredExtensions(ExecState* exec, JSValue slotBase, const Identifier&)
231 {
232     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
233     UNUSED_PARAM(exec);
234     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
235     JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(SVGStaticListPropertyTearOff<SVGStringList>::create(imp, imp->requiredExtensions())));
236     return result;
237 }
238
239
240 JSValue jsSVGClipPathElementSystemLanguage(ExecState* exec, JSValue slotBase, const Identifier&)
241 {
242     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
243     UNUSED_PARAM(exec);
244     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
245     JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(SVGStaticListPropertyTearOff<SVGStringList>::create(imp, imp->systemLanguage())));
246     return result;
247 }
248
249
250 JSValue jsSVGClipPathElementXmllang(ExecState* exec, JSValue slotBase, const Identifier&)
251 {
252     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
253     UNUSED_PARAM(exec);
254     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
255     JSValue result = jsString(exec, imp->xmllang());
256     return result;
257 }
258
259
260 JSValue jsSVGClipPathElementXmlspace(ExecState* exec, JSValue slotBase, const Identifier&)
261 {
262     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
263     UNUSED_PARAM(exec);
264     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
265     JSValue result = jsString(exec, imp->xmlspace());
266     return result;
267 }
268
269
270 JSValue jsSVGClipPathElementExternalResourcesRequired(ExecState* exec, JSValue slotBase, const Identifier&)
271 {
272     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
273     UNUSED_PARAM(exec);
274     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
275     RefPtr<SVGAnimatedBoolean> obj = imp->externalResourcesRequiredAnimated();
276     JSValue result =  toJS(exec, castedThis->globalObject(), obj.get());
277     return result;
278 }
279
280
281 JSValue jsSVGClipPathElementClassName(ExecState* exec, JSValue slotBase, const Identifier&)
282 {
283     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
284     UNUSED_PARAM(exec);
285     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
286     RefPtr<SVGAnimatedString> obj = imp->classNameAnimated();
287     JSValue result =  toJS(exec, castedThis->globalObject(), obj.get());
288     return result;
289 }
290
291
292 JSValue jsSVGClipPathElementStyle(ExecState* exec, JSValue slotBase, const Identifier&)
293 {
294     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
295     UNUSED_PARAM(exec);
296     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
297     JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->style()));
298     return result;
299 }
300
301
302 JSValue jsSVGClipPathElementTransform(ExecState* exec, JSValue slotBase, const Identifier&)
303 {
304     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
305     UNUSED_PARAM(exec);
306     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
307     RefPtr<SVGAnimatedTransformList> obj = imp->transformAnimated();
308     JSValue result =  toJS(exec, castedThis->globalObject(), obj.get());
309     return result;
310 }
311
312
313 JSValue jsSVGClipPathElementNearestViewportElement(ExecState* exec, JSValue slotBase, const Identifier&)
314 {
315     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
316     UNUSED_PARAM(exec);
317     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
318     JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->nearestViewportElement()));
319     return result;
320 }
321
322
323 JSValue jsSVGClipPathElementFarthestViewportElement(ExecState* exec, JSValue slotBase, const Identifier&)
324 {
325     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
326     UNUSED_PARAM(exec);
327     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
328     JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->farthestViewportElement()));
329     return result;
330 }
331
332
333 JSValue jsSVGClipPathElementConstructor(ExecState* exec, JSValue slotBase, const Identifier&)
334 {
335     JSSVGClipPathElement* domObject = static_cast<JSSVGClipPathElement*>(asObject(slotBase));
336     return JSSVGClipPathElement::getConstructor(exec, domObject->globalObject());
337 }
338
339 void JSSVGClipPathElement::put(JSCell* cell, ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
340 {
341     JSSVGClipPathElement* thisObject = jsCast<JSSVGClipPathElement*>(cell);
342     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
343     lookupPut<JSSVGClipPathElement, Base>(exec, propertyName, value, &JSSVGClipPathElementTable, thisObject, slot);
344 }
345
346 void setJSSVGClipPathElementXmllang(ExecState* exec, JSObject* thisObject, JSValue value)
347 {
348     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(thisObject);
349     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
350     imp->setXmllang(ustringToString(value.isEmpty() ? UString() : value.toString(exec)));
351 }
352
353
354 void setJSSVGClipPathElementXmlspace(ExecState* exec, JSObject* thisObject, JSValue value)
355 {
356     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(thisObject);
357     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
358     imp->setXmlspace(ustringToString(value.isEmpty() ? UString() : value.toString(exec)));
359 }
360
361
362 JSValue JSSVGClipPathElement::getConstructor(ExecState* exec, JSGlobalObject* globalObject)
363 {
364     return getDOMConstructor<JSSVGClipPathElementConstructor>(exec, static_cast<JSDOMGlobalObject*>(globalObject));
365 }
366
367 EncodedJSValue JSC_HOST_CALL jsSVGClipPathElementPrototypeFunctionHasExtension(ExecState* exec)
368 {
369     JSValue thisValue = exec->hostThisValue();
370     if (!thisValue.inherits(&JSSVGClipPathElement::s_info))
371         return throwVMTypeError(exec);
372     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(thisValue));
373     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSSVGClipPathElement::s_info);
374     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
375     const String& extension(ustringToString(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).isEmpty() ? UString() : MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toString(exec)));
376     if (exec->hadException())
377         return JSValue::encode(jsUndefined());
378
379     JSC::JSValue result = jsBoolean(imp->hasExtension(extension));
380     return JSValue::encode(result);
381 }
382
383 EncodedJSValue JSC_HOST_CALL jsSVGClipPathElementPrototypeFunctionGetPresentationAttribute(ExecState* exec)
384 {
385     JSValue thisValue = exec->hostThisValue();
386     if (!thisValue.inherits(&JSSVGClipPathElement::s_info))
387         return throwVMTypeError(exec);
388     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(thisValue));
389     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSSVGClipPathElement::s_info);
390     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
391     const String& name(ustringToString(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).isEmpty() ? UString() : MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined).toString(exec)));
392     if (exec->hadException())
393         return JSValue::encode(jsUndefined());
394
395     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(imp->getPresentationAttribute(name)));
396     return JSValue::encode(result);
397 }
398
399 EncodedJSValue JSC_HOST_CALL jsSVGClipPathElementPrototypeFunctionGetBBox(ExecState* exec)
400 {
401     JSValue thisValue = exec->hostThisValue();
402     if (!thisValue.inherits(&JSSVGClipPathElement::s_info))
403         return throwVMTypeError(exec);
404     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(thisValue));
405     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSSVGClipPathElement::s_info);
406     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
407
408     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(SVGPropertyTearOff<FloatRect>::create(imp->getBBox())));
409     return JSValue::encode(result);
410 }
411
412 EncodedJSValue JSC_HOST_CALL jsSVGClipPathElementPrototypeFunctionGetCTM(ExecState* exec)
413 {
414     JSValue thisValue = exec->hostThisValue();
415     if (!thisValue.inherits(&JSSVGClipPathElement::s_info))
416         return throwVMTypeError(exec);
417     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(thisValue));
418     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSSVGClipPathElement::s_info);
419     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
420
421     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(SVGPropertyTearOff<SVGMatrix>::create(imp->getCTM())));
422     return JSValue::encode(result);
423 }
424
425 EncodedJSValue JSC_HOST_CALL jsSVGClipPathElementPrototypeFunctionGetScreenCTM(ExecState* exec)
426 {
427     JSValue thisValue = exec->hostThisValue();
428     if (!thisValue.inherits(&JSSVGClipPathElement::s_info))
429         return throwVMTypeError(exec);
430     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(thisValue));
431     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSSVGClipPathElement::s_info);
432     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
433
434     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(SVGPropertyTearOff<SVGMatrix>::create(imp->getScreenCTM())));
435     return JSValue::encode(result);
436 }
437
438 EncodedJSValue JSC_HOST_CALL jsSVGClipPathElementPrototypeFunctionGetTransformToElement(ExecState* exec)
439 {
440     JSValue thisValue = exec->hostThisValue();
441     if (!thisValue.inherits(&JSSVGClipPathElement::s_info))
442         return throwVMTypeError(exec);
443     JSSVGClipPathElement* castedThis = static_cast<JSSVGClipPathElement*>(asObject(thisValue));
444     ASSERT_GC_OBJECT_INHERITS(castedThis, &JSSVGClipPathElement::s_info);
445     SVGClipPathElement* imp = static_cast<SVGClipPathElement*>(castedThis->impl());
446     ExceptionCode ec = 0;
447     SVGElement* element(toSVGElement(MAYBE_MISSING_PARAMETER(exec, 0, MissingIsUndefined)));
448     if (exec->hadException())
449         return JSValue::encode(jsUndefined());
450
451     JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(SVGPropertyTearOff<SVGMatrix>::create(imp->getTransformToElement(element, ec))));
452     setDOMException(exec, ec);
453     return JSValue::encode(result);
454 }
455
456
457 }
458
459 #endif // ENABLE(SVG)