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 "JSSVGMarkerElement.h"
23
24#include "JSDOMAttribute.h"
25#include "JSDOMBinding.h"
26#include "JSDOMConstructorNotConstructable.h"
27#include "JSDOMConvertInterface.h"
28#include "JSDOMExceptionHandling.h"
29#include "JSDOMGlobalObject.h"
30#include "JSDOMOperation.h"
31#include "JSDOMWrapperCache.h"
32#include "JSSVGAngle.h"
33#include "JSSVGAnimatedAngle.h"
34#include "JSSVGAnimatedBoolean.h"
35#include "JSSVGAnimatedEnumeration.h"
36#include "JSSVGAnimatedLength.h"
37#include "JSSVGAnimatedPreserveAspectRatio.h"
38#include "JSSVGAnimatedRect.h"
39#include "ScriptExecutionContext.h"
40#include <JavaScriptCore/HeapSnapshotBuilder.h>
41#include <JavaScriptCore/JSCInlines.h>
42#include <wtf/GetPtr.h>
43#include <wtf/PointerPreparations.h>
44#include <wtf/URL.h>
45
46
47namespace WebCore {
48using namespace JSC;
49
50// Functions
51
52JSC::EncodedJSValue JSC_HOST_CALL jsSVGMarkerElementPrototypeFunctionSetOrientToAuto(JSC::ExecState*);
53JSC::EncodedJSValue JSC_HOST_CALL jsSVGMarkerElementPrototypeFunctionSetOrientToAngle(JSC::ExecState*);
54
55// Attributes
56
57JSC::EncodedJSValue jsSVGMarkerElementConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
58bool setJSSVGMarkerElementConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
59JSC::EncodedJSValue jsSVGMarkerElementRefX(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
60JSC::EncodedJSValue jsSVGMarkerElementRefY(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
61JSC::EncodedJSValue jsSVGMarkerElementMarkerUnits(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
62JSC::EncodedJSValue jsSVGMarkerElementMarkerWidth(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
63JSC::EncodedJSValue jsSVGMarkerElementMarkerHeight(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
64JSC::EncodedJSValue jsSVGMarkerElementOrientType(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
65JSC::EncodedJSValue jsSVGMarkerElementOrientAngle(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
66JSC::EncodedJSValue jsSVGMarkerElementExternalResourcesRequired(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
67JSC::EncodedJSValue jsSVGMarkerElementViewBox(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
68JSC::EncodedJSValue jsSVGMarkerElementPreserveAspectRatio(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
69
70class JSSVGMarkerElementPrototype : public JSC::JSNonFinalObject {
71public:
72 using Base = JSC::JSNonFinalObject;
73 static JSSVGMarkerElementPrototype* create(JSC::VM& vm, JSDOMGlobalObject* globalObject, JSC::Structure* structure)
74 {
75 JSSVGMarkerElementPrototype* ptr = new (NotNull, JSC::allocateCell<JSSVGMarkerElementPrototype>(vm.heap)) JSSVGMarkerElementPrototype(vm, globalObject, structure);
76 ptr->finishCreation(vm);
77 return ptr;
78 }
79
80 DECLARE_INFO;
81 static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
82 {
83 return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
84 }
85
86private:
87 JSSVGMarkerElementPrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure)
88 : JSC::JSNonFinalObject(vm, structure)
89 {
90 }
91
92 void finishCreation(JSC::VM&);
93};
94
95using JSSVGMarkerElementConstructor = JSDOMConstructorNotConstructable<JSSVGMarkerElement>;
96
97/* Hash table for constructor */
98
99static const HashTableValue JSSVGMarkerElementConstructorTableValues[] =
100{
101 { "SVG_MARKERUNITS_UNKNOWN", JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::ConstantInteger, NoIntrinsic, { (long long)(0) } },
102 { "SVG_MARKERUNITS_USERSPACEONUSE", JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::ConstantInteger, NoIntrinsic, { (long long)(1) } },
103 { "SVG_MARKERUNITS_STROKEWIDTH", JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::ConstantInteger, NoIntrinsic, { (long long)(2) } },
104 { "SVG_MARKER_ORIENT_UNKNOWN", JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::ConstantInteger, NoIntrinsic, { (long long)(0) } },
105 { "SVG_MARKER_ORIENT_AUTO", JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::ConstantInteger, NoIntrinsic, { (long long)(1) } },
106 { "SVG_MARKER_ORIENT_ANGLE", JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::ConstantInteger, NoIntrinsic, { (long long)(2) } },
107};
108
109static_assert(SVGMarkerElement::SVG_MARKERUNITS_UNKNOWN == 0, "SVG_MARKERUNITS_UNKNOWN in SVGMarkerElement does not match value from IDL");
110static_assert(SVGMarkerElement::SVG_MARKERUNITS_USERSPACEONUSE == 1, "SVG_MARKERUNITS_USERSPACEONUSE in SVGMarkerElement does not match value from IDL");
111static_assert(SVGMarkerElement::SVG_MARKERUNITS_STROKEWIDTH == 2, "SVG_MARKERUNITS_STROKEWIDTH in SVGMarkerElement does not match value from IDL");
112static_assert(SVGMarkerElement::SVG_MARKER_ORIENT_UNKNOWN == 0, "SVG_MARKER_ORIENT_UNKNOWN in SVGMarkerElement does not match value from IDL");
113static_assert(SVGMarkerElement::SVG_MARKER_ORIENT_AUTO == 1, "SVG_MARKER_ORIENT_AUTO in SVGMarkerElement does not match value from IDL");
114static_assert(SVGMarkerElement::SVG_MARKER_ORIENT_ANGLE == 2, "SVG_MARKER_ORIENT_ANGLE in SVGMarkerElement does not match value from IDL");
115
116template<> JSValue JSSVGMarkerElementConstructor::prototypeForStructure(JSC::VM& vm, const JSDOMGlobalObject& globalObject)
117{
118 return JSSVGElement::getConstructor(vm, &globalObject);
119}
120
121template<> void JSSVGMarkerElementConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
122{
123 putDirect(vm, vm.propertyNames->prototype, JSSVGMarkerElement::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
124 putDirect(vm, vm.propertyNames->name, jsNontrivialString(&vm, String("SVGMarkerElement"_s)), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
125 putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
126 reifyStaticProperties(vm, JSSVGMarkerElement::info(), JSSVGMarkerElementConstructorTableValues, *this);
127}
128
129template<> const ClassInfo JSSVGMarkerElementConstructor::s_info = { "SVGMarkerElement", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSSVGMarkerElementConstructor) };
130
131/* Hash table for prototype */
132
133static const HashTableValue JSSVGMarkerElementPrototypeTableValues[] =
134{
135 { "constructor", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGMarkerElementConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSSVGMarkerElementConstructor) } },
136 { "refX", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGMarkerElementRefX), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
137 { "refY", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGMarkerElementRefY), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
138 { "markerUnits", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGMarkerElementMarkerUnits), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
139 { "markerWidth", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGMarkerElementMarkerWidth), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
140 { "markerHeight", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGMarkerElementMarkerHeight), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
141 { "orientType", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGMarkerElementOrientType), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
142 { "orientAngle", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGMarkerElementOrientAngle), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
143 { "externalResourcesRequired", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGMarkerElementExternalResourcesRequired), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
144 { "viewBox", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGMarkerElementViewBox), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
145 { "preserveAspectRatio", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsSVGMarkerElementPreserveAspectRatio), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
146 { "setOrientToAuto", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsSVGMarkerElementPrototypeFunctionSetOrientToAuto), (intptr_t) (0) } },
147 { "setOrientToAngle", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsSVGMarkerElementPrototypeFunctionSetOrientToAngle), (intptr_t) (1) } },
148 { "SVG_MARKERUNITS_UNKNOWN", JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::ConstantInteger, NoIntrinsic, { (long long)(0) } },
149 { "SVG_MARKERUNITS_USERSPACEONUSE", JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::ConstantInteger, NoIntrinsic, { (long long)(1) } },
150 { "SVG_MARKERUNITS_STROKEWIDTH", JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::ConstantInteger, NoIntrinsic, { (long long)(2) } },
151 { "SVG_MARKER_ORIENT_UNKNOWN", JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::ConstantInteger, NoIntrinsic, { (long long)(0) } },
152 { "SVG_MARKER_ORIENT_AUTO", JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::ConstantInteger, NoIntrinsic, { (long long)(1) } },
153 { "SVG_MARKER_ORIENT_ANGLE", JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::ConstantInteger, NoIntrinsic, { (long long)(2) } },
154};
155
156const ClassInfo JSSVGMarkerElementPrototype::s_info = { "SVGMarkerElementPrototype", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSSVGMarkerElementPrototype) };
157
158void JSSVGMarkerElementPrototype::finishCreation(VM& vm)
159{
160 Base::finishCreation(vm);
161 reifyStaticProperties(vm, JSSVGMarkerElement::info(), JSSVGMarkerElementPrototypeTableValues, *this);
162}
163
164const ClassInfo JSSVGMarkerElement::s_info = { "SVGMarkerElement", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSSVGMarkerElement) };
165
166JSSVGMarkerElement::JSSVGMarkerElement(Structure* structure, JSDOMGlobalObject& globalObject, Ref<SVGMarkerElement>&& impl)
167 : JSSVGElement(structure, globalObject, WTFMove(impl))
168{
169}
170
171void JSSVGMarkerElement::finishCreation(VM& vm)
172{
173 Base::finishCreation(vm);
174 ASSERT(inherits(vm, info()));
175
176}
177
178JSObject* JSSVGMarkerElement::createPrototype(VM& vm, JSDOMGlobalObject& globalObject)
179{
180 return JSSVGMarkerElementPrototype::create(vm, &globalObject, JSSVGMarkerElementPrototype::createStructure(vm, &globalObject, JSSVGElement::prototype(vm, globalObject)));
181}
182
183JSObject* JSSVGMarkerElement::prototype(VM& vm, JSDOMGlobalObject& globalObject)
184{
185 return getDOMPrototype<JSSVGMarkerElement>(vm, globalObject);
186}
187
188JSValue JSSVGMarkerElement::getConstructor(VM& vm, const JSGlobalObject* globalObject)
189{
190 return getDOMConstructor<JSSVGMarkerElementConstructor>(vm, *jsCast<const JSDOMGlobalObject*>(globalObject));
191}
192
193template<> inline JSSVGMarkerElement* IDLAttribute<JSSVGMarkerElement>::cast(ExecState& state, EncodedJSValue thisValue)
194{
195 return jsDynamicCast<JSSVGMarkerElement*>(state.vm(), JSValue::decode(thisValue));
196}
197
198template<> inline JSSVGMarkerElement* IDLOperation<JSSVGMarkerElement>::cast(ExecState& state)
199{
200 return jsDynamicCast<JSSVGMarkerElement*>(state.vm(), state.thisValue());
201}
202
203EncodedJSValue jsSVGMarkerElementConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
204{
205 VM& vm = state->vm();
206 auto throwScope = DECLARE_THROW_SCOPE(vm);
207 auto* prototype = jsDynamicCast<JSSVGMarkerElementPrototype*>(vm, JSValue::decode(thisValue));
208 if (UNLIKELY(!prototype))
209 return throwVMTypeError(state, throwScope);
210 return JSValue::encode(JSSVGMarkerElement::getConstructor(state->vm(), prototype->globalObject()));
211}
212
213bool setJSSVGMarkerElementConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
214{
215 VM& vm = state->vm();
216 auto throwScope = DECLARE_THROW_SCOPE(vm);
217 auto* prototype = jsDynamicCast<JSSVGMarkerElementPrototype*>(vm, JSValue::decode(thisValue));
218 if (UNLIKELY(!prototype)) {
219 throwVMTypeError(state, throwScope);
220 return false;
221 }
222 // Shadowing a built-in constructor
223 return prototype->putDirect(vm, vm.propertyNames->constructor, JSValue::decode(encodedValue));
224}
225
226static inline JSValue jsSVGMarkerElementRefXGetter(ExecState& state, JSSVGMarkerElement& thisObject, ThrowScope& throwScope)
227{
228 UNUSED_PARAM(throwScope);
229 UNUSED_PARAM(state);
230 auto& impl = thisObject.wrapped();
231 JSValue result = toJS<IDLInterface<SVGAnimatedLength>>(state, *thisObject.globalObject(), throwScope, impl.refXAnimated());
232 return result;
233}
234
235EncodedJSValue jsSVGMarkerElementRefX(ExecState* state, EncodedJSValue thisValue, PropertyName)
236{
237 return IDLAttribute<JSSVGMarkerElement>::get<jsSVGMarkerElementRefXGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "refX");
238}
239
240static inline JSValue jsSVGMarkerElementRefYGetter(ExecState& state, JSSVGMarkerElement& thisObject, ThrowScope& throwScope)
241{
242 UNUSED_PARAM(throwScope);
243 UNUSED_PARAM(state);
244 auto& impl = thisObject.wrapped();
245 JSValue result = toJS<IDLInterface<SVGAnimatedLength>>(state, *thisObject.globalObject(), throwScope, impl.refYAnimated());
246 return result;
247}
248
249EncodedJSValue jsSVGMarkerElementRefY(ExecState* state, EncodedJSValue thisValue, PropertyName)
250{
251 return IDLAttribute<JSSVGMarkerElement>::get<jsSVGMarkerElementRefYGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "refY");
252}
253
254static inline JSValue jsSVGMarkerElementMarkerUnitsGetter(ExecState& state, JSSVGMarkerElement& thisObject, ThrowScope& throwScope)
255{
256 UNUSED_PARAM(throwScope);
257 UNUSED_PARAM(state);
258 auto& impl = thisObject.wrapped();
259 JSValue result = toJS<IDLInterface<SVGAnimatedEnumeration>>(state, *thisObject.globalObject(), throwScope, impl.markerUnitsAnimated());
260 return result;
261}
262
263EncodedJSValue jsSVGMarkerElementMarkerUnits(ExecState* state, EncodedJSValue thisValue, PropertyName)
264{
265 return IDLAttribute<JSSVGMarkerElement>::get<jsSVGMarkerElementMarkerUnitsGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "markerUnits");
266}
267
268static inline JSValue jsSVGMarkerElementMarkerWidthGetter(ExecState& state, JSSVGMarkerElement& thisObject, ThrowScope& throwScope)
269{
270 UNUSED_PARAM(throwScope);
271 UNUSED_PARAM(state);
272 auto& impl = thisObject.wrapped();
273 JSValue result = toJS<IDLInterface<SVGAnimatedLength>>(state, *thisObject.globalObject(), throwScope, impl.markerWidthAnimated());
274 return result;
275}
276
277EncodedJSValue jsSVGMarkerElementMarkerWidth(ExecState* state, EncodedJSValue thisValue, PropertyName)
278{
279 return IDLAttribute<JSSVGMarkerElement>::get<jsSVGMarkerElementMarkerWidthGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "markerWidth");
280}
281
282static inline JSValue jsSVGMarkerElementMarkerHeightGetter(ExecState& state, JSSVGMarkerElement& thisObject, ThrowScope& throwScope)
283{
284 UNUSED_PARAM(throwScope);
285 UNUSED_PARAM(state);
286 auto& impl = thisObject.wrapped();
287 JSValue result = toJS<IDLInterface<SVGAnimatedLength>>(state, *thisObject.globalObject(), throwScope, impl.markerHeightAnimated());
288 return result;
289}
290
291EncodedJSValue jsSVGMarkerElementMarkerHeight(ExecState* state, EncodedJSValue thisValue, PropertyName)
292{
293 return IDLAttribute<JSSVGMarkerElement>::get<jsSVGMarkerElementMarkerHeightGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "markerHeight");
294}
295
296static inline JSValue jsSVGMarkerElementOrientTypeGetter(ExecState& state, JSSVGMarkerElement& thisObject, ThrowScope& throwScope)
297{
298 UNUSED_PARAM(throwScope);
299 UNUSED_PARAM(state);
300 auto& impl = thisObject.wrapped();
301 JSValue result = toJS<IDLInterface<SVGAnimatedEnumeration>>(state, *thisObject.globalObject(), throwScope, impl.orientTypeAnimated());
302 return result;
303}
304
305EncodedJSValue jsSVGMarkerElementOrientType(ExecState* state, EncodedJSValue thisValue, PropertyName)
306{
307 return IDLAttribute<JSSVGMarkerElement>::get<jsSVGMarkerElementOrientTypeGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "orientType");
308}
309
310static inline JSValue jsSVGMarkerElementOrientAngleGetter(ExecState& state, JSSVGMarkerElement& thisObject, ThrowScope& throwScope)
311{
312 UNUSED_PARAM(throwScope);
313 UNUSED_PARAM(state);
314 auto& impl = thisObject.wrapped();
315 JSValue result = toJS<IDLInterface<SVGAnimatedAngle>>(state, *thisObject.globalObject(), throwScope, impl.orientAngleAnimated());
316 return result;
317}
318
319EncodedJSValue jsSVGMarkerElementOrientAngle(ExecState* state, EncodedJSValue thisValue, PropertyName)
320{
321 return IDLAttribute<JSSVGMarkerElement>::get<jsSVGMarkerElementOrientAngleGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "orientAngle");
322}
323
324static inline JSValue jsSVGMarkerElementExternalResourcesRequiredGetter(ExecState& state, JSSVGMarkerElement& thisObject, ThrowScope& throwScope)
325{
326 UNUSED_PARAM(throwScope);
327 UNUSED_PARAM(state);
328 auto& impl = thisObject.wrapped();
329 JSValue result = toJS<IDLInterface<SVGAnimatedBoolean>>(state, *thisObject.globalObject(), throwScope, impl.externalResourcesRequiredAnimated());
330 return result;
331}
332
333EncodedJSValue jsSVGMarkerElementExternalResourcesRequired(ExecState* state, EncodedJSValue thisValue, PropertyName)
334{
335 return IDLAttribute<JSSVGMarkerElement>::get<jsSVGMarkerElementExternalResourcesRequiredGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "externalResourcesRequired");
336}
337
338static inline JSValue jsSVGMarkerElementViewBoxGetter(ExecState& state, JSSVGMarkerElement& thisObject, ThrowScope& throwScope)
339{
340 UNUSED_PARAM(throwScope);
341 UNUSED_PARAM(state);
342 auto& impl = thisObject.wrapped();
343 JSValue result = toJS<IDLInterface<SVGAnimatedRect>>(state, *thisObject.globalObject(), throwScope, impl.viewBoxAnimated());
344 return result;
345}
346
347EncodedJSValue jsSVGMarkerElementViewBox(ExecState* state, EncodedJSValue thisValue, PropertyName)
348{
349 return IDLAttribute<JSSVGMarkerElement>::get<jsSVGMarkerElementViewBoxGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "viewBox");
350}
351
352static inline JSValue jsSVGMarkerElementPreserveAspectRatioGetter(ExecState& state, JSSVGMarkerElement& thisObject, ThrowScope& throwScope)
353{
354 UNUSED_PARAM(throwScope);
355 UNUSED_PARAM(state);
356 auto& impl = thisObject.wrapped();
357 JSValue result = toJS<IDLInterface<SVGAnimatedPreserveAspectRatio>>(state, *thisObject.globalObject(), throwScope, impl.preserveAspectRatioAnimated());
358 return result;
359}
360
361EncodedJSValue jsSVGMarkerElementPreserveAspectRatio(ExecState* state, EncodedJSValue thisValue, PropertyName)
362{
363 return IDLAttribute<JSSVGMarkerElement>::get<jsSVGMarkerElementPreserveAspectRatioGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "preserveAspectRatio");
364}
365
366static inline JSC::EncodedJSValue jsSVGMarkerElementPrototypeFunctionSetOrientToAutoBody(JSC::ExecState* state, typename IDLOperation<JSSVGMarkerElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
367{
368 UNUSED_PARAM(state);
369 UNUSED_PARAM(throwScope);
370 auto& impl = castedThis->wrapped();
371 impl.setOrientToAuto();
372 return JSValue::encode(jsUndefined());
373}
374
375EncodedJSValue JSC_HOST_CALL jsSVGMarkerElementPrototypeFunctionSetOrientToAuto(ExecState* state)
376{
377 return IDLOperation<JSSVGMarkerElement>::call<jsSVGMarkerElementPrototypeFunctionSetOrientToAutoBody>(*state, "setOrientToAuto");
378}
379
380static inline JSC::EncodedJSValue jsSVGMarkerElementPrototypeFunctionSetOrientToAngleBody(JSC::ExecState* state, typename IDLOperation<JSSVGMarkerElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
381{
382 UNUSED_PARAM(state);
383 UNUSED_PARAM(throwScope);
384 auto& impl = castedThis->wrapped();
385 if (UNLIKELY(state->argumentCount() < 1))
386 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
387 auto angle = convert<IDLInterface<SVGAngle>>(*state, state->uncheckedArgument(0), [](JSC::ExecState& state, JSC::ThrowScope& scope) { throwArgumentTypeError(state, scope, 0, "angle", "SVGMarkerElement", "setOrientToAngle", "SVGAngle"); });
388 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
389 impl.setOrientToAngle(*angle);
390 return JSValue::encode(jsUndefined());
391}
392
393EncodedJSValue JSC_HOST_CALL jsSVGMarkerElementPrototypeFunctionSetOrientToAngle(ExecState* state)
394{
395 return IDLOperation<JSSVGMarkerElement>::call<jsSVGMarkerElementPrototypeFunctionSetOrientToAngleBody>(*state, "setOrientToAngle");
396}
397
398void JSSVGMarkerElement::heapSnapshot(JSCell* cell, HeapSnapshotBuilder& builder)
399{
400 auto* thisObject = jsCast<JSSVGMarkerElement*>(cell);
401 builder.setWrappedObjectForCell(cell, &thisObject->wrapped());
402 if (thisObject->scriptExecutionContext())
403 builder.setLabelForCell(cell, "url " + thisObject->scriptExecutionContext()->url().string());
404 Base::heapSnapshot(cell, builder);
405}
406
407
408}
409