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 "JSElement.h"
23
24#include "CustomElementReactionQueue.h"
25#include "DOMJITAbstractHeapRepository.h"
26#include "DOMJITIDLConvert.h"
27#include "DOMJITIDLType.h"
28#include "DOMJITIDLTypeFilter.h"
29#include "Document.h"
30#include "EventNames.h"
31#include "HTMLNames.h"
32#include "JSAttr.h"
33#include "JSDOMAttribute.h"
34#include "JSDOMBinding.h"
35#include "JSDOMConstructorNotConstructable.h"
36#include "JSDOMConvertBoolean.h"
37#include "JSDOMConvertEnumeration.h"
38#include "JSDOMConvertInterface.h"
39#include "JSDOMConvertNullable.h"
40#include "JSDOMConvertNumbers.h"
41#include "JSDOMConvertObject.h"
42#include "JSDOMConvertSequences.h"
43#include "JSDOMConvertStrings.h"
44#include "JSDOMConvertUnion.h"
45#include "JSDOMConvertVariadic.h"
46#include "JSDOMExceptionHandling.h"
47#include "JSDOMGlobalObject.h"
48#include "JSDOMOperation.h"
49#include "JSDOMRect.h"
50#include "JSDOMRectList.h"
51#include "JSDOMTokenList.h"
52#include "JSDOMWrapperCache.h"
53#include "JSElement.h"
54#include "JSEventListener.h"
55#include "JSHTMLCollection.h"
56#include "JSHTMLSlotElement.h"
57#include "JSKeyframeAnimationOptions.h"
58#include "JSNamedNodeMap.h"
59#include "JSNodeList.h"
60#include "JSScrollIntoViewOptions.h"
61#include "JSScrollToOptions.h"
62#include "JSShadowRoot.h"
63#include "JSShadowRootMode.h"
64#include "JSWebAnimation.h"
65#include "RuntimeEnabledFeatures.h"
66#include "ScriptExecutionContext.h"
67#include "Settings.h"
68#include <JavaScriptCore/FrameTracers.h>
69#include <JavaScriptCore/HeapSnapshotBuilder.h>
70#include <JavaScriptCore/JSArray.h>
71#include <JavaScriptCore/JSCInlines.h>
72#include <JavaScriptCore/ObjectConstructor.h>
73#include <wtf/GetPtr.h>
74#include <wtf/PointerPreparations.h>
75#include <wtf/URL.h>
76#include <wtf/Variant.h>
77
78
79namespace WebCore {
80using namespace JSC;
81
82template<> Element::ShadowRootInit convertDictionary<Element::ShadowRootInit>(ExecState& state, JSValue value)
83{
84 VM& vm = state.vm();
85 auto throwScope = DECLARE_THROW_SCOPE(vm);
86 bool isNullOrUndefined = value.isUndefinedOrNull();
87 auto* object = isNullOrUndefined ? nullptr : value.getObject();
88 if (UNLIKELY(!isNullOrUndefined && !object)) {
89 throwTypeError(&state, throwScope);
90 return { };
91 }
92 Element::ShadowRootInit result;
93 JSValue modeValue;
94 if (isNullOrUndefined)
95 modeValue = jsUndefined();
96 else {
97 modeValue = object->get(&state, Identifier::fromString(&state, "mode"));
98 RETURN_IF_EXCEPTION(throwScope, { });
99 }
100 if (!modeValue.isUndefined()) {
101 result.mode = convert<IDLEnumeration<ShadowRootMode>>(state, modeValue);
102 RETURN_IF_EXCEPTION(throwScope, { });
103 } else {
104 throwRequiredMemberTypeError(state, throwScope, "mode", "ShadowRootInit", "ShadowRootMode");
105 return { };
106 }
107 return result;
108}
109
110// Functions
111
112JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionHasAttributes(JSC::ExecState*);
113JSC::EncodedJSValue JIT_OPERATION unsafeJsElementPrototypeFunctionHasAttributes(JSC::ExecState*, JSElement*);
114JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetAttributeNames(JSC::ExecState*);
115JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetAttribute(JSC::ExecState*);
116JSC::EncodedJSValue JIT_OPERATION unsafeJsElementPrototypeFunctionGetAttribute(JSC::ExecState*, JSElement*, DOMJIT::IDLJSArgumentType<IDLDOMString>);
117JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetAttributeNS(JSC::ExecState*);
118JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionSetAttribute(JSC::ExecState*);
119JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionSetAttributeNS(JSC::ExecState*);
120JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionRemoveAttribute(JSC::ExecState*);
121JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionRemoveAttributeNS(JSC::ExecState*);
122JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionToggleAttribute(JSC::ExecState*);
123JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionHasAttribute(JSC::ExecState*);
124JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionHasAttributeNS(JSC::ExecState*);
125JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetAttributeNode(JSC::ExecState*);
126JSC::EncodedJSValue JIT_OPERATION unsafeJsElementPrototypeFunctionGetAttributeNode(JSC::ExecState*, JSElement*, DOMJIT::IDLJSArgumentType<IDLDOMString>);
127JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetAttributeNodeNS(JSC::ExecState*);
128JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionSetAttributeNode(JSC::ExecState*);
129JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionSetAttributeNodeNS(JSC::ExecState*);
130JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionRemoveAttributeNode(JSC::ExecState*);
131JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionAttachShadow(JSC::ExecState*);
132JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionClosest(JSC::ExecState*);
133JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionMatches(JSC::ExecState*);
134JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionWebkitMatchesSelector(JSC::ExecState*);
135JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetElementsByTagName(JSC::ExecState*);
136JSC::EncodedJSValue JIT_OPERATION unsafeJsElementPrototypeFunctionGetElementsByTagName(JSC::ExecState*, JSElement*, DOMJIT::IDLJSArgumentType<IDLDOMString>);
137JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetElementsByTagNameNS(JSC::ExecState*);
138JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetElementsByClassName(JSC::ExecState*);
139JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionInsertAdjacentElement(JSC::ExecState*);
140JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionInsertAdjacentText(JSC::ExecState*);
141JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetClientRects(JSC::ExecState*);
142JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetBoundingClientRect(JSC::ExecState*);
143JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionScrollIntoView(JSC::ExecState*);
144JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionScroll(JSC::ExecState*);
145JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionScrollTo(JSC::ExecState*);
146JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionScrollBy(JSC::ExecState*);
147JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionInsertAdjacentHTML(JSC::ExecState*);
148#if ENABLE(FULLSCREEN_API)
149JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionWebkitRequestFullScreen(JSC::ExecState*);
150#endif
151#if ENABLE(FULLSCREEN_API)
152JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionWebkitRequestFullscreen(JSC::ExecState*);
153#endif
154#if ENABLE(POINTER_EVENTS)
155JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionSetPointerCapture(JSC::ExecState*);
156#endif
157#if ENABLE(POINTER_EVENTS)
158JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionReleasePointerCapture(JSC::ExecState*);
159#endif
160#if ENABLE(POINTER_EVENTS)
161JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionHasPointerCapture(JSC::ExecState*);
162#endif
163#if ENABLE(POINTER_LOCK)
164JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionRequestPointerLock(JSC::ExecState*);
165#endif
166JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionScrollIntoViewIfNeeded(JSC::ExecState*);
167JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionAnimate(JSC::ExecState*);
168JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetAnimations(JSC::ExecState*);
169JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionBefore(JSC::ExecState*);
170JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionAfter(JSC::ExecState*);
171JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionReplaceWith(JSC::ExecState*);
172JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionRemove(JSC::ExecState*);
173JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionPrepend(JSC::ExecState*);
174JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionAppend(JSC::ExecState*);
175JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionQuerySelector(JSC::ExecState*);
176JSC::EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionQuerySelectorAll(JSC::ExecState*);
177
178// Attributes
179
180JSC::EncodedJSValue jsElementConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
181bool setJSElementConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
182JSC::EncodedJSValue jsElementNamespaceURI(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
183JSC::EncodedJSValue jsElementPrefix(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
184JSC::EncodedJSValue jsElementLocalName(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
185JSC::EncodedJSValue jsElementTagName(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
186JSC::EncodedJSValue jsElementId(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
187bool setJSElementId(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
188JSC::EncodedJSValue jsElementClassName(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
189bool setJSElementClassName(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
190JSC::EncodedJSValue jsElementClassList(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
191bool setJSElementClassList(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
192JSC::EncodedJSValue jsElementSlot(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
193bool setJSElementSlot(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
194JSC::EncodedJSValue jsElementAttributes(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
195JSC::EncodedJSValue jsElementShadowRoot(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
196JSC::EncodedJSValue jsElementScrollTop(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
197bool setJSElementScrollTop(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
198JSC::EncodedJSValue jsElementScrollLeft(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
199bool setJSElementScrollLeft(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
200JSC::EncodedJSValue jsElementScrollWidth(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
201JSC::EncodedJSValue jsElementScrollHeight(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
202JSC::EncodedJSValue jsElementClientTop(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
203JSC::EncodedJSValue jsElementClientLeft(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
204JSC::EncodedJSValue jsElementClientWidth(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
205JSC::EncodedJSValue jsElementClientHeight(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
206JSC::EncodedJSValue jsElementInnerHTML(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
207bool setJSElementInnerHTML(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
208JSC::EncodedJSValue jsElementOuterHTML(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
209bool setJSElementOuterHTML(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
210JSC::EncodedJSValue jsElementOnselectstart(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
211bool setJSElementOnselectstart(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
212#if ENABLE(IOS_GESTURE_EVENTS)
213JSC::EncodedJSValue jsElementOngesturechange(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
214bool setJSElementOngesturechange(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
215#endif
216#if ENABLE(IOS_GESTURE_EVENTS)
217JSC::EncodedJSValue jsElementOngestureend(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
218bool setJSElementOngestureend(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
219#endif
220#if ENABLE(IOS_GESTURE_EVENTS)
221JSC::EncodedJSValue jsElementOngesturestart(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
222bool setJSElementOngesturestart(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
223#endif
224JSC::EncodedJSValue jsElementOnwebkitanimationend(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
225bool setJSElementOnwebkitanimationend(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
226JSC::EncodedJSValue jsElementOnwebkitanimationiteration(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
227bool setJSElementOnwebkitanimationiteration(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
228JSC::EncodedJSValue jsElementOnwebkitanimationstart(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
229bool setJSElementOnwebkitanimationstart(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
230JSC::EncodedJSValue jsElementOnwebkittransitionend(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
231bool setJSElementOnwebkittransitionend(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
232#if ENABLE(FULLSCREEN_API)
233JSC::EncodedJSValue jsElementOnwebkitfullscreenchange(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
234bool setJSElementOnwebkitfullscreenchange(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
235#endif
236#if ENABLE(FULLSCREEN_API)
237JSC::EncodedJSValue jsElementOnwebkitfullscreenerror(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
238bool setJSElementOnwebkitfullscreenerror(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
239#endif
240JSC::EncodedJSValue jsElementOnfocusin(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
241bool setJSElementOnfocusin(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
242JSC::EncodedJSValue jsElementOnfocusout(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
243bool setJSElementOnfocusout(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
244JSC::EncodedJSValue jsElementOnbeforeload(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
245bool setJSElementOnbeforeload(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
246#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
247JSC::EncodedJSValue jsElementOnwebkitneedkey(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
248bool setJSElementOnwebkitneedkey(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
249#endif
250#if ENABLE(VIDEO_PRESENTATION_MODE)
251JSC::EncodedJSValue jsElementOnwebkitpresentationmodechanged(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
252bool setJSElementOnwebkitpresentationmodechanged(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
253#endif
254#if ENABLE(WIRELESS_PLAYBACK_TARGET)
255JSC::EncodedJSValue jsElementOnwebkitcurrentplaybacktargetiswirelesschanged(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
256bool setJSElementOnwebkitcurrentplaybacktargetiswirelesschanged(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
257#endif
258#if ENABLE(WIRELESS_PLAYBACK_TARGET)
259JSC::EncodedJSValue jsElementOnwebkitplaybacktargetavailabilitychanged(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
260bool setJSElementOnwebkitplaybacktargetavailabilitychanged(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
261#endif
262JSC::EncodedJSValue jsElementRole(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
263bool setJSElementRole(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
264JSC::EncodedJSValue jsElementAriaAtomic(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
265bool setJSElementAriaAtomic(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
266JSC::EncodedJSValue jsElementAriaAutoComplete(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
267bool setJSElementAriaAutoComplete(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
268JSC::EncodedJSValue jsElementAriaBusy(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
269bool setJSElementAriaBusy(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
270JSC::EncodedJSValue jsElementAriaChecked(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
271bool setJSElementAriaChecked(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
272JSC::EncodedJSValue jsElementAriaColCount(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
273bool setJSElementAriaColCount(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
274JSC::EncodedJSValue jsElementAriaColIndex(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
275bool setJSElementAriaColIndex(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
276JSC::EncodedJSValue jsElementAriaColSpan(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
277bool setJSElementAriaColSpan(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
278JSC::EncodedJSValue jsElementAriaCurrent(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
279bool setJSElementAriaCurrent(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
280JSC::EncodedJSValue jsElementAriaDisabled(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
281bool setJSElementAriaDisabled(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
282JSC::EncodedJSValue jsElementAriaExpanded(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
283bool setJSElementAriaExpanded(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
284JSC::EncodedJSValue jsElementAriaHasPopup(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
285bool setJSElementAriaHasPopup(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
286JSC::EncodedJSValue jsElementAriaHidden(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
287bool setJSElementAriaHidden(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
288JSC::EncodedJSValue jsElementAriaInvalid(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
289bool setJSElementAriaInvalid(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
290JSC::EncodedJSValue jsElementAriaKeyShortcuts(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
291bool setJSElementAriaKeyShortcuts(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
292JSC::EncodedJSValue jsElementAriaLabel(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
293bool setJSElementAriaLabel(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
294JSC::EncodedJSValue jsElementAriaLevel(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
295bool setJSElementAriaLevel(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
296JSC::EncodedJSValue jsElementAriaLive(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
297bool setJSElementAriaLive(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
298JSC::EncodedJSValue jsElementAriaModal(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
299bool setJSElementAriaModal(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
300JSC::EncodedJSValue jsElementAriaMultiLine(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
301bool setJSElementAriaMultiLine(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
302JSC::EncodedJSValue jsElementAriaMultiSelectable(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
303bool setJSElementAriaMultiSelectable(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
304JSC::EncodedJSValue jsElementAriaOrientation(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
305bool setJSElementAriaOrientation(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
306JSC::EncodedJSValue jsElementAriaPlaceholder(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
307bool setJSElementAriaPlaceholder(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
308JSC::EncodedJSValue jsElementAriaPosInSet(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
309bool setJSElementAriaPosInSet(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
310JSC::EncodedJSValue jsElementAriaPressed(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
311bool setJSElementAriaPressed(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
312JSC::EncodedJSValue jsElementAriaReadOnly(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
313bool setJSElementAriaReadOnly(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
314JSC::EncodedJSValue jsElementAriaRelevant(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
315bool setJSElementAriaRelevant(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
316JSC::EncodedJSValue jsElementAriaRequired(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
317bool setJSElementAriaRequired(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
318JSC::EncodedJSValue jsElementAriaRoleDescription(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
319bool setJSElementAriaRoleDescription(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
320JSC::EncodedJSValue jsElementAriaRowCount(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
321bool setJSElementAriaRowCount(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
322JSC::EncodedJSValue jsElementAriaRowIndex(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
323bool setJSElementAriaRowIndex(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
324JSC::EncodedJSValue jsElementAriaRowSpan(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
325bool setJSElementAriaRowSpan(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
326JSC::EncodedJSValue jsElementAriaSelected(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
327bool setJSElementAriaSelected(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
328JSC::EncodedJSValue jsElementAriaSetSize(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
329bool setJSElementAriaSetSize(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
330JSC::EncodedJSValue jsElementAriaSort(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
331bool setJSElementAriaSort(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
332JSC::EncodedJSValue jsElementAriaValueMax(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
333bool setJSElementAriaValueMax(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
334JSC::EncodedJSValue jsElementAriaValueMin(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
335bool setJSElementAriaValueMin(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
336JSC::EncodedJSValue jsElementAriaValueNow(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
337bool setJSElementAriaValueNow(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
338JSC::EncodedJSValue jsElementAriaValueText(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
339bool setJSElementAriaValueText(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
340JSC::EncodedJSValue jsElementOncopy(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
341bool setJSElementOncopy(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
342JSC::EncodedJSValue jsElementOncut(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
343bool setJSElementOncut(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
344JSC::EncodedJSValue jsElementOnpaste(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
345bool setJSElementOnpaste(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
346JSC::EncodedJSValue jsElementOnbeforecopy(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
347bool setJSElementOnbeforecopy(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
348JSC::EncodedJSValue jsElementOnbeforecut(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
349bool setJSElementOnbeforecut(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
350JSC::EncodedJSValue jsElementOnbeforeinput(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
351bool setJSElementOnbeforeinput(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
352JSC::EncodedJSValue jsElementOnbeforepaste(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
353bool setJSElementOnbeforepaste(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
354JSC::EncodedJSValue jsElementPreviousElementSibling(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
355JSC::EncodedJSValue jsElementNextElementSibling(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
356JSC::EncodedJSValue jsElementChildren(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
357JSC::EncodedJSValue jsElementFirstElementChild(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
358JSC::EncodedJSValue jsElementLastElementChild(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
359JSC::EncodedJSValue jsElementChildElementCount(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
360JSC::EncodedJSValue jsElementAssignedSlot(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
361
362static const JSC::DOMJIT::Signature DOMJITSignatureForElementHasAttributes((uintptr_t)unsafeJsElementPrototypeFunctionHasAttributes, JSElement::info(), JSC::DOMJIT::Effect::forRead(DOMJIT::AbstractHeapRepository::DOM), DOMJIT::IDLResultTypeFilter<IDLBoolean>::value);
363
364static const JSC::DOMJIT::Signature DOMJITSignatureForElementGetAttribute((uintptr_t)unsafeJsElementPrototypeFunctionGetAttribute, JSElement::info(), JSC::DOMJIT::Effect::forRead(DOMJIT::AbstractHeapRepository::DOM), DOMJIT::IDLResultTypeFilter<IDLNullable<IDLDOMString>>::value, DOMJIT::IDLArgumentTypeFilter<IDLDOMString>::value);
365
366static const JSC::DOMJIT::Signature DOMJITSignatureForElementGetAttributeNode((uintptr_t)unsafeJsElementPrototypeFunctionGetAttributeNode, JSElement::info(), JSC::DOMJIT::Effect::forRead(DOMJIT::AbstractHeapRepository::DOM), DOMJIT::IDLResultTypeFilter<IDLNullable<IDLInterface<Attr>>>::value, DOMJIT::IDLArgumentTypeFilter<IDLDOMString>::value);
367
368static const JSC::DOMJIT::Signature DOMJITSignatureForElementGetElementsByTagName((uintptr_t)unsafeJsElementPrototypeFunctionGetElementsByTagName, JSElement::info(), JSC::DOMJIT::Effect::forRead(DOMJIT::AbstractHeapRepository::DOM), DOMJIT::IDLResultTypeFilter<IDLInterface<HTMLCollection>>::value, DOMJIT::IDLArgumentTypeFilter<IDLDOMString>::value);
369
370class JSElementPrototype : public JSC::JSNonFinalObject {
371public:
372 using Base = JSC::JSNonFinalObject;
373 static JSElementPrototype* create(JSC::VM& vm, JSDOMGlobalObject* globalObject, JSC::Structure* structure)
374 {
375 JSElementPrototype* ptr = new (NotNull, JSC::allocateCell<JSElementPrototype>(vm.heap)) JSElementPrototype(vm, globalObject, structure);
376 ptr->finishCreation(vm);
377 return ptr;
378 }
379
380 DECLARE_INFO;
381 static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype)
382 {
383 return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info());
384 }
385
386private:
387 JSElementPrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure)
388 : JSC::JSNonFinalObject(vm, structure)
389 {
390 }
391
392 void finishCreation(JSC::VM&);
393};
394
395using JSElementConstructor = JSDOMConstructorNotConstructable<JSElement>;
396
397template<> JSValue JSElementConstructor::prototypeForStructure(JSC::VM& vm, const JSDOMGlobalObject& globalObject)
398{
399 return JSNode::getConstructor(vm, &globalObject);
400}
401
402template<> void JSElementConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject)
403{
404 putDirect(vm, vm.propertyNames->prototype, JSElement::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
405 putDirect(vm, vm.propertyNames->name, jsNontrivialString(&vm, String("Element"_s)), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
406 putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum);
407}
408
409template<> const ClassInfo JSElementConstructor::s_info = { "Element", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSElementConstructor) };
410
411/* Hash table for prototype */
412
413static const HashTableValue JSElementPrototypeTableValues[] =
414{
415 { "constructor", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementConstructor) } },
416 { "namespaceURI", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementNamespaceURI), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
417 { "prefix", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementPrefix), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
418 { "localName", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementLocalName), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
419 { "tagName", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementTagName), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
420 { "id", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementId), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementId) } },
421 { "className", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementClassName), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementClassName) } },
422 { "classList", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementClassList), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementClassList) } },
423 { "slot", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementSlot), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementSlot) } },
424 { "attributes", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAttributes), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
425 { "shadowRoot", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementShadowRoot), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
426 { "scrollTop", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementScrollTop), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementScrollTop) } },
427 { "scrollLeft", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementScrollLeft), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementScrollLeft) } },
428 { "scrollWidth", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementScrollWidth), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
429 { "scrollHeight", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementScrollHeight), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
430 { "clientTop", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementClientTop), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
431 { "clientLeft", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementClientLeft), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
432 { "clientWidth", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementClientWidth), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
433 { "clientHeight", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementClientHeight), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
434 { "innerHTML", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementInnerHTML), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementInnerHTML) } },
435 { "outerHTML", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOuterHTML), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOuterHTML) } },
436 { "onselectstart", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnselectstart), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnselectstart) } },
437#if ENABLE(IOS_GESTURE_EVENTS)
438 { "ongesturechange", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOngesturechange), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOngesturechange) } },
439#else
440 { 0, 0, NoIntrinsic, { 0, 0 } },
441#endif
442#if ENABLE(IOS_GESTURE_EVENTS)
443 { "ongestureend", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOngestureend), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOngestureend) } },
444#else
445 { 0, 0, NoIntrinsic, { 0, 0 } },
446#endif
447#if ENABLE(IOS_GESTURE_EVENTS)
448 { "ongesturestart", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOngesturestart), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOngesturestart) } },
449#else
450 { 0, 0, NoIntrinsic, { 0, 0 } },
451#endif
452 { "onwebkitanimationend", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnwebkitanimationend), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnwebkitanimationend) } },
453 { "onwebkitanimationiteration", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnwebkitanimationiteration), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnwebkitanimationiteration) } },
454 { "onwebkitanimationstart", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnwebkitanimationstart), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnwebkitanimationstart) } },
455 { "onwebkittransitionend", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnwebkittransitionend), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnwebkittransitionend) } },
456#if ENABLE(FULLSCREEN_API)
457 { "onwebkitfullscreenchange", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnwebkitfullscreenchange), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnwebkitfullscreenchange) } },
458#else
459 { 0, 0, NoIntrinsic, { 0, 0 } },
460#endif
461#if ENABLE(FULLSCREEN_API)
462 { "onwebkitfullscreenerror", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnwebkitfullscreenerror), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnwebkitfullscreenerror) } },
463#else
464 { 0, 0, NoIntrinsic, { 0, 0 } },
465#endif
466 { "onfocusin", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnfocusin), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnfocusin) } },
467 { "onfocusout", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnfocusout), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnfocusout) } },
468 { "onbeforeload", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnbeforeload), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnbeforeload) } },
469#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
470 { "onwebkitneedkey", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnwebkitneedkey), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnwebkitneedkey) } },
471#else
472 { 0, 0, NoIntrinsic, { 0, 0 } },
473#endif
474#if ENABLE(VIDEO_PRESENTATION_MODE)
475 { "onwebkitpresentationmodechanged", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnwebkitpresentationmodechanged), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnwebkitpresentationmodechanged) } },
476#else
477 { 0, 0, NoIntrinsic, { 0, 0 } },
478#endif
479#if ENABLE(WIRELESS_PLAYBACK_TARGET)
480 { "onwebkitcurrentplaybacktargetiswirelesschanged", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnwebkitcurrentplaybacktargetiswirelesschanged), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnwebkitcurrentplaybacktargetiswirelesschanged) } },
481#else
482 { 0, 0, NoIntrinsic, { 0, 0 } },
483#endif
484#if ENABLE(WIRELESS_PLAYBACK_TARGET)
485 { "onwebkitplaybacktargetavailabilitychanged", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnwebkitplaybacktargetavailabilitychanged), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnwebkitplaybacktargetavailabilitychanged) } },
486#else
487 { 0, 0, NoIntrinsic, { 0, 0 } },
488#endif
489 { "role", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementRole), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementRole) } },
490 { "ariaAtomic", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaAtomic), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaAtomic) } },
491 { "ariaAutoComplete", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaAutoComplete), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaAutoComplete) } },
492 { "ariaBusy", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaBusy), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaBusy) } },
493 { "ariaChecked", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaChecked), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaChecked) } },
494 { "ariaColCount", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaColCount), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaColCount) } },
495 { "ariaColIndex", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaColIndex), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaColIndex) } },
496 { "ariaColSpan", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaColSpan), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaColSpan) } },
497 { "ariaCurrent", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaCurrent), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaCurrent) } },
498 { "ariaDisabled", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaDisabled), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaDisabled) } },
499 { "ariaExpanded", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaExpanded), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaExpanded) } },
500 { "ariaHasPopup", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaHasPopup), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaHasPopup) } },
501 { "ariaHidden", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaHidden), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaHidden) } },
502 { "ariaInvalid", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaInvalid), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaInvalid) } },
503 { "ariaKeyShortcuts", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaKeyShortcuts), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaKeyShortcuts) } },
504 { "ariaLabel", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaLabel), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaLabel) } },
505 { "ariaLevel", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaLevel), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaLevel) } },
506 { "ariaLive", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaLive), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaLive) } },
507 { "ariaModal", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaModal), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaModal) } },
508 { "ariaMultiLine", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaMultiLine), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaMultiLine) } },
509 { "ariaMultiSelectable", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaMultiSelectable), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaMultiSelectable) } },
510 { "ariaOrientation", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaOrientation), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaOrientation) } },
511 { "ariaPlaceholder", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaPlaceholder), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaPlaceholder) } },
512 { "ariaPosInSet", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaPosInSet), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaPosInSet) } },
513 { "ariaPressed", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaPressed), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaPressed) } },
514 { "ariaReadOnly", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaReadOnly), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaReadOnly) } },
515 { "ariaRelevant", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaRelevant), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaRelevant) } },
516 { "ariaRequired", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaRequired), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaRequired) } },
517 { "ariaRoleDescription", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaRoleDescription), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaRoleDescription) } },
518 { "ariaRowCount", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaRowCount), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaRowCount) } },
519 { "ariaRowIndex", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaRowIndex), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaRowIndex) } },
520 { "ariaRowSpan", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaRowSpan), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaRowSpan) } },
521 { "ariaSelected", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaSelected), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaSelected) } },
522 { "ariaSetSize", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaSetSize), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaSetSize) } },
523 { "ariaSort", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaSort), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaSort) } },
524 { "ariaValueMax", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaValueMax), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaValueMax) } },
525 { "ariaValueMin", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaValueMin), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaValueMin) } },
526 { "ariaValueNow", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaValueNow), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaValueNow) } },
527 { "ariaValueText", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAriaValueText), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementAriaValueText) } },
528 { "oncopy", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOncopy), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOncopy) } },
529 { "oncut", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOncut), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOncut) } },
530 { "onpaste", static_cast<unsigned>(JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnpaste), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnpaste) } },
531 { "onbeforecopy", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnbeforecopy), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnbeforecopy) } },
532 { "onbeforecut", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnbeforecut), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnbeforecut) } },
533 { "onbeforeinput", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnbeforeinput), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnbeforeinput) } },
534 { "onbeforepaste", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementOnbeforepaste), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSElementOnbeforepaste) } },
535 { "previousElementSibling", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementPreviousElementSibling), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
536 { "nextElementSibling", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementNextElementSibling), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
537 { "children", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementChildren), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
538 { "firstElementChild", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementFirstElementChild), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
539 { "lastElementChild", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementLastElementChild), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
540 { "childElementCount", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementChildElementCount), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
541 { "assignedSlot", static_cast<unsigned>(JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::CustomAccessor | JSC::PropertyAttribute::DOMAttribute), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsElementAssignedSlot), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
542 { "hasAttributes", static_cast<unsigned>(JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DOMJITFunction), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionHasAttributes), (intptr_t) static_cast<const JSC::DOMJIT::Signature*>(&DOMJITSignatureForElementHasAttributes) } },
543 { "getAttributeNames", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionGetAttributeNames), (intptr_t) (0) } },
544 { "getAttribute", static_cast<unsigned>(JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DOMJITFunction), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionGetAttribute), (intptr_t) static_cast<const JSC::DOMJIT::Signature*>(&DOMJITSignatureForElementGetAttribute) } },
545 { "getAttributeNS", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionGetAttributeNS), (intptr_t) (2) } },
546 { "setAttribute", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionSetAttribute), (intptr_t) (2) } },
547 { "setAttributeNS", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionSetAttributeNS), (intptr_t) (3) } },
548 { "removeAttribute", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionRemoveAttribute), (intptr_t) (1) } },
549 { "removeAttributeNS", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionRemoveAttributeNS), (intptr_t) (2) } },
550 { "toggleAttribute", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionToggleAttribute), (intptr_t) (1) } },
551 { "hasAttribute", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionHasAttribute), (intptr_t) (1) } },
552 { "hasAttributeNS", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionHasAttributeNS), (intptr_t) (2) } },
553 { "getAttributeNode", static_cast<unsigned>(JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DOMJITFunction), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionGetAttributeNode), (intptr_t) static_cast<const JSC::DOMJIT::Signature*>(&DOMJITSignatureForElementGetAttributeNode) } },
554 { "getAttributeNodeNS", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionGetAttributeNodeNS), (intptr_t) (2) } },
555 { "setAttributeNode", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionSetAttributeNode), (intptr_t) (1) } },
556 { "setAttributeNodeNS", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionSetAttributeNodeNS), (intptr_t) (1) } },
557 { "removeAttributeNode", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionRemoveAttributeNode), (intptr_t) (1) } },
558 { "attachShadow", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionAttachShadow), (intptr_t) (1) } },
559 { "closest", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionClosest), (intptr_t) (1) } },
560 { "matches", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionMatches), (intptr_t) (1) } },
561 { "webkitMatchesSelector", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionWebkitMatchesSelector), (intptr_t) (1) } },
562 { "getElementsByTagName", static_cast<unsigned>(JSC::PropertyAttribute::Function | JSC::PropertyAttribute::DOMJITFunction), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionGetElementsByTagName), (intptr_t) static_cast<const JSC::DOMJIT::Signature*>(&DOMJITSignatureForElementGetElementsByTagName) } },
563 { "getElementsByTagNameNS", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionGetElementsByTagNameNS), (intptr_t) (2) } },
564 { "getElementsByClassName", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionGetElementsByClassName), (intptr_t) (1) } },
565 { "insertAdjacentElement", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionInsertAdjacentElement), (intptr_t) (2) } },
566 { "insertAdjacentText", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionInsertAdjacentText), (intptr_t) (2) } },
567 { "getClientRects", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionGetClientRects), (intptr_t) (0) } },
568 { "getBoundingClientRect", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionGetBoundingClientRect), (intptr_t) (0) } },
569 { "scrollIntoView", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionScrollIntoView), (intptr_t) (0) } },
570 { "scroll", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionScroll), (intptr_t) (0) } },
571 { "scrollTo", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionScrollTo), (intptr_t) (0) } },
572 { "scrollBy", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionScrollBy), (intptr_t) (0) } },
573 { "insertAdjacentHTML", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionInsertAdjacentHTML), (intptr_t) (2) } },
574#if ENABLE(FULLSCREEN_API)
575 { "webkitRequestFullScreen", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionWebkitRequestFullScreen), (intptr_t) (0) } },
576#else
577 { 0, 0, NoIntrinsic, { 0, 0 } },
578#endif
579#if ENABLE(FULLSCREEN_API)
580 { "webkitRequestFullscreen", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionWebkitRequestFullscreen), (intptr_t) (0) } },
581#else
582 { 0, 0, NoIntrinsic, { 0, 0 } },
583#endif
584#if ENABLE(POINTER_EVENTS)
585 { "setPointerCapture", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionSetPointerCapture), (intptr_t) (1) } },
586#else
587 { 0, 0, NoIntrinsic, { 0, 0 } },
588#endif
589#if ENABLE(POINTER_EVENTS)
590 { "releasePointerCapture", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionReleasePointerCapture), (intptr_t) (1) } },
591#else
592 { 0, 0, NoIntrinsic, { 0, 0 } },
593#endif
594#if ENABLE(POINTER_EVENTS)
595 { "hasPointerCapture", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionHasPointerCapture), (intptr_t) (1) } },
596#else
597 { 0, 0, NoIntrinsic, { 0, 0 } },
598#endif
599#if ENABLE(POINTER_LOCK)
600 { "requestPointerLock", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionRequestPointerLock), (intptr_t) (0) } },
601#else
602 { 0, 0, NoIntrinsic, { 0, 0 } },
603#endif
604 { "scrollIntoViewIfNeeded", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionScrollIntoViewIfNeeded), (intptr_t) (0) } },
605 { "animate", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionAnimate), (intptr_t) (1) } },
606 { "getAnimations", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionGetAnimations), (intptr_t) (0) } },
607 { "before", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionBefore), (intptr_t) (0) } },
608 { "after", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionAfter), (intptr_t) (0) } },
609 { "replaceWith", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionReplaceWith), (intptr_t) (0) } },
610 { "remove", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionRemove), (intptr_t) (0) } },
611 { "prepend", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionPrepend), (intptr_t) (0) } },
612 { "append", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionAppend), (intptr_t) (0) } },
613 { "querySelector", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionQuerySelector), (intptr_t) (1) } },
614 { "querySelectorAll", static_cast<unsigned>(JSC::PropertyAttribute::Function), NoIntrinsic, { (intptr_t)static_cast<RawNativeFunction>(jsElementPrototypeFunctionQuerySelectorAll), (intptr_t) (1) } },
615};
616
617const ClassInfo JSElementPrototype::s_info = { "ElementPrototype", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSElementPrototype) };
618
619void JSElementPrototype::finishCreation(VM& vm)
620{
621 Base::finishCreation(vm);
622 reifyStaticProperties(vm, JSElement::info(), JSElementPrototypeTableValues, *this);
623 bool hasDisabledRuntimeProperties = false;
624 if (!RuntimeEnabledFeatures::sharedFeatures().shadowDOMEnabled()) {
625 hasDisabledRuntimeProperties = true;
626 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("attachShadow"), strlen("attachShadow"));
627 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
628 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
629 }
630#if ENABLE(FULLSCREEN_API)
631 if (!downcast<Document>(jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext())->settings().fullScreenEnabled()) {
632 hasDisabledRuntimeProperties = true;
633 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("webkitRequestFullScreen"), strlen("webkitRequestFullScreen"));
634 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
635 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
636 }
637#endif
638#if ENABLE(FULLSCREEN_API)
639 if (!downcast<Document>(jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext())->settings().fullScreenEnabled()) {
640 hasDisabledRuntimeProperties = true;
641 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("webkitRequestFullscreen"), strlen("webkitRequestFullscreen"));
642 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
643 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
644 }
645#endif
646#if ENABLE(POINTER_EVENTS)
647 if (!RuntimeEnabledFeatures::sharedFeatures().pointerEventsEnabled()) {
648 hasDisabledRuntimeProperties = true;
649 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("setPointerCapture"), strlen("setPointerCapture"));
650 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
651 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
652 }
653#endif
654#if ENABLE(POINTER_EVENTS)
655 if (!RuntimeEnabledFeatures::sharedFeatures().pointerEventsEnabled()) {
656 hasDisabledRuntimeProperties = true;
657 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("releasePointerCapture"), strlen("releasePointerCapture"));
658 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
659 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
660 }
661#endif
662#if ENABLE(POINTER_EVENTS)
663 if (!RuntimeEnabledFeatures::sharedFeatures().pointerEventsEnabled()) {
664 hasDisabledRuntimeProperties = true;
665 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("hasPointerCapture"), strlen("hasPointerCapture"));
666 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
667 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
668 }
669#endif
670 if (!RuntimeEnabledFeatures::sharedFeatures().webAnimationsEnabled()) {
671 hasDisabledRuntimeProperties = true;
672 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("animate"), strlen("animate"));
673 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
674 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
675 }
676 if (!RuntimeEnabledFeatures::sharedFeatures().webAnimationsEnabled()) {
677 hasDisabledRuntimeProperties = true;
678 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("getAnimations"), strlen("getAnimations"));
679 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
680 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
681 }
682 if (!RuntimeEnabledFeatures::sharedFeatures().shadowDOMEnabled()) {
683 hasDisabledRuntimeProperties = true;
684 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("slot"), strlen("slot"));
685 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
686 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
687 }
688 if (!RuntimeEnabledFeatures::sharedFeatures().shadowDOMEnabled()) {
689 hasDisabledRuntimeProperties = true;
690 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("shadowRoot"), strlen("shadowRoot"));
691 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
692 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
693 }
694#if ENABLE(FULLSCREEN_API)
695 if (!downcast<Document>(jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext())->settings().fullScreenEnabled()) {
696 hasDisabledRuntimeProperties = true;
697 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("onwebkitfullscreenchange"), strlen("onwebkitfullscreenchange"));
698 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
699 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
700 }
701#endif
702#if ENABLE(FULLSCREEN_API)
703 if (!downcast<Document>(jsCast<JSDOMGlobalObject*>(globalObject())->scriptExecutionContext())->settings().fullScreenEnabled()) {
704 hasDisabledRuntimeProperties = true;
705 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("onwebkitfullscreenerror"), strlen("onwebkitfullscreenerror"));
706 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
707 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
708 }
709#endif
710#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
711 if (!RuntimeEnabledFeatures::sharedFeatures().legacyEncryptedMediaAPIEnabled()) {
712 hasDisabledRuntimeProperties = true;
713 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("onwebkitneedkey"), strlen("onwebkitneedkey"));
714 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
715 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
716 }
717#endif
718 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
719 hasDisabledRuntimeProperties = true;
720 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("role"), strlen("role"));
721 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
722 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
723 }
724 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
725 hasDisabledRuntimeProperties = true;
726 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaAtomic"), strlen("ariaAtomic"));
727 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
728 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
729 }
730 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
731 hasDisabledRuntimeProperties = true;
732 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaAutoComplete"), strlen("ariaAutoComplete"));
733 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
734 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
735 }
736 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
737 hasDisabledRuntimeProperties = true;
738 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaBusy"), strlen("ariaBusy"));
739 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
740 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
741 }
742 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
743 hasDisabledRuntimeProperties = true;
744 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaChecked"), strlen("ariaChecked"));
745 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
746 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
747 }
748 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
749 hasDisabledRuntimeProperties = true;
750 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaColCount"), strlen("ariaColCount"));
751 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
752 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
753 }
754 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
755 hasDisabledRuntimeProperties = true;
756 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaColIndex"), strlen("ariaColIndex"));
757 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
758 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
759 }
760 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
761 hasDisabledRuntimeProperties = true;
762 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaColSpan"), strlen("ariaColSpan"));
763 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
764 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
765 }
766 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
767 hasDisabledRuntimeProperties = true;
768 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaCurrent"), strlen("ariaCurrent"));
769 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
770 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
771 }
772 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
773 hasDisabledRuntimeProperties = true;
774 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaDisabled"), strlen("ariaDisabled"));
775 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
776 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
777 }
778 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
779 hasDisabledRuntimeProperties = true;
780 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaExpanded"), strlen("ariaExpanded"));
781 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
782 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
783 }
784 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
785 hasDisabledRuntimeProperties = true;
786 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaHasPopup"), strlen("ariaHasPopup"));
787 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
788 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
789 }
790 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
791 hasDisabledRuntimeProperties = true;
792 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaHidden"), strlen("ariaHidden"));
793 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
794 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
795 }
796 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
797 hasDisabledRuntimeProperties = true;
798 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaInvalid"), strlen("ariaInvalid"));
799 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
800 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
801 }
802 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
803 hasDisabledRuntimeProperties = true;
804 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaKeyShortcuts"), strlen("ariaKeyShortcuts"));
805 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
806 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
807 }
808 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
809 hasDisabledRuntimeProperties = true;
810 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaLabel"), strlen("ariaLabel"));
811 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
812 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
813 }
814 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
815 hasDisabledRuntimeProperties = true;
816 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaLevel"), strlen("ariaLevel"));
817 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
818 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
819 }
820 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
821 hasDisabledRuntimeProperties = true;
822 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaLive"), strlen("ariaLive"));
823 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
824 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
825 }
826 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
827 hasDisabledRuntimeProperties = true;
828 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaModal"), strlen("ariaModal"));
829 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
830 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
831 }
832 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
833 hasDisabledRuntimeProperties = true;
834 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaMultiLine"), strlen("ariaMultiLine"));
835 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
836 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
837 }
838 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
839 hasDisabledRuntimeProperties = true;
840 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaMultiSelectable"), strlen("ariaMultiSelectable"));
841 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
842 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
843 }
844 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
845 hasDisabledRuntimeProperties = true;
846 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaOrientation"), strlen("ariaOrientation"));
847 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
848 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
849 }
850 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
851 hasDisabledRuntimeProperties = true;
852 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaPlaceholder"), strlen("ariaPlaceholder"));
853 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
854 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
855 }
856 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
857 hasDisabledRuntimeProperties = true;
858 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaPosInSet"), strlen("ariaPosInSet"));
859 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
860 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
861 }
862 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
863 hasDisabledRuntimeProperties = true;
864 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaPressed"), strlen("ariaPressed"));
865 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
866 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
867 }
868 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
869 hasDisabledRuntimeProperties = true;
870 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaReadOnly"), strlen("ariaReadOnly"));
871 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
872 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
873 }
874 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
875 hasDisabledRuntimeProperties = true;
876 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaRelevant"), strlen("ariaRelevant"));
877 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
878 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
879 }
880 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
881 hasDisabledRuntimeProperties = true;
882 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaRequired"), strlen("ariaRequired"));
883 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
884 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
885 }
886 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
887 hasDisabledRuntimeProperties = true;
888 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaRoleDescription"), strlen("ariaRoleDescription"));
889 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
890 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
891 }
892 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
893 hasDisabledRuntimeProperties = true;
894 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaRowCount"), strlen("ariaRowCount"));
895 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
896 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
897 }
898 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
899 hasDisabledRuntimeProperties = true;
900 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaRowIndex"), strlen("ariaRowIndex"));
901 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
902 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
903 }
904 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
905 hasDisabledRuntimeProperties = true;
906 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaRowSpan"), strlen("ariaRowSpan"));
907 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
908 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
909 }
910 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
911 hasDisabledRuntimeProperties = true;
912 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaSelected"), strlen("ariaSelected"));
913 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
914 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
915 }
916 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
917 hasDisabledRuntimeProperties = true;
918 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaSetSize"), strlen("ariaSetSize"));
919 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
920 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
921 }
922 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
923 hasDisabledRuntimeProperties = true;
924 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaSort"), strlen("ariaSort"));
925 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
926 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
927 }
928 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
929 hasDisabledRuntimeProperties = true;
930 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaValueMax"), strlen("ariaValueMax"));
931 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
932 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
933 }
934 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
935 hasDisabledRuntimeProperties = true;
936 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaValueMin"), strlen("ariaValueMin"));
937 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
938 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
939 }
940 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
941 hasDisabledRuntimeProperties = true;
942 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaValueNow"), strlen("ariaValueNow"));
943 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
944 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
945 }
946 if (!RuntimeEnabledFeatures::sharedFeatures().ariaReflectionEnabled()) {
947 hasDisabledRuntimeProperties = true;
948 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("ariaValueText"), strlen("ariaValueText"));
949 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
950 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
951 }
952 if (!RuntimeEnabledFeatures::sharedFeatures().shadowDOMEnabled()) {
953 hasDisabledRuntimeProperties = true;
954 auto propertyName = Identifier::fromString(&vm, reinterpret_cast<const LChar*>("assignedSlot"), strlen("assignedSlot"));
955 VM::DeletePropertyModeScope scope(vm, VM::DeletePropertyMode::IgnoreConfigurable);
956 JSObject::deleteProperty(this, globalObject()->globalExec(), propertyName);
957 }
958 if (hasDisabledRuntimeProperties && structure()->isDictionary())
959 flattenDictionaryObject(vm);
960 JSObject& unscopables = *constructEmptyObject(globalObject()->globalExec(), globalObject()->nullPrototypeObjectStructure());
961 unscopables.putDirect(vm, Identifier::fromString(&vm, "before"), jsBoolean(true));
962 unscopables.putDirect(vm, Identifier::fromString(&vm, "after"), jsBoolean(true));
963 unscopables.putDirect(vm, Identifier::fromString(&vm, "replaceWith"), jsBoolean(true));
964 unscopables.putDirect(vm, Identifier::fromString(&vm, "remove"), jsBoolean(true));
965 unscopables.putDirect(vm, Identifier::fromString(&vm, "prepend"), jsBoolean(true));
966 unscopables.putDirect(vm, Identifier::fromString(&vm, "append"), jsBoolean(true));
967 unscopables.putDirect(vm, Identifier::fromString(&vm, "slot"), jsBoolean(true));
968 putDirectWithoutTransition(vm, vm.propertyNames->unscopablesSymbol, &unscopables, JSC::PropertyAttribute::DontEnum | JSC::PropertyAttribute::ReadOnly);
969}
970
971const ClassInfo JSElement::s_info = { "Element", &Base::s_info, nullptr
972#if ENABLE(JIT)
973, &checkSubClassSnippetForJSElement
974#else
975, nullptr
976#endif
977, CREATE_METHOD_TABLE(JSElement) };
978
979JSElement::JSElement(Structure* structure, JSDOMGlobalObject& globalObject, Ref<Element>&& impl)
980 : JSNode(structure, globalObject, WTFMove(impl))
981{
982}
983
984void JSElement::finishCreation(VM& vm)
985{
986 Base::finishCreation(vm);
987 ASSERT(inherits(vm, info()));
988
989}
990
991JSObject* JSElement::createPrototype(VM& vm, JSDOMGlobalObject& globalObject)
992{
993 return JSElementPrototype::create(vm, &globalObject, JSElementPrototype::createStructure(vm, &globalObject, JSNode::prototype(vm, globalObject)));
994}
995
996JSObject* JSElement::prototype(VM& vm, JSDOMGlobalObject& globalObject)
997{
998 return getDOMPrototype<JSElement>(vm, globalObject);
999}
1000
1001JSValue JSElement::getConstructor(VM& vm, const JSGlobalObject* globalObject)
1002{
1003 return getDOMConstructor<JSElementConstructor>(vm, *jsCast<const JSDOMGlobalObject*>(globalObject));
1004}
1005
1006template<> inline JSElement* IDLAttribute<JSElement>::cast(ExecState& state, EncodedJSValue thisValue)
1007{
1008 return jsDynamicCast<JSElement*>(state.vm(), JSValue::decode(thisValue));
1009}
1010
1011template<> inline JSElement* IDLOperation<JSElement>::cast(ExecState& state)
1012{
1013 return jsDynamicCast<JSElement*>(state.vm(), state.thisValue());
1014}
1015
1016EncodedJSValue jsElementConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName)
1017{
1018 VM& vm = state->vm();
1019 auto throwScope = DECLARE_THROW_SCOPE(vm);
1020 auto* prototype = jsDynamicCast<JSElementPrototype*>(vm, JSValue::decode(thisValue));
1021 if (UNLIKELY(!prototype))
1022 return throwVMTypeError(state, throwScope);
1023 return JSValue::encode(JSElement::getConstructor(state->vm(), prototype->globalObject()));
1024}
1025
1026bool setJSElementConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1027{
1028 VM& vm = state->vm();
1029 auto throwScope = DECLARE_THROW_SCOPE(vm);
1030 auto* prototype = jsDynamicCast<JSElementPrototype*>(vm, JSValue::decode(thisValue));
1031 if (UNLIKELY(!prototype)) {
1032 throwVMTypeError(state, throwScope);
1033 return false;
1034 }
1035 // Shadowing a built-in constructor
1036 return prototype->putDirect(vm, vm.propertyNames->constructor, JSValue::decode(encodedValue));
1037}
1038
1039static inline JSValue jsElementNamespaceURIGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1040{
1041 UNUSED_PARAM(throwScope);
1042 UNUSED_PARAM(state);
1043 auto& impl = thisObject.wrapped();
1044 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.namespaceURI());
1045 return result;
1046}
1047
1048EncodedJSValue jsElementNamespaceURI(ExecState* state, EncodedJSValue thisValue, PropertyName)
1049{
1050 return IDLAttribute<JSElement>::get<jsElementNamespaceURIGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "namespaceURI");
1051}
1052
1053static inline JSValue jsElementPrefixGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1054{
1055 UNUSED_PARAM(throwScope);
1056 UNUSED_PARAM(state);
1057 auto& impl = thisObject.wrapped();
1058 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.prefix());
1059 return result;
1060}
1061
1062EncodedJSValue jsElementPrefix(ExecState* state, EncodedJSValue thisValue, PropertyName)
1063{
1064 return IDLAttribute<JSElement>::get<jsElementPrefixGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "prefix");
1065}
1066
1067static inline JSValue jsElementLocalNameGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1068{
1069 UNUSED_PARAM(throwScope);
1070 UNUSED_PARAM(state);
1071 auto& impl = thisObject.wrapped();
1072 JSValue result = toJS<IDLDOMString>(state, throwScope, impl.localName());
1073 return result;
1074}
1075
1076EncodedJSValue jsElementLocalName(ExecState* state, EncodedJSValue thisValue, PropertyName)
1077{
1078 return IDLAttribute<JSElement>::get<jsElementLocalNameGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "localName");
1079}
1080
1081static inline JSValue jsElementTagNameGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1082{
1083 UNUSED_PARAM(throwScope);
1084 UNUSED_PARAM(state);
1085 auto& impl = thisObject.wrapped();
1086 JSValue result = toJS<IDLDOMString>(state, throwScope, impl.tagName());
1087 return result;
1088}
1089
1090EncodedJSValue jsElementTagName(ExecState* state, EncodedJSValue thisValue, PropertyName)
1091{
1092 return IDLAttribute<JSElement>::get<jsElementTagNameGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "tagName");
1093}
1094
1095static inline JSValue jsElementIdGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1096{
1097 UNUSED_PARAM(throwScope);
1098 UNUSED_PARAM(state);
1099 auto& impl = thisObject.wrapped();
1100 JSValue result = toJS<IDLDOMString>(state, throwScope, impl.getIdAttribute());
1101 return result;
1102}
1103
1104EncodedJSValue jsElementId(ExecState* state, EncodedJSValue thisValue, PropertyName)
1105{
1106 return IDLAttribute<JSElement>::get<jsElementIdGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "id");
1107}
1108
1109static inline bool setJSElementIdSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1110{
1111 UNUSED_PARAM(throwScope);
1112 CustomElementReactionStack customElementReactionStack(state);
1113 auto& impl = thisObject.wrapped();
1114 auto nativeValue = convert<IDLDOMString>(state, value);
1115 RETURN_IF_EXCEPTION(throwScope, false);
1116 AttributeSetter::call(state, throwScope, [&] {
1117 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::idAttr, WTFMove(nativeValue));
1118 });
1119 return true;
1120}
1121
1122bool setJSElementId(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1123{
1124 return IDLAttribute<JSElement>::set<setJSElementIdSetter>(*state, thisValue, encodedValue, "id");
1125}
1126
1127static inline JSValue jsElementClassNameGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1128{
1129 UNUSED_PARAM(throwScope);
1130 UNUSED_PARAM(state);
1131 auto& impl = thisObject.wrapped();
1132 JSValue result = toJS<IDLDOMString>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::classAttr));
1133 return result;
1134}
1135
1136EncodedJSValue jsElementClassName(ExecState* state, EncodedJSValue thisValue, PropertyName)
1137{
1138 return IDLAttribute<JSElement>::get<jsElementClassNameGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "className");
1139}
1140
1141static inline bool setJSElementClassNameSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1142{
1143 UNUSED_PARAM(throwScope);
1144 CustomElementReactionStack customElementReactionStack(state);
1145 auto& impl = thisObject.wrapped();
1146 auto nativeValue = convert<IDLDOMString>(state, value);
1147 RETURN_IF_EXCEPTION(throwScope, false);
1148 AttributeSetter::call(state, throwScope, [&] {
1149 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::classAttr, WTFMove(nativeValue));
1150 });
1151 return true;
1152}
1153
1154bool setJSElementClassName(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1155{
1156 return IDLAttribute<JSElement>::set<setJSElementClassNameSetter>(*state, thisValue, encodedValue, "className");
1157}
1158
1159static inline JSValue jsElementClassListGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1160{
1161 UNUSED_PARAM(throwScope);
1162 UNUSED_PARAM(state);
1163 auto& impl = thisObject.wrapped();
1164 JSValue result = toJS<IDLInterface<DOMTokenList>>(state, *thisObject.globalObject(), throwScope, impl.classList());
1165 return result;
1166}
1167
1168EncodedJSValue jsElementClassList(ExecState* state, EncodedJSValue thisValue, PropertyName)
1169{
1170 return IDLAttribute<JSElement>::get<jsElementClassListGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "classList");
1171}
1172
1173static inline bool setJSElementClassListSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1174{
1175 UNUSED_PARAM(throwScope);
1176 auto id = Identifier::fromString(&state.vm(), reinterpret_cast<const LChar*>("classList"), strlen("classList"));
1177 auto valueToForwardTo = thisObject.get(&state, id);
1178 RETURN_IF_EXCEPTION(throwScope, false);
1179 if (UNLIKELY(!valueToForwardTo.isObject())) {
1180 throwTypeError(&state, throwScope);
1181 return false;
1182 }
1183 auto forwardId = Identifier::fromString(&state.vm(), reinterpret_cast<const LChar*>("value"), strlen("value"));
1184 PutPropertySlot slot(valueToForwardTo, false);
1185 asObject(valueToForwardTo)->methodTable(state.vm())->put(asObject(valueToForwardTo), &state, forwardId, value, slot);
1186 RETURN_IF_EXCEPTION(throwScope, false);
1187 return true;
1188}
1189
1190bool setJSElementClassList(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1191{
1192 return IDLAttribute<JSElement>::set<setJSElementClassListSetter>(*state, thisValue, encodedValue, "classList");
1193}
1194
1195static inline JSValue jsElementSlotGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1196{
1197 UNUSED_PARAM(throwScope);
1198 UNUSED_PARAM(state);
1199 auto& impl = thisObject.wrapped();
1200 JSValue result = toJS<IDLDOMString>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::slotAttr));
1201 return result;
1202}
1203
1204EncodedJSValue jsElementSlot(ExecState* state, EncodedJSValue thisValue, PropertyName)
1205{
1206 return IDLAttribute<JSElement>::get<jsElementSlotGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "slot");
1207}
1208
1209static inline bool setJSElementSlotSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1210{
1211 UNUSED_PARAM(throwScope);
1212 CustomElementReactionStack customElementReactionStack(state);
1213 auto& impl = thisObject.wrapped();
1214 auto nativeValue = convert<IDLDOMString>(state, value);
1215 RETURN_IF_EXCEPTION(throwScope, false);
1216 AttributeSetter::call(state, throwScope, [&] {
1217 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::slotAttr, WTFMove(nativeValue));
1218 });
1219 return true;
1220}
1221
1222bool setJSElementSlot(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1223{
1224 return IDLAttribute<JSElement>::set<setJSElementSlotSetter>(*state, thisValue, encodedValue, "slot");
1225}
1226
1227static inline JSValue jsElementAttributesGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1228{
1229 UNUSED_PARAM(throwScope);
1230 UNUSED_PARAM(state);
1231 auto& impl = thisObject.wrapped();
1232 JSValue result = toJS<IDLInterface<NamedNodeMap>>(state, *thisObject.globalObject(), throwScope, impl.attributes());
1233 return result;
1234}
1235
1236EncodedJSValue jsElementAttributes(ExecState* state, EncodedJSValue thisValue, PropertyName)
1237{
1238 return IDLAttribute<JSElement>::get<jsElementAttributesGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "attributes");
1239}
1240
1241static inline JSValue jsElementShadowRootGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1242{
1243 UNUSED_PARAM(throwScope);
1244 UNUSED_PARAM(state);
1245 auto& impl = thisObject.wrapped();
1246 JSValue result = toJS<IDLNullable<IDLInterface<ShadowRoot>>>(state, *thisObject.globalObject(), throwScope, impl.shadowRootForBindings(state));
1247 return result;
1248}
1249
1250EncodedJSValue jsElementShadowRoot(ExecState* state, EncodedJSValue thisValue, PropertyName)
1251{
1252 return IDLAttribute<JSElement>::get<jsElementShadowRootGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "shadowRoot");
1253}
1254
1255static inline JSValue jsElementScrollTopGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1256{
1257 UNUSED_PARAM(throwScope);
1258 UNUSED_PARAM(state);
1259 auto& impl = thisObject.wrapped();
1260 JSValue result = toJS<IDLLong>(state, throwScope, impl.scrollTop());
1261 return result;
1262}
1263
1264EncodedJSValue jsElementScrollTop(ExecState* state, EncodedJSValue thisValue, PropertyName)
1265{
1266 return IDLAttribute<JSElement>::get<jsElementScrollTopGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "scrollTop");
1267}
1268
1269static inline bool setJSElementScrollTopSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1270{
1271 UNUSED_PARAM(throwScope);
1272 auto& impl = thisObject.wrapped();
1273 auto nativeValue = convert<IDLLong>(state, value);
1274 RETURN_IF_EXCEPTION(throwScope, false);
1275 AttributeSetter::call(state, throwScope, [&] {
1276 return impl.setScrollTop(WTFMove(nativeValue));
1277 });
1278 return true;
1279}
1280
1281bool setJSElementScrollTop(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1282{
1283 return IDLAttribute<JSElement>::set<setJSElementScrollTopSetter>(*state, thisValue, encodedValue, "scrollTop");
1284}
1285
1286static inline JSValue jsElementScrollLeftGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1287{
1288 UNUSED_PARAM(throwScope);
1289 UNUSED_PARAM(state);
1290 auto& impl = thisObject.wrapped();
1291 JSValue result = toJS<IDLLong>(state, throwScope, impl.scrollLeft());
1292 return result;
1293}
1294
1295EncodedJSValue jsElementScrollLeft(ExecState* state, EncodedJSValue thisValue, PropertyName)
1296{
1297 return IDLAttribute<JSElement>::get<jsElementScrollLeftGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "scrollLeft");
1298}
1299
1300static inline bool setJSElementScrollLeftSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1301{
1302 UNUSED_PARAM(throwScope);
1303 auto& impl = thisObject.wrapped();
1304 auto nativeValue = convert<IDLLong>(state, value);
1305 RETURN_IF_EXCEPTION(throwScope, false);
1306 AttributeSetter::call(state, throwScope, [&] {
1307 return impl.setScrollLeft(WTFMove(nativeValue));
1308 });
1309 return true;
1310}
1311
1312bool setJSElementScrollLeft(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1313{
1314 return IDLAttribute<JSElement>::set<setJSElementScrollLeftSetter>(*state, thisValue, encodedValue, "scrollLeft");
1315}
1316
1317static inline JSValue jsElementScrollWidthGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1318{
1319 UNUSED_PARAM(throwScope);
1320 UNUSED_PARAM(state);
1321 auto& impl = thisObject.wrapped();
1322 JSValue result = toJS<IDLLong>(state, throwScope, impl.scrollWidth());
1323 return result;
1324}
1325
1326EncodedJSValue jsElementScrollWidth(ExecState* state, EncodedJSValue thisValue, PropertyName)
1327{
1328 return IDLAttribute<JSElement>::get<jsElementScrollWidthGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "scrollWidth");
1329}
1330
1331static inline JSValue jsElementScrollHeightGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1332{
1333 UNUSED_PARAM(throwScope);
1334 UNUSED_PARAM(state);
1335 auto& impl = thisObject.wrapped();
1336 JSValue result = toJS<IDLLong>(state, throwScope, impl.scrollHeight());
1337 return result;
1338}
1339
1340EncodedJSValue jsElementScrollHeight(ExecState* state, EncodedJSValue thisValue, PropertyName)
1341{
1342 return IDLAttribute<JSElement>::get<jsElementScrollHeightGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "scrollHeight");
1343}
1344
1345static inline JSValue jsElementClientTopGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1346{
1347 UNUSED_PARAM(throwScope);
1348 UNUSED_PARAM(state);
1349 auto& impl = thisObject.wrapped();
1350 JSValue result = toJS<IDLDouble>(state, throwScope, impl.clientTop());
1351 return result;
1352}
1353
1354EncodedJSValue jsElementClientTop(ExecState* state, EncodedJSValue thisValue, PropertyName)
1355{
1356 return IDLAttribute<JSElement>::get<jsElementClientTopGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "clientTop");
1357}
1358
1359static inline JSValue jsElementClientLeftGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1360{
1361 UNUSED_PARAM(throwScope);
1362 UNUSED_PARAM(state);
1363 auto& impl = thisObject.wrapped();
1364 JSValue result = toJS<IDLDouble>(state, throwScope, impl.clientLeft());
1365 return result;
1366}
1367
1368EncodedJSValue jsElementClientLeft(ExecState* state, EncodedJSValue thisValue, PropertyName)
1369{
1370 return IDLAttribute<JSElement>::get<jsElementClientLeftGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "clientLeft");
1371}
1372
1373static inline JSValue jsElementClientWidthGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1374{
1375 UNUSED_PARAM(throwScope);
1376 UNUSED_PARAM(state);
1377 auto& impl = thisObject.wrapped();
1378 JSValue result = toJS<IDLDouble>(state, throwScope, impl.clientWidth());
1379 return result;
1380}
1381
1382EncodedJSValue jsElementClientWidth(ExecState* state, EncodedJSValue thisValue, PropertyName)
1383{
1384 return IDLAttribute<JSElement>::get<jsElementClientWidthGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "clientWidth");
1385}
1386
1387static inline JSValue jsElementClientHeightGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1388{
1389 UNUSED_PARAM(throwScope);
1390 UNUSED_PARAM(state);
1391 auto& impl = thisObject.wrapped();
1392 JSValue result = toJS<IDLDouble>(state, throwScope, impl.clientHeight());
1393 return result;
1394}
1395
1396EncodedJSValue jsElementClientHeight(ExecState* state, EncodedJSValue thisValue, PropertyName)
1397{
1398 return IDLAttribute<JSElement>::get<jsElementClientHeightGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "clientHeight");
1399}
1400
1401static inline JSValue jsElementInnerHTMLGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1402{
1403 UNUSED_PARAM(throwScope);
1404 UNUSED_PARAM(state);
1405 auto& impl = thisObject.wrapped();
1406 JSValue result = toJS<IDLTreatNullAsEmptyAdaptor<IDLDOMString>>(state, throwScope, impl.innerHTML());
1407 return result;
1408}
1409
1410EncodedJSValue jsElementInnerHTML(ExecState* state, EncodedJSValue thisValue, PropertyName)
1411{
1412 return IDLAttribute<JSElement>::get<jsElementInnerHTMLGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "innerHTML");
1413}
1414
1415static inline bool setJSElementInnerHTMLSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1416{
1417 UNUSED_PARAM(throwScope);
1418 CustomElementReactionStack customElementReactionStack(state);
1419 auto& impl = thisObject.wrapped();
1420 auto nativeValue = convert<IDLTreatNullAsEmptyAdaptor<IDLDOMString>>(state, value);
1421 RETURN_IF_EXCEPTION(throwScope, false);
1422 AttributeSetter::call(state, throwScope, [&] {
1423 return impl.setInnerHTML(WTFMove(nativeValue));
1424 });
1425 return true;
1426}
1427
1428bool setJSElementInnerHTML(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1429{
1430 return IDLAttribute<JSElement>::set<setJSElementInnerHTMLSetter>(*state, thisValue, encodedValue, "innerHTML");
1431}
1432
1433static inline JSValue jsElementOuterHTMLGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1434{
1435 UNUSED_PARAM(throwScope);
1436 UNUSED_PARAM(state);
1437 auto& impl = thisObject.wrapped();
1438 JSValue result = toJS<IDLTreatNullAsEmptyAdaptor<IDLDOMString>>(state, throwScope, impl.outerHTML());
1439 return result;
1440}
1441
1442EncodedJSValue jsElementOuterHTML(ExecState* state, EncodedJSValue thisValue, PropertyName)
1443{
1444 return IDLAttribute<JSElement>::get<jsElementOuterHTMLGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "outerHTML");
1445}
1446
1447static inline bool setJSElementOuterHTMLSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1448{
1449 UNUSED_PARAM(throwScope);
1450 CustomElementReactionStack customElementReactionStack(state);
1451 auto& impl = thisObject.wrapped();
1452 auto nativeValue = convert<IDLTreatNullAsEmptyAdaptor<IDLDOMString>>(state, value);
1453 RETURN_IF_EXCEPTION(throwScope, false);
1454 AttributeSetter::call(state, throwScope, [&] {
1455 return impl.setOuterHTML(WTFMove(nativeValue));
1456 });
1457 return true;
1458}
1459
1460bool setJSElementOuterHTML(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1461{
1462 return IDLAttribute<JSElement>::set<setJSElementOuterHTMLSetter>(*state, thisValue, encodedValue, "outerHTML");
1463}
1464
1465static inline JSValue jsElementOnselectstartGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1466{
1467 UNUSED_PARAM(throwScope);
1468 UNUSED_PARAM(state);
1469 return eventHandlerAttribute(thisObject.wrapped(), eventNames().selectstartEvent, worldForDOMObject(thisObject));
1470}
1471
1472EncodedJSValue jsElementOnselectstart(ExecState* state, EncodedJSValue thisValue, PropertyName)
1473{
1474 return IDLAttribute<JSElement>::get<jsElementOnselectstartGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onselectstart");
1475}
1476
1477static inline bool setJSElementOnselectstartSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1478{
1479 UNUSED_PARAM(throwScope);
1480 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().selectstartEvent, value);
1481 return true;
1482}
1483
1484bool setJSElementOnselectstart(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1485{
1486 return IDLAttribute<JSElement>::set<setJSElementOnselectstartSetter>(*state, thisValue, encodedValue, "onselectstart");
1487}
1488
1489#if ENABLE(IOS_GESTURE_EVENTS)
1490static inline JSValue jsElementOngesturechangeGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1491{
1492 UNUSED_PARAM(throwScope);
1493 UNUSED_PARAM(state);
1494 return eventHandlerAttribute(thisObject.wrapped(), eventNames().gesturechangeEvent, worldForDOMObject(thisObject));
1495}
1496
1497EncodedJSValue jsElementOngesturechange(ExecState* state, EncodedJSValue thisValue, PropertyName)
1498{
1499 return IDLAttribute<JSElement>::get<jsElementOngesturechangeGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ongesturechange");
1500}
1501
1502#endif
1503
1504#if ENABLE(IOS_GESTURE_EVENTS)
1505static inline bool setJSElementOngesturechangeSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1506{
1507 UNUSED_PARAM(throwScope);
1508 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().gesturechangeEvent, value);
1509 return true;
1510}
1511
1512bool setJSElementOngesturechange(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1513{
1514 return IDLAttribute<JSElement>::set<setJSElementOngesturechangeSetter>(*state, thisValue, encodedValue, "ongesturechange");
1515}
1516
1517#endif
1518
1519#if ENABLE(IOS_GESTURE_EVENTS)
1520static inline JSValue jsElementOngestureendGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1521{
1522 UNUSED_PARAM(throwScope);
1523 UNUSED_PARAM(state);
1524 return eventHandlerAttribute(thisObject.wrapped(), eventNames().gestureendEvent, worldForDOMObject(thisObject));
1525}
1526
1527EncodedJSValue jsElementOngestureend(ExecState* state, EncodedJSValue thisValue, PropertyName)
1528{
1529 return IDLAttribute<JSElement>::get<jsElementOngestureendGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ongestureend");
1530}
1531
1532#endif
1533
1534#if ENABLE(IOS_GESTURE_EVENTS)
1535static inline bool setJSElementOngestureendSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1536{
1537 UNUSED_PARAM(throwScope);
1538 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().gestureendEvent, value);
1539 return true;
1540}
1541
1542bool setJSElementOngestureend(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1543{
1544 return IDLAttribute<JSElement>::set<setJSElementOngestureendSetter>(*state, thisValue, encodedValue, "ongestureend");
1545}
1546
1547#endif
1548
1549#if ENABLE(IOS_GESTURE_EVENTS)
1550static inline JSValue jsElementOngesturestartGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1551{
1552 UNUSED_PARAM(throwScope);
1553 UNUSED_PARAM(state);
1554 return eventHandlerAttribute(thisObject.wrapped(), eventNames().gesturestartEvent, worldForDOMObject(thisObject));
1555}
1556
1557EncodedJSValue jsElementOngesturestart(ExecState* state, EncodedJSValue thisValue, PropertyName)
1558{
1559 return IDLAttribute<JSElement>::get<jsElementOngesturestartGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ongesturestart");
1560}
1561
1562#endif
1563
1564#if ENABLE(IOS_GESTURE_EVENTS)
1565static inline bool setJSElementOngesturestartSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1566{
1567 UNUSED_PARAM(throwScope);
1568 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().gesturestartEvent, value);
1569 return true;
1570}
1571
1572bool setJSElementOngesturestart(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1573{
1574 return IDLAttribute<JSElement>::set<setJSElementOngesturestartSetter>(*state, thisValue, encodedValue, "ongesturestart");
1575}
1576
1577#endif
1578
1579static inline JSValue jsElementOnwebkitanimationendGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1580{
1581 UNUSED_PARAM(throwScope);
1582 UNUSED_PARAM(state);
1583 return eventHandlerAttribute(thisObject.wrapped(), eventNames().webkitAnimationEndEvent, worldForDOMObject(thisObject));
1584}
1585
1586EncodedJSValue jsElementOnwebkitanimationend(ExecState* state, EncodedJSValue thisValue, PropertyName)
1587{
1588 return IDLAttribute<JSElement>::get<jsElementOnwebkitanimationendGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onwebkitanimationend");
1589}
1590
1591static inline bool setJSElementOnwebkitanimationendSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1592{
1593 UNUSED_PARAM(throwScope);
1594 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().webkitAnimationEndEvent, value);
1595 return true;
1596}
1597
1598bool setJSElementOnwebkitanimationend(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1599{
1600 return IDLAttribute<JSElement>::set<setJSElementOnwebkitanimationendSetter>(*state, thisValue, encodedValue, "onwebkitanimationend");
1601}
1602
1603static inline JSValue jsElementOnwebkitanimationiterationGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1604{
1605 UNUSED_PARAM(throwScope);
1606 UNUSED_PARAM(state);
1607 return eventHandlerAttribute(thisObject.wrapped(), eventNames().webkitAnimationIterationEvent, worldForDOMObject(thisObject));
1608}
1609
1610EncodedJSValue jsElementOnwebkitanimationiteration(ExecState* state, EncodedJSValue thisValue, PropertyName)
1611{
1612 return IDLAttribute<JSElement>::get<jsElementOnwebkitanimationiterationGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onwebkitanimationiteration");
1613}
1614
1615static inline bool setJSElementOnwebkitanimationiterationSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1616{
1617 UNUSED_PARAM(throwScope);
1618 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().webkitAnimationIterationEvent, value);
1619 return true;
1620}
1621
1622bool setJSElementOnwebkitanimationiteration(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1623{
1624 return IDLAttribute<JSElement>::set<setJSElementOnwebkitanimationiterationSetter>(*state, thisValue, encodedValue, "onwebkitanimationiteration");
1625}
1626
1627static inline JSValue jsElementOnwebkitanimationstartGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1628{
1629 UNUSED_PARAM(throwScope);
1630 UNUSED_PARAM(state);
1631 return eventHandlerAttribute(thisObject.wrapped(), eventNames().webkitAnimationStartEvent, worldForDOMObject(thisObject));
1632}
1633
1634EncodedJSValue jsElementOnwebkitanimationstart(ExecState* state, EncodedJSValue thisValue, PropertyName)
1635{
1636 return IDLAttribute<JSElement>::get<jsElementOnwebkitanimationstartGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onwebkitanimationstart");
1637}
1638
1639static inline bool setJSElementOnwebkitanimationstartSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1640{
1641 UNUSED_PARAM(throwScope);
1642 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().webkitAnimationStartEvent, value);
1643 return true;
1644}
1645
1646bool setJSElementOnwebkitanimationstart(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1647{
1648 return IDLAttribute<JSElement>::set<setJSElementOnwebkitanimationstartSetter>(*state, thisValue, encodedValue, "onwebkitanimationstart");
1649}
1650
1651static inline JSValue jsElementOnwebkittransitionendGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1652{
1653 UNUSED_PARAM(throwScope);
1654 UNUSED_PARAM(state);
1655 return eventHandlerAttribute(thisObject.wrapped(), eventNames().webkitTransitionEndEvent, worldForDOMObject(thisObject));
1656}
1657
1658EncodedJSValue jsElementOnwebkittransitionend(ExecState* state, EncodedJSValue thisValue, PropertyName)
1659{
1660 return IDLAttribute<JSElement>::get<jsElementOnwebkittransitionendGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onwebkittransitionend");
1661}
1662
1663static inline bool setJSElementOnwebkittransitionendSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1664{
1665 UNUSED_PARAM(throwScope);
1666 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().webkitTransitionEndEvent, value);
1667 return true;
1668}
1669
1670bool setJSElementOnwebkittransitionend(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1671{
1672 return IDLAttribute<JSElement>::set<setJSElementOnwebkittransitionendSetter>(*state, thisValue, encodedValue, "onwebkittransitionend");
1673}
1674
1675#if ENABLE(FULLSCREEN_API)
1676static inline JSValue jsElementOnwebkitfullscreenchangeGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1677{
1678 UNUSED_PARAM(throwScope);
1679 UNUSED_PARAM(state);
1680 return eventHandlerAttribute(thisObject.wrapped(), eventNames().webkitfullscreenchangeEvent, worldForDOMObject(thisObject));
1681}
1682
1683EncodedJSValue jsElementOnwebkitfullscreenchange(ExecState* state, EncodedJSValue thisValue, PropertyName)
1684{
1685 return IDLAttribute<JSElement>::get<jsElementOnwebkitfullscreenchangeGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onwebkitfullscreenchange");
1686}
1687
1688#endif
1689
1690#if ENABLE(FULLSCREEN_API)
1691static inline bool setJSElementOnwebkitfullscreenchangeSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1692{
1693 UNUSED_PARAM(throwScope);
1694 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().webkitfullscreenchangeEvent, value);
1695 return true;
1696}
1697
1698bool setJSElementOnwebkitfullscreenchange(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1699{
1700 return IDLAttribute<JSElement>::set<setJSElementOnwebkitfullscreenchangeSetter>(*state, thisValue, encodedValue, "onwebkitfullscreenchange");
1701}
1702
1703#endif
1704
1705#if ENABLE(FULLSCREEN_API)
1706static inline JSValue jsElementOnwebkitfullscreenerrorGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1707{
1708 UNUSED_PARAM(throwScope);
1709 UNUSED_PARAM(state);
1710 return eventHandlerAttribute(thisObject.wrapped(), eventNames().webkitfullscreenerrorEvent, worldForDOMObject(thisObject));
1711}
1712
1713EncodedJSValue jsElementOnwebkitfullscreenerror(ExecState* state, EncodedJSValue thisValue, PropertyName)
1714{
1715 return IDLAttribute<JSElement>::get<jsElementOnwebkitfullscreenerrorGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onwebkitfullscreenerror");
1716}
1717
1718#endif
1719
1720#if ENABLE(FULLSCREEN_API)
1721static inline bool setJSElementOnwebkitfullscreenerrorSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1722{
1723 UNUSED_PARAM(throwScope);
1724 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().webkitfullscreenerrorEvent, value);
1725 return true;
1726}
1727
1728bool setJSElementOnwebkitfullscreenerror(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1729{
1730 return IDLAttribute<JSElement>::set<setJSElementOnwebkitfullscreenerrorSetter>(*state, thisValue, encodedValue, "onwebkitfullscreenerror");
1731}
1732
1733#endif
1734
1735static inline JSValue jsElementOnfocusinGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1736{
1737 UNUSED_PARAM(throwScope);
1738 UNUSED_PARAM(state);
1739 return eventHandlerAttribute(thisObject.wrapped(), eventNames().focusinEvent, worldForDOMObject(thisObject));
1740}
1741
1742EncodedJSValue jsElementOnfocusin(ExecState* state, EncodedJSValue thisValue, PropertyName)
1743{
1744 return IDLAttribute<JSElement>::get<jsElementOnfocusinGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onfocusin");
1745}
1746
1747static inline bool setJSElementOnfocusinSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1748{
1749 UNUSED_PARAM(throwScope);
1750 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().focusinEvent, value);
1751 return true;
1752}
1753
1754bool setJSElementOnfocusin(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1755{
1756 return IDLAttribute<JSElement>::set<setJSElementOnfocusinSetter>(*state, thisValue, encodedValue, "onfocusin");
1757}
1758
1759static inline JSValue jsElementOnfocusoutGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1760{
1761 UNUSED_PARAM(throwScope);
1762 UNUSED_PARAM(state);
1763 return eventHandlerAttribute(thisObject.wrapped(), eventNames().focusoutEvent, worldForDOMObject(thisObject));
1764}
1765
1766EncodedJSValue jsElementOnfocusout(ExecState* state, EncodedJSValue thisValue, PropertyName)
1767{
1768 return IDLAttribute<JSElement>::get<jsElementOnfocusoutGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onfocusout");
1769}
1770
1771static inline bool setJSElementOnfocusoutSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1772{
1773 UNUSED_PARAM(throwScope);
1774 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().focusoutEvent, value);
1775 return true;
1776}
1777
1778bool setJSElementOnfocusout(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1779{
1780 return IDLAttribute<JSElement>::set<setJSElementOnfocusoutSetter>(*state, thisValue, encodedValue, "onfocusout");
1781}
1782
1783static inline JSValue jsElementOnbeforeloadGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1784{
1785 UNUSED_PARAM(throwScope);
1786 UNUSED_PARAM(state);
1787 return eventHandlerAttribute(thisObject.wrapped(), eventNames().beforeloadEvent, worldForDOMObject(thisObject));
1788}
1789
1790EncodedJSValue jsElementOnbeforeload(ExecState* state, EncodedJSValue thisValue, PropertyName)
1791{
1792 return IDLAttribute<JSElement>::get<jsElementOnbeforeloadGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onbeforeload");
1793}
1794
1795static inline bool setJSElementOnbeforeloadSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1796{
1797 UNUSED_PARAM(throwScope);
1798 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().beforeloadEvent, value);
1799 return true;
1800}
1801
1802bool setJSElementOnbeforeload(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1803{
1804 return IDLAttribute<JSElement>::set<setJSElementOnbeforeloadSetter>(*state, thisValue, encodedValue, "onbeforeload");
1805}
1806
1807#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
1808static inline JSValue jsElementOnwebkitneedkeyGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1809{
1810 UNUSED_PARAM(throwScope);
1811 UNUSED_PARAM(state);
1812 return eventHandlerAttribute(thisObject.wrapped(), eventNames().webkitneedkeyEvent, worldForDOMObject(thisObject));
1813}
1814
1815EncodedJSValue jsElementOnwebkitneedkey(ExecState* state, EncodedJSValue thisValue, PropertyName)
1816{
1817 return IDLAttribute<JSElement>::get<jsElementOnwebkitneedkeyGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onwebkitneedkey");
1818}
1819
1820#endif
1821
1822#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
1823static inline bool setJSElementOnwebkitneedkeySetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1824{
1825 UNUSED_PARAM(throwScope);
1826 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().webkitneedkeyEvent, value);
1827 return true;
1828}
1829
1830bool setJSElementOnwebkitneedkey(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1831{
1832 return IDLAttribute<JSElement>::set<setJSElementOnwebkitneedkeySetter>(*state, thisValue, encodedValue, "onwebkitneedkey");
1833}
1834
1835#endif
1836
1837#if ENABLE(VIDEO_PRESENTATION_MODE)
1838static inline JSValue jsElementOnwebkitpresentationmodechangedGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1839{
1840 UNUSED_PARAM(throwScope);
1841 UNUSED_PARAM(state);
1842 return eventHandlerAttribute(thisObject.wrapped(), eventNames().webkitpresentationmodechangedEvent, worldForDOMObject(thisObject));
1843}
1844
1845EncodedJSValue jsElementOnwebkitpresentationmodechanged(ExecState* state, EncodedJSValue thisValue, PropertyName)
1846{
1847 return IDLAttribute<JSElement>::get<jsElementOnwebkitpresentationmodechangedGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onwebkitpresentationmodechanged");
1848}
1849
1850#endif
1851
1852#if ENABLE(VIDEO_PRESENTATION_MODE)
1853static inline bool setJSElementOnwebkitpresentationmodechangedSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1854{
1855 UNUSED_PARAM(throwScope);
1856 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().webkitpresentationmodechangedEvent, value);
1857 return true;
1858}
1859
1860bool setJSElementOnwebkitpresentationmodechanged(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1861{
1862 return IDLAttribute<JSElement>::set<setJSElementOnwebkitpresentationmodechangedSetter>(*state, thisValue, encodedValue, "onwebkitpresentationmodechanged");
1863}
1864
1865#endif
1866
1867#if ENABLE(WIRELESS_PLAYBACK_TARGET)
1868static inline JSValue jsElementOnwebkitcurrentplaybacktargetiswirelesschangedGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1869{
1870 UNUSED_PARAM(throwScope);
1871 UNUSED_PARAM(state);
1872 return eventHandlerAttribute(thisObject.wrapped(), eventNames().webkitcurrentplaybacktargetiswirelesschangedEvent, worldForDOMObject(thisObject));
1873}
1874
1875EncodedJSValue jsElementOnwebkitcurrentplaybacktargetiswirelesschanged(ExecState* state, EncodedJSValue thisValue, PropertyName)
1876{
1877 return IDLAttribute<JSElement>::get<jsElementOnwebkitcurrentplaybacktargetiswirelesschangedGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onwebkitcurrentplaybacktargetiswirelesschanged");
1878}
1879
1880#endif
1881
1882#if ENABLE(WIRELESS_PLAYBACK_TARGET)
1883static inline bool setJSElementOnwebkitcurrentplaybacktargetiswirelesschangedSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1884{
1885 UNUSED_PARAM(throwScope);
1886 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().webkitcurrentplaybacktargetiswirelesschangedEvent, value);
1887 return true;
1888}
1889
1890bool setJSElementOnwebkitcurrentplaybacktargetiswirelesschanged(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1891{
1892 return IDLAttribute<JSElement>::set<setJSElementOnwebkitcurrentplaybacktargetiswirelesschangedSetter>(*state, thisValue, encodedValue, "onwebkitcurrentplaybacktargetiswirelesschanged");
1893}
1894
1895#endif
1896
1897#if ENABLE(WIRELESS_PLAYBACK_TARGET)
1898static inline JSValue jsElementOnwebkitplaybacktargetavailabilitychangedGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1899{
1900 UNUSED_PARAM(throwScope);
1901 UNUSED_PARAM(state);
1902 return eventHandlerAttribute(thisObject.wrapped(), eventNames().webkitplaybacktargetavailabilitychangedEvent, worldForDOMObject(thisObject));
1903}
1904
1905EncodedJSValue jsElementOnwebkitplaybacktargetavailabilitychanged(ExecState* state, EncodedJSValue thisValue, PropertyName)
1906{
1907 return IDLAttribute<JSElement>::get<jsElementOnwebkitplaybacktargetavailabilitychangedGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onwebkitplaybacktargetavailabilitychanged");
1908}
1909
1910#endif
1911
1912#if ENABLE(WIRELESS_PLAYBACK_TARGET)
1913static inline bool setJSElementOnwebkitplaybacktargetavailabilitychangedSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1914{
1915 UNUSED_PARAM(throwScope);
1916 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().webkitplaybacktargetavailabilitychangedEvent, value);
1917 return true;
1918}
1919
1920bool setJSElementOnwebkitplaybacktargetavailabilitychanged(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1921{
1922 return IDLAttribute<JSElement>::set<setJSElementOnwebkitplaybacktargetavailabilitychangedSetter>(*state, thisValue, encodedValue, "onwebkitplaybacktargetavailabilitychanged");
1923}
1924
1925#endif
1926
1927static inline JSValue jsElementRoleGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1928{
1929 UNUSED_PARAM(throwScope);
1930 UNUSED_PARAM(state);
1931 auto& impl = thisObject.wrapped();
1932 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::roleAttr));
1933 return result;
1934}
1935
1936EncodedJSValue jsElementRole(ExecState* state, EncodedJSValue thisValue, PropertyName)
1937{
1938 return IDLAttribute<JSElement>::get<jsElementRoleGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "role");
1939}
1940
1941static inline bool setJSElementRoleSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1942{
1943 UNUSED_PARAM(throwScope);
1944 auto& impl = thisObject.wrapped();
1945 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
1946 RETURN_IF_EXCEPTION(throwScope, false);
1947 AttributeSetter::call(state, throwScope, [&] {
1948 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::roleAttr, WTFMove(nativeValue));
1949 });
1950 return true;
1951}
1952
1953bool setJSElementRole(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1954{
1955 return IDLAttribute<JSElement>::set<setJSElementRoleSetter>(*state, thisValue, encodedValue, "role");
1956}
1957
1958static inline JSValue jsElementAriaAtomicGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1959{
1960 UNUSED_PARAM(throwScope);
1961 UNUSED_PARAM(state);
1962 auto& impl = thisObject.wrapped();
1963 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_atomicAttr));
1964 return result;
1965}
1966
1967EncodedJSValue jsElementAriaAtomic(ExecState* state, EncodedJSValue thisValue, PropertyName)
1968{
1969 return IDLAttribute<JSElement>::get<jsElementAriaAtomicGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaAtomic");
1970}
1971
1972static inline bool setJSElementAriaAtomicSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
1973{
1974 UNUSED_PARAM(throwScope);
1975 auto& impl = thisObject.wrapped();
1976 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
1977 RETURN_IF_EXCEPTION(throwScope, false);
1978 AttributeSetter::call(state, throwScope, [&] {
1979 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_atomicAttr, WTFMove(nativeValue));
1980 });
1981 return true;
1982}
1983
1984bool setJSElementAriaAtomic(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
1985{
1986 return IDLAttribute<JSElement>::set<setJSElementAriaAtomicSetter>(*state, thisValue, encodedValue, "ariaAtomic");
1987}
1988
1989static inline JSValue jsElementAriaAutoCompleteGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
1990{
1991 UNUSED_PARAM(throwScope);
1992 UNUSED_PARAM(state);
1993 auto& impl = thisObject.wrapped();
1994 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_autocompleteAttr));
1995 return result;
1996}
1997
1998EncodedJSValue jsElementAriaAutoComplete(ExecState* state, EncodedJSValue thisValue, PropertyName)
1999{
2000 return IDLAttribute<JSElement>::get<jsElementAriaAutoCompleteGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaAutoComplete");
2001}
2002
2003static inline bool setJSElementAriaAutoCompleteSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2004{
2005 UNUSED_PARAM(throwScope);
2006 auto& impl = thisObject.wrapped();
2007 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2008 RETURN_IF_EXCEPTION(throwScope, false);
2009 AttributeSetter::call(state, throwScope, [&] {
2010 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_autocompleteAttr, WTFMove(nativeValue));
2011 });
2012 return true;
2013}
2014
2015bool setJSElementAriaAutoComplete(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2016{
2017 return IDLAttribute<JSElement>::set<setJSElementAriaAutoCompleteSetter>(*state, thisValue, encodedValue, "ariaAutoComplete");
2018}
2019
2020static inline JSValue jsElementAriaBusyGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2021{
2022 UNUSED_PARAM(throwScope);
2023 UNUSED_PARAM(state);
2024 auto& impl = thisObject.wrapped();
2025 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_busyAttr));
2026 return result;
2027}
2028
2029EncodedJSValue jsElementAriaBusy(ExecState* state, EncodedJSValue thisValue, PropertyName)
2030{
2031 return IDLAttribute<JSElement>::get<jsElementAriaBusyGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaBusy");
2032}
2033
2034static inline bool setJSElementAriaBusySetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2035{
2036 UNUSED_PARAM(throwScope);
2037 auto& impl = thisObject.wrapped();
2038 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2039 RETURN_IF_EXCEPTION(throwScope, false);
2040 AttributeSetter::call(state, throwScope, [&] {
2041 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_busyAttr, WTFMove(nativeValue));
2042 });
2043 return true;
2044}
2045
2046bool setJSElementAriaBusy(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2047{
2048 return IDLAttribute<JSElement>::set<setJSElementAriaBusySetter>(*state, thisValue, encodedValue, "ariaBusy");
2049}
2050
2051static inline JSValue jsElementAriaCheckedGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2052{
2053 UNUSED_PARAM(throwScope);
2054 UNUSED_PARAM(state);
2055 auto& impl = thisObject.wrapped();
2056 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_checkedAttr));
2057 return result;
2058}
2059
2060EncodedJSValue jsElementAriaChecked(ExecState* state, EncodedJSValue thisValue, PropertyName)
2061{
2062 return IDLAttribute<JSElement>::get<jsElementAriaCheckedGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaChecked");
2063}
2064
2065static inline bool setJSElementAriaCheckedSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2066{
2067 UNUSED_PARAM(throwScope);
2068 auto& impl = thisObject.wrapped();
2069 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2070 RETURN_IF_EXCEPTION(throwScope, false);
2071 AttributeSetter::call(state, throwScope, [&] {
2072 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_checkedAttr, WTFMove(nativeValue));
2073 });
2074 return true;
2075}
2076
2077bool setJSElementAriaChecked(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2078{
2079 return IDLAttribute<JSElement>::set<setJSElementAriaCheckedSetter>(*state, thisValue, encodedValue, "ariaChecked");
2080}
2081
2082static inline JSValue jsElementAriaColCountGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2083{
2084 UNUSED_PARAM(throwScope);
2085 UNUSED_PARAM(state);
2086 auto& impl = thisObject.wrapped();
2087 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_colcountAttr));
2088 return result;
2089}
2090
2091EncodedJSValue jsElementAriaColCount(ExecState* state, EncodedJSValue thisValue, PropertyName)
2092{
2093 return IDLAttribute<JSElement>::get<jsElementAriaColCountGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaColCount");
2094}
2095
2096static inline bool setJSElementAriaColCountSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2097{
2098 UNUSED_PARAM(throwScope);
2099 auto& impl = thisObject.wrapped();
2100 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2101 RETURN_IF_EXCEPTION(throwScope, false);
2102 AttributeSetter::call(state, throwScope, [&] {
2103 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_colcountAttr, WTFMove(nativeValue));
2104 });
2105 return true;
2106}
2107
2108bool setJSElementAriaColCount(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2109{
2110 return IDLAttribute<JSElement>::set<setJSElementAriaColCountSetter>(*state, thisValue, encodedValue, "ariaColCount");
2111}
2112
2113static inline JSValue jsElementAriaColIndexGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2114{
2115 UNUSED_PARAM(throwScope);
2116 UNUSED_PARAM(state);
2117 auto& impl = thisObject.wrapped();
2118 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_colindexAttr));
2119 return result;
2120}
2121
2122EncodedJSValue jsElementAriaColIndex(ExecState* state, EncodedJSValue thisValue, PropertyName)
2123{
2124 return IDLAttribute<JSElement>::get<jsElementAriaColIndexGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaColIndex");
2125}
2126
2127static inline bool setJSElementAriaColIndexSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2128{
2129 UNUSED_PARAM(throwScope);
2130 auto& impl = thisObject.wrapped();
2131 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2132 RETURN_IF_EXCEPTION(throwScope, false);
2133 AttributeSetter::call(state, throwScope, [&] {
2134 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_colindexAttr, WTFMove(nativeValue));
2135 });
2136 return true;
2137}
2138
2139bool setJSElementAriaColIndex(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2140{
2141 return IDLAttribute<JSElement>::set<setJSElementAriaColIndexSetter>(*state, thisValue, encodedValue, "ariaColIndex");
2142}
2143
2144static inline JSValue jsElementAriaColSpanGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2145{
2146 UNUSED_PARAM(throwScope);
2147 UNUSED_PARAM(state);
2148 auto& impl = thisObject.wrapped();
2149 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_colspanAttr));
2150 return result;
2151}
2152
2153EncodedJSValue jsElementAriaColSpan(ExecState* state, EncodedJSValue thisValue, PropertyName)
2154{
2155 return IDLAttribute<JSElement>::get<jsElementAriaColSpanGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaColSpan");
2156}
2157
2158static inline bool setJSElementAriaColSpanSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2159{
2160 UNUSED_PARAM(throwScope);
2161 auto& impl = thisObject.wrapped();
2162 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2163 RETURN_IF_EXCEPTION(throwScope, false);
2164 AttributeSetter::call(state, throwScope, [&] {
2165 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_colspanAttr, WTFMove(nativeValue));
2166 });
2167 return true;
2168}
2169
2170bool setJSElementAriaColSpan(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2171{
2172 return IDLAttribute<JSElement>::set<setJSElementAriaColSpanSetter>(*state, thisValue, encodedValue, "ariaColSpan");
2173}
2174
2175static inline JSValue jsElementAriaCurrentGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2176{
2177 UNUSED_PARAM(throwScope);
2178 UNUSED_PARAM(state);
2179 auto& impl = thisObject.wrapped();
2180 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_currentAttr));
2181 return result;
2182}
2183
2184EncodedJSValue jsElementAriaCurrent(ExecState* state, EncodedJSValue thisValue, PropertyName)
2185{
2186 return IDLAttribute<JSElement>::get<jsElementAriaCurrentGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaCurrent");
2187}
2188
2189static inline bool setJSElementAriaCurrentSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2190{
2191 UNUSED_PARAM(throwScope);
2192 auto& impl = thisObject.wrapped();
2193 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2194 RETURN_IF_EXCEPTION(throwScope, false);
2195 AttributeSetter::call(state, throwScope, [&] {
2196 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_currentAttr, WTFMove(nativeValue));
2197 });
2198 return true;
2199}
2200
2201bool setJSElementAriaCurrent(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2202{
2203 return IDLAttribute<JSElement>::set<setJSElementAriaCurrentSetter>(*state, thisValue, encodedValue, "ariaCurrent");
2204}
2205
2206static inline JSValue jsElementAriaDisabledGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2207{
2208 UNUSED_PARAM(throwScope);
2209 UNUSED_PARAM(state);
2210 auto& impl = thisObject.wrapped();
2211 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_disabledAttr));
2212 return result;
2213}
2214
2215EncodedJSValue jsElementAriaDisabled(ExecState* state, EncodedJSValue thisValue, PropertyName)
2216{
2217 return IDLAttribute<JSElement>::get<jsElementAriaDisabledGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaDisabled");
2218}
2219
2220static inline bool setJSElementAriaDisabledSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2221{
2222 UNUSED_PARAM(throwScope);
2223 auto& impl = thisObject.wrapped();
2224 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2225 RETURN_IF_EXCEPTION(throwScope, false);
2226 AttributeSetter::call(state, throwScope, [&] {
2227 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_disabledAttr, WTFMove(nativeValue));
2228 });
2229 return true;
2230}
2231
2232bool setJSElementAriaDisabled(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2233{
2234 return IDLAttribute<JSElement>::set<setJSElementAriaDisabledSetter>(*state, thisValue, encodedValue, "ariaDisabled");
2235}
2236
2237static inline JSValue jsElementAriaExpandedGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2238{
2239 UNUSED_PARAM(throwScope);
2240 UNUSED_PARAM(state);
2241 auto& impl = thisObject.wrapped();
2242 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_expandedAttr));
2243 return result;
2244}
2245
2246EncodedJSValue jsElementAriaExpanded(ExecState* state, EncodedJSValue thisValue, PropertyName)
2247{
2248 return IDLAttribute<JSElement>::get<jsElementAriaExpandedGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaExpanded");
2249}
2250
2251static inline bool setJSElementAriaExpandedSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2252{
2253 UNUSED_PARAM(throwScope);
2254 auto& impl = thisObject.wrapped();
2255 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2256 RETURN_IF_EXCEPTION(throwScope, false);
2257 AttributeSetter::call(state, throwScope, [&] {
2258 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_expandedAttr, WTFMove(nativeValue));
2259 });
2260 return true;
2261}
2262
2263bool setJSElementAriaExpanded(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2264{
2265 return IDLAttribute<JSElement>::set<setJSElementAriaExpandedSetter>(*state, thisValue, encodedValue, "ariaExpanded");
2266}
2267
2268static inline JSValue jsElementAriaHasPopupGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2269{
2270 UNUSED_PARAM(throwScope);
2271 UNUSED_PARAM(state);
2272 auto& impl = thisObject.wrapped();
2273 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_haspopupAttr));
2274 return result;
2275}
2276
2277EncodedJSValue jsElementAriaHasPopup(ExecState* state, EncodedJSValue thisValue, PropertyName)
2278{
2279 return IDLAttribute<JSElement>::get<jsElementAriaHasPopupGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaHasPopup");
2280}
2281
2282static inline bool setJSElementAriaHasPopupSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2283{
2284 UNUSED_PARAM(throwScope);
2285 auto& impl = thisObject.wrapped();
2286 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2287 RETURN_IF_EXCEPTION(throwScope, false);
2288 AttributeSetter::call(state, throwScope, [&] {
2289 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_haspopupAttr, WTFMove(nativeValue));
2290 });
2291 return true;
2292}
2293
2294bool setJSElementAriaHasPopup(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2295{
2296 return IDLAttribute<JSElement>::set<setJSElementAriaHasPopupSetter>(*state, thisValue, encodedValue, "ariaHasPopup");
2297}
2298
2299static inline JSValue jsElementAriaHiddenGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2300{
2301 UNUSED_PARAM(throwScope);
2302 UNUSED_PARAM(state);
2303 auto& impl = thisObject.wrapped();
2304 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_hiddenAttr));
2305 return result;
2306}
2307
2308EncodedJSValue jsElementAriaHidden(ExecState* state, EncodedJSValue thisValue, PropertyName)
2309{
2310 return IDLAttribute<JSElement>::get<jsElementAriaHiddenGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaHidden");
2311}
2312
2313static inline bool setJSElementAriaHiddenSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2314{
2315 UNUSED_PARAM(throwScope);
2316 auto& impl = thisObject.wrapped();
2317 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2318 RETURN_IF_EXCEPTION(throwScope, false);
2319 AttributeSetter::call(state, throwScope, [&] {
2320 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_hiddenAttr, WTFMove(nativeValue));
2321 });
2322 return true;
2323}
2324
2325bool setJSElementAriaHidden(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2326{
2327 return IDLAttribute<JSElement>::set<setJSElementAriaHiddenSetter>(*state, thisValue, encodedValue, "ariaHidden");
2328}
2329
2330static inline JSValue jsElementAriaInvalidGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2331{
2332 UNUSED_PARAM(throwScope);
2333 UNUSED_PARAM(state);
2334 auto& impl = thisObject.wrapped();
2335 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_invalidAttr));
2336 return result;
2337}
2338
2339EncodedJSValue jsElementAriaInvalid(ExecState* state, EncodedJSValue thisValue, PropertyName)
2340{
2341 return IDLAttribute<JSElement>::get<jsElementAriaInvalidGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaInvalid");
2342}
2343
2344static inline bool setJSElementAriaInvalidSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2345{
2346 UNUSED_PARAM(throwScope);
2347 auto& impl = thisObject.wrapped();
2348 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2349 RETURN_IF_EXCEPTION(throwScope, false);
2350 AttributeSetter::call(state, throwScope, [&] {
2351 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_invalidAttr, WTFMove(nativeValue));
2352 });
2353 return true;
2354}
2355
2356bool setJSElementAriaInvalid(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2357{
2358 return IDLAttribute<JSElement>::set<setJSElementAriaInvalidSetter>(*state, thisValue, encodedValue, "ariaInvalid");
2359}
2360
2361static inline JSValue jsElementAriaKeyShortcutsGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2362{
2363 UNUSED_PARAM(throwScope);
2364 UNUSED_PARAM(state);
2365 auto& impl = thisObject.wrapped();
2366 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_keyshortcutsAttr));
2367 return result;
2368}
2369
2370EncodedJSValue jsElementAriaKeyShortcuts(ExecState* state, EncodedJSValue thisValue, PropertyName)
2371{
2372 return IDLAttribute<JSElement>::get<jsElementAriaKeyShortcutsGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaKeyShortcuts");
2373}
2374
2375static inline bool setJSElementAriaKeyShortcutsSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2376{
2377 UNUSED_PARAM(throwScope);
2378 auto& impl = thisObject.wrapped();
2379 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2380 RETURN_IF_EXCEPTION(throwScope, false);
2381 AttributeSetter::call(state, throwScope, [&] {
2382 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_keyshortcutsAttr, WTFMove(nativeValue));
2383 });
2384 return true;
2385}
2386
2387bool setJSElementAriaKeyShortcuts(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2388{
2389 return IDLAttribute<JSElement>::set<setJSElementAriaKeyShortcutsSetter>(*state, thisValue, encodedValue, "ariaKeyShortcuts");
2390}
2391
2392static inline JSValue jsElementAriaLabelGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2393{
2394 UNUSED_PARAM(throwScope);
2395 UNUSED_PARAM(state);
2396 auto& impl = thisObject.wrapped();
2397 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_labelAttr));
2398 return result;
2399}
2400
2401EncodedJSValue jsElementAriaLabel(ExecState* state, EncodedJSValue thisValue, PropertyName)
2402{
2403 return IDLAttribute<JSElement>::get<jsElementAriaLabelGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaLabel");
2404}
2405
2406static inline bool setJSElementAriaLabelSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2407{
2408 UNUSED_PARAM(throwScope);
2409 auto& impl = thisObject.wrapped();
2410 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2411 RETURN_IF_EXCEPTION(throwScope, false);
2412 AttributeSetter::call(state, throwScope, [&] {
2413 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_labelAttr, WTFMove(nativeValue));
2414 });
2415 return true;
2416}
2417
2418bool setJSElementAriaLabel(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2419{
2420 return IDLAttribute<JSElement>::set<setJSElementAriaLabelSetter>(*state, thisValue, encodedValue, "ariaLabel");
2421}
2422
2423static inline JSValue jsElementAriaLevelGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2424{
2425 UNUSED_PARAM(throwScope);
2426 UNUSED_PARAM(state);
2427 auto& impl = thisObject.wrapped();
2428 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_levelAttr));
2429 return result;
2430}
2431
2432EncodedJSValue jsElementAriaLevel(ExecState* state, EncodedJSValue thisValue, PropertyName)
2433{
2434 return IDLAttribute<JSElement>::get<jsElementAriaLevelGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaLevel");
2435}
2436
2437static inline bool setJSElementAriaLevelSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2438{
2439 UNUSED_PARAM(throwScope);
2440 auto& impl = thisObject.wrapped();
2441 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2442 RETURN_IF_EXCEPTION(throwScope, false);
2443 AttributeSetter::call(state, throwScope, [&] {
2444 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_levelAttr, WTFMove(nativeValue));
2445 });
2446 return true;
2447}
2448
2449bool setJSElementAriaLevel(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2450{
2451 return IDLAttribute<JSElement>::set<setJSElementAriaLevelSetter>(*state, thisValue, encodedValue, "ariaLevel");
2452}
2453
2454static inline JSValue jsElementAriaLiveGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2455{
2456 UNUSED_PARAM(throwScope);
2457 UNUSED_PARAM(state);
2458 auto& impl = thisObject.wrapped();
2459 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_liveAttr));
2460 return result;
2461}
2462
2463EncodedJSValue jsElementAriaLive(ExecState* state, EncodedJSValue thisValue, PropertyName)
2464{
2465 return IDLAttribute<JSElement>::get<jsElementAriaLiveGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaLive");
2466}
2467
2468static inline bool setJSElementAriaLiveSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2469{
2470 UNUSED_PARAM(throwScope);
2471 auto& impl = thisObject.wrapped();
2472 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2473 RETURN_IF_EXCEPTION(throwScope, false);
2474 AttributeSetter::call(state, throwScope, [&] {
2475 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_liveAttr, WTFMove(nativeValue));
2476 });
2477 return true;
2478}
2479
2480bool setJSElementAriaLive(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2481{
2482 return IDLAttribute<JSElement>::set<setJSElementAriaLiveSetter>(*state, thisValue, encodedValue, "ariaLive");
2483}
2484
2485static inline JSValue jsElementAriaModalGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2486{
2487 UNUSED_PARAM(throwScope);
2488 UNUSED_PARAM(state);
2489 auto& impl = thisObject.wrapped();
2490 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_modalAttr));
2491 return result;
2492}
2493
2494EncodedJSValue jsElementAriaModal(ExecState* state, EncodedJSValue thisValue, PropertyName)
2495{
2496 return IDLAttribute<JSElement>::get<jsElementAriaModalGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaModal");
2497}
2498
2499static inline bool setJSElementAriaModalSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2500{
2501 UNUSED_PARAM(throwScope);
2502 auto& impl = thisObject.wrapped();
2503 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2504 RETURN_IF_EXCEPTION(throwScope, false);
2505 AttributeSetter::call(state, throwScope, [&] {
2506 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_modalAttr, WTFMove(nativeValue));
2507 });
2508 return true;
2509}
2510
2511bool setJSElementAriaModal(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2512{
2513 return IDLAttribute<JSElement>::set<setJSElementAriaModalSetter>(*state, thisValue, encodedValue, "ariaModal");
2514}
2515
2516static inline JSValue jsElementAriaMultiLineGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2517{
2518 UNUSED_PARAM(throwScope);
2519 UNUSED_PARAM(state);
2520 auto& impl = thisObject.wrapped();
2521 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_multilineAttr));
2522 return result;
2523}
2524
2525EncodedJSValue jsElementAriaMultiLine(ExecState* state, EncodedJSValue thisValue, PropertyName)
2526{
2527 return IDLAttribute<JSElement>::get<jsElementAriaMultiLineGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaMultiLine");
2528}
2529
2530static inline bool setJSElementAriaMultiLineSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2531{
2532 UNUSED_PARAM(throwScope);
2533 auto& impl = thisObject.wrapped();
2534 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2535 RETURN_IF_EXCEPTION(throwScope, false);
2536 AttributeSetter::call(state, throwScope, [&] {
2537 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_multilineAttr, WTFMove(nativeValue));
2538 });
2539 return true;
2540}
2541
2542bool setJSElementAriaMultiLine(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2543{
2544 return IDLAttribute<JSElement>::set<setJSElementAriaMultiLineSetter>(*state, thisValue, encodedValue, "ariaMultiLine");
2545}
2546
2547static inline JSValue jsElementAriaMultiSelectableGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2548{
2549 UNUSED_PARAM(throwScope);
2550 UNUSED_PARAM(state);
2551 auto& impl = thisObject.wrapped();
2552 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_multiselectableAttr));
2553 return result;
2554}
2555
2556EncodedJSValue jsElementAriaMultiSelectable(ExecState* state, EncodedJSValue thisValue, PropertyName)
2557{
2558 return IDLAttribute<JSElement>::get<jsElementAriaMultiSelectableGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaMultiSelectable");
2559}
2560
2561static inline bool setJSElementAriaMultiSelectableSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2562{
2563 UNUSED_PARAM(throwScope);
2564 auto& impl = thisObject.wrapped();
2565 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2566 RETURN_IF_EXCEPTION(throwScope, false);
2567 AttributeSetter::call(state, throwScope, [&] {
2568 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_multiselectableAttr, WTFMove(nativeValue));
2569 });
2570 return true;
2571}
2572
2573bool setJSElementAriaMultiSelectable(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2574{
2575 return IDLAttribute<JSElement>::set<setJSElementAriaMultiSelectableSetter>(*state, thisValue, encodedValue, "ariaMultiSelectable");
2576}
2577
2578static inline JSValue jsElementAriaOrientationGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2579{
2580 UNUSED_PARAM(throwScope);
2581 UNUSED_PARAM(state);
2582 auto& impl = thisObject.wrapped();
2583 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_orientationAttr));
2584 return result;
2585}
2586
2587EncodedJSValue jsElementAriaOrientation(ExecState* state, EncodedJSValue thisValue, PropertyName)
2588{
2589 return IDLAttribute<JSElement>::get<jsElementAriaOrientationGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaOrientation");
2590}
2591
2592static inline bool setJSElementAriaOrientationSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2593{
2594 UNUSED_PARAM(throwScope);
2595 auto& impl = thisObject.wrapped();
2596 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2597 RETURN_IF_EXCEPTION(throwScope, false);
2598 AttributeSetter::call(state, throwScope, [&] {
2599 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_orientationAttr, WTFMove(nativeValue));
2600 });
2601 return true;
2602}
2603
2604bool setJSElementAriaOrientation(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2605{
2606 return IDLAttribute<JSElement>::set<setJSElementAriaOrientationSetter>(*state, thisValue, encodedValue, "ariaOrientation");
2607}
2608
2609static inline JSValue jsElementAriaPlaceholderGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2610{
2611 UNUSED_PARAM(throwScope);
2612 UNUSED_PARAM(state);
2613 auto& impl = thisObject.wrapped();
2614 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_placeholderAttr));
2615 return result;
2616}
2617
2618EncodedJSValue jsElementAriaPlaceholder(ExecState* state, EncodedJSValue thisValue, PropertyName)
2619{
2620 return IDLAttribute<JSElement>::get<jsElementAriaPlaceholderGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaPlaceholder");
2621}
2622
2623static inline bool setJSElementAriaPlaceholderSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2624{
2625 UNUSED_PARAM(throwScope);
2626 auto& impl = thisObject.wrapped();
2627 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2628 RETURN_IF_EXCEPTION(throwScope, false);
2629 AttributeSetter::call(state, throwScope, [&] {
2630 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_placeholderAttr, WTFMove(nativeValue));
2631 });
2632 return true;
2633}
2634
2635bool setJSElementAriaPlaceholder(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2636{
2637 return IDLAttribute<JSElement>::set<setJSElementAriaPlaceholderSetter>(*state, thisValue, encodedValue, "ariaPlaceholder");
2638}
2639
2640static inline JSValue jsElementAriaPosInSetGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2641{
2642 UNUSED_PARAM(throwScope);
2643 UNUSED_PARAM(state);
2644 auto& impl = thisObject.wrapped();
2645 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_posinsetAttr));
2646 return result;
2647}
2648
2649EncodedJSValue jsElementAriaPosInSet(ExecState* state, EncodedJSValue thisValue, PropertyName)
2650{
2651 return IDLAttribute<JSElement>::get<jsElementAriaPosInSetGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaPosInSet");
2652}
2653
2654static inline bool setJSElementAriaPosInSetSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2655{
2656 UNUSED_PARAM(throwScope);
2657 auto& impl = thisObject.wrapped();
2658 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2659 RETURN_IF_EXCEPTION(throwScope, false);
2660 AttributeSetter::call(state, throwScope, [&] {
2661 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_posinsetAttr, WTFMove(nativeValue));
2662 });
2663 return true;
2664}
2665
2666bool setJSElementAriaPosInSet(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2667{
2668 return IDLAttribute<JSElement>::set<setJSElementAriaPosInSetSetter>(*state, thisValue, encodedValue, "ariaPosInSet");
2669}
2670
2671static inline JSValue jsElementAriaPressedGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2672{
2673 UNUSED_PARAM(throwScope);
2674 UNUSED_PARAM(state);
2675 auto& impl = thisObject.wrapped();
2676 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_pressedAttr));
2677 return result;
2678}
2679
2680EncodedJSValue jsElementAriaPressed(ExecState* state, EncodedJSValue thisValue, PropertyName)
2681{
2682 return IDLAttribute<JSElement>::get<jsElementAriaPressedGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaPressed");
2683}
2684
2685static inline bool setJSElementAriaPressedSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2686{
2687 UNUSED_PARAM(throwScope);
2688 auto& impl = thisObject.wrapped();
2689 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2690 RETURN_IF_EXCEPTION(throwScope, false);
2691 AttributeSetter::call(state, throwScope, [&] {
2692 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_pressedAttr, WTFMove(nativeValue));
2693 });
2694 return true;
2695}
2696
2697bool setJSElementAriaPressed(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2698{
2699 return IDLAttribute<JSElement>::set<setJSElementAriaPressedSetter>(*state, thisValue, encodedValue, "ariaPressed");
2700}
2701
2702static inline JSValue jsElementAriaReadOnlyGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2703{
2704 UNUSED_PARAM(throwScope);
2705 UNUSED_PARAM(state);
2706 auto& impl = thisObject.wrapped();
2707 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_readonlyAttr));
2708 return result;
2709}
2710
2711EncodedJSValue jsElementAriaReadOnly(ExecState* state, EncodedJSValue thisValue, PropertyName)
2712{
2713 return IDLAttribute<JSElement>::get<jsElementAriaReadOnlyGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaReadOnly");
2714}
2715
2716static inline bool setJSElementAriaReadOnlySetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2717{
2718 UNUSED_PARAM(throwScope);
2719 auto& impl = thisObject.wrapped();
2720 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2721 RETURN_IF_EXCEPTION(throwScope, false);
2722 AttributeSetter::call(state, throwScope, [&] {
2723 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_readonlyAttr, WTFMove(nativeValue));
2724 });
2725 return true;
2726}
2727
2728bool setJSElementAriaReadOnly(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2729{
2730 return IDLAttribute<JSElement>::set<setJSElementAriaReadOnlySetter>(*state, thisValue, encodedValue, "ariaReadOnly");
2731}
2732
2733static inline JSValue jsElementAriaRelevantGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2734{
2735 UNUSED_PARAM(throwScope);
2736 UNUSED_PARAM(state);
2737 auto& impl = thisObject.wrapped();
2738 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_relevantAttr));
2739 return result;
2740}
2741
2742EncodedJSValue jsElementAriaRelevant(ExecState* state, EncodedJSValue thisValue, PropertyName)
2743{
2744 return IDLAttribute<JSElement>::get<jsElementAriaRelevantGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaRelevant");
2745}
2746
2747static inline bool setJSElementAriaRelevantSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2748{
2749 UNUSED_PARAM(throwScope);
2750 auto& impl = thisObject.wrapped();
2751 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2752 RETURN_IF_EXCEPTION(throwScope, false);
2753 AttributeSetter::call(state, throwScope, [&] {
2754 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_relevantAttr, WTFMove(nativeValue));
2755 });
2756 return true;
2757}
2758
2759bool setJSElementAriaRelevant(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2760{
2761 return IDLAttribute<JSElement>::set<setJSElementAriaRelevantSetter>(*state, thisValue, encodedValue, "ariaRelevant");
2762}
2763
2764static inline JSValue jsElementAriaRequiredGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2765{
2766 UNUSED_PARAM(throwScope);
2767 UNUSED_PARAM(state);
2768 auto& impl = thisObject.wrapped();
2769 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_requiredAttr));
2770 return result;
2771}
2772
2773EncodedJSValue jsElementAriaRequired(ExecState* state, EncodedJSValue thisValue, PropertyName)
2774{
2775 return IDLAttribute<JSElement>::get<jsElementAriaRequiredGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaRequired");
2776}
2777
2778static inline bool setJSElementAriaRequiredSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2779{
2780 UNUSED_PARAM(throwScope);
2781 auto& impl = thisObject.wrapped();
2782 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2783 RETURN_IF_EXCEPTION(throwScope, false);
2784 AttributeSetter::call(state, throwScope, [&] {
2785 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_requiredAttr, WTFMove(nativeValue));
2786 });
2787 return true;
2788}
2789
2790bool setJSElementAriaRequired(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2791{
2792 return IDLAttribute<JSElement>::set<setJSElementAriaRequiredSetter>(*state, thisValue, encodedValue, "ariaRequired");
2793}
2794
2795static inline JSValue jsElementAriaRoleDescriptionGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2796{
2797 UNUSED_PARAM(throwScope);
2798 UNUSED_PARAM(state);
2799 auto& impl = thisObject.wrapped();
2800 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_roledescriptionAttr));
2801 return result;
2802}
2803
2804EncodedJSValue jsElementAriaRoleDescription(ExecState* state, EncodedJSValue thisValue, PropertyName)
2805{
2806 return IDLAttribute<JSElement>::get<jsElementAriaRoleDescriptionGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaRoleDescription");
2807}
2808
2809static inline bool setJSElementAriaRoleDescriptionSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2810{
2811 UNUSED_PARAM(throwScope);
2812 auto& impl = thisObject.wrapped();
2813 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2814 RETURN_IF_EXCEPTION(throwScope, false);
2815 AttributeSetter::call(state, throwScope, [&] {
2816 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_roledescriptionAttr, WTFMove(nativeValue));
2817 });
2818 return true;
2819}
2820
2821bool setJSElementAriaRoleDescription(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2822{
2823 return IDLAttribute<JSElement>::set<setJSElementAriaRoleDescriptionSetter>(*state, thisValue, encodedValue, "ariaRoleDescription");
2824}
2825
2826static inline JSValue jsElementAriaRowCountGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2827{
2828 UNUSED_PARAM(throwScope);
2829 UNUSED_PARAM(state);
2830 auto& impl = thisObject.wrapped();
2831 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_rowcountAttr));
2832 return result;
2833}
2834
2835EncodedJSValue jsElementAriaRowCount(ExecState* state, EncodedJSValue thisValue, PropertyName)
2836{
2837 return IDLAttribute<JSElement>::get<jsElementAriaRowCountGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaRowCount");
2838}
2839
2840static inline bool setJSElementAriaRowCountSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2841{
2842 UNUSED_PARAM(throwScope);
2843 auto& impl = thisObject.wrapped();
2844 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2845 RETURN_IF_EXCEPTION(throwScope, false);
2846 AttributeSetter::call(state, throwScope, [&] {
2847 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_rowcountAttr, WTFMove(nativeValue));
2848 });
2849 return true;
2850}
2851
2852bool setJSElementAriaRowCount(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2853{
2854 return IDLAttribute<JSElement>::set<setJSElementAriaRowCountSetter>(*state, thisValue, encodedValue, "ariaRowCount");
2855}
2856
2857static inline JSValue jsElementAriaRowIndexGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2858{
2859 UNUSED_PARAM(throwScope);
2860 UNUSED_PARAM(state);
2861 auto& impl = thisObject.wrapped();
2862 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_rowindexAttr));
2863 return result;
2864}
2865
2866EncodedJSValue jsElementAriaRowIndex(ExecState* state, EncodedJSValue thisValue, PropertyName)
2867{
2868 return IDLAttribute<JSElement>::get<jsElementAriaRowIndexGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaRowIndex");
2869}
2870
2871static inline bool setJSElementAriaRowIndexSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2872{
2873 UNUSED_PARAM(throwScope);
2874 auto& impl = thisObject.wrapped();
2875 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2876 RETURN_IF_EXCEPTION(throwScope, false);
2877 AttributeSetter::call(state, throwScope, [&] {
2878 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_rowindexAttr, WTFMove(nativeValue));
2879 });
2880 return true;
2881}
2882
2883bool setJSElementAriaRowIndex(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2884{
2885 return IDLAttribute<JSElement>::set<setJSElementAriaRowIndexSetter>(*state, thisValue, encodedValue, "ariaRowIndex");
2886}
2887
2888static inline JSValue jsElementAriaRowSpanGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2889{
2890 UNUSED_PARAM(throwScope);
2891 UNUSED_PARAM(state);
2892 auto& impl = thisObject.wrapped();
2893 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_rowspanAttr));
2894 return result;
2895}
2896
2897EncodedJSValue jsElementAriaRowSpan(ExecState* state, EncodedJSValue thisValue, PropertyName)
2898{
2899 return IDLAttribute<JSElement>::get<jsElementAriaRowSpanGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaRowSpan");
2900}
2901
2902static inline bool setJSElementAriaRowSpanSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2903{
2904 UNUSED_PARAM(throwScope);
2905 auto& impl = thisObject.wrapped();
2906 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2907 RETURN_IF_EXCEPTION(throwScope, false);
2908 AttributeSetter::call(state, throwScope, [&] {
2909 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_rowspanAttr, WTFMove(nativeValue));
2910 });
2911 return true;
2912}
2913
2914bool setJSElementAriaRowSpan(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2915{
2916 return IDLAttribute<JSElement>::set<setJSElementAriaRowSpanSetter>(*state, thisValue, encodedValue, "ariaRowSpan");
2917}
2918
2919static inline JSValue jsElementAriaSelectedGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2920{
2921 UNUSED_PARAM(throwScope);
2922 UNUSED_PARAM(state);
2923 auto& impl = thisObject.wrapped();
2924 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_selectedAttr));
2925 return result;
2926}
2927
2928EncodedJSValue jsElementAriaSelected(ExecState* state, EncodedJSValue thisValue, PropertyName)
2929{
2930 return IDLAttribute<JSElement>::get<jsElementAriaSelectedGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaSelected");
2931}
2932
2933static inline bool setJSElementAriaSelectedSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2934{
2935 UNUSED_PARAM(throwScope);
2936 auto& impl = thisObject.wrapped();
2937 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2938 RETURN_IF_EXCEPTION(throwScope, false);
2939 AttributeSetter::call(state, throwScope, [&] {
2940 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_selectedAttr, WTFMove(nativeValue));
2941 });
2942 return true;
2943}
2944
2945bool setJSElementAriaSelected(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2946{
2947 return IDLAttribute<JSElement>::set<setJSElementAriaSelectedSetter>(*state, thisValue, encodedValue, "ariaSelected");
2948}
2949
2950static inline JSValue jsElementAriaSetSizeGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2951{
2952 UNUSED_PARAM(throwScope);
2953 UNUSED_PARAM(state);
2954 auto& impl = thisObject.wrapped();
2955 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_setsizeAttr));
2956 return result;
2957}
2958
2959EncodedJSValue jsElementAriaSetSize(ExecState* state, EncodedJSValue thisValue, PropertyName)
2960{
2961 return IDLAttribute<JSElement>::get<jsElementAriaSetSizeGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaSetSize");
2962}
2963
2964static inline bool setJSElementAriaSetSizeSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2965{
2966 UNUSED_PARAM(throwScope);
2967 auto& impl = thisObject.wrapped();
2968 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
2969 RETURN_IF_EXCEPTION(throwScope, false);
2970 AttributeSetter::call(state, throwScope, [&] {
2971 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_setsizeAttr, WTFMove(nativeValue));
2972 });
2973 return true;
2974}
2975
2976bool setJSElementAriaSetSize(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
2977{
2978 return IDLAttribute<JSElement>::set<setJSElementAriaSetSizeSetter>(*state, thisValue, encodedValue, "ariaSetSize");
2979}
2980
2981static inline JSValue jsElementAriaSortGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
2982{
2983 UNUSED_PARAM(throwScope);
2984 UNUSED_PARAM(state);
2985 auto& impl = thisObject.wrapped();
2986 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_sortAttr));
2987 return result;
2988}
2989
2990EncodedJSValue jsElementAriaSort(ExecState* state, EncodedJSValue thisValue, PropertyName)
2991{
2992 return IDLAttribute<JSElement>::get<jsElementAriaSortGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaSort");
2993}
2994
2995static inline bool setJSElementAriaSortSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
2996{
2997 UNUSED_PARAM(throwScope);
2998 auto& impl = thisObject.wrapped();
2999 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
3000 RETURN_IF_EXCEPTION(throwScope, false);
3001 AttributeSetter::call(state, throwScope, [&] {
3002 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_sortAttr, WTFMove(nativeValue));
3003 });
3004 return true;
3005}
3006
3007bool setJSElementAriaSort(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
3008{
3009 return IDLAttribute<JSElement>::set<setJSElementAriaSortSetter>(*state, thisValue, encodedValue, "ariaSort");
3010}
3011
3012static inline JSValue jsElementAriaValueMaxGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3013{
3014 UNUSED_PARAM(throwScope);
3015 UNUSED_PARAM(state);
3016 auto& impl = thisObject.wrapped();
3017 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_valuemaxAttr));
3018 return result;
3019}
3020
3021EncodedJSValue jsElementAriaValueMax(ExecState* state, EncodedJSValue thisValue, PropertyName)
3022{
3023 return IDLAttribute<JSElement>::get<jsElementAriaValueMaxGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaValueMax");
3024}
3025
3026static inline bool setJSElementAriaValueMaxSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
3027{
3028 UNUSED_PARAM(throwScope);
3029 auto& impl = thisObject.wrapped();
3030 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
3031 RETURN_IF_EXCEPTION(throwScope, false);
3032 AttributeSetter::call(state, throwScope, [&] {
3033 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_valuemaxAttr, WTFMove(nativeValue));
3034 });
3035 return true;
3036}
3037
3038bool setJSElementAriaValueMax(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
3039{
3040 return IDLAttribute<JSElement>::set<setJSElementAriaValueMaxSetter>(*state, thisValue, encodedValue, "ariaValueMax");
3041}
3042
3043static inline JSValue jsElementAriaValueMinGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3044{
3045 UNUSED_PARAM(throwScope);
3046 UNUSED_PARAM(state);
3047 auto& impl = thisObject.wrapped();
3048 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_valueminAttr));
3049 return result;
3050}
3051
3052EncodedJSValue jsElementAriaValueMin(ExecState* state, EncodedJSValue thisValue, PropertyName)
3053{
3054 return IDLAttribute<JSElement>::get<jsElementAriaValueMinGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaValueMin");
3055}
3056
3057static inline bool setJSElementAriaValueMinSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
3058{
3059 UNUSED_PARAM(throwScope);
3060 auto& impl = thisObject.wrapped();
3061 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
3062 RETURN_IF_EXCEPTION(throwScope, false);
3063 AttributeSetter::call(state, throwScope, [&] {
3064 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_valueminAttr, WTFMove(nativeValue));
3065 });
3066 return true;
3067}
3068
3069bool setJSElementAriaValueMin(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
3070{
3071 return IDLAttribute<JSElement>::set<setJSElementAriaValueMinSetter>(*state, thisValue, encodedValue, "ariaValueMin");
3072}
3073
3074static inline JSValue jsElementAriaValueNowGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3075{
3076 UNUSED_PARAM(throwScope);
3077 UNUSED_PARAM(state);
3078 auto& impl = thisObject.wrapped();
3079 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_valuenowAttr));
3080 return result;
3081}
3082
3083EncodedJSValue jsElementAriaValueNow(ExecState* state, EncodedJSValue thisValue, PropertyName)
3084{
3085 return IDLAttribute<JSElement>::get<jsElementAriaValueNowGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaValueNow");
3086}
3087
3088static inline bool setJSElementAriaValueNowSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
3089{
3090 UNUSED_PARAM(throwScope);
3091 auto& impl = thisObject.wrapped();
3092 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
3093 RETURN_IF_EXCEPTION(throwScope, false);
3094 AttributeSetter::call(state, throwScope, [&] {
3095 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_valuenowAttr, WTFMove(nativeValue));
3096 });
3097 return true;
3098}
3099
3100bool setJSElementAriaValueNow(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
3101{
3102 return IDLAttribute<JSElement>::set<setJSElementAriaValueNowSetter>(*state, thisValue, encodedValue, "ariaValueNow");
3103}
3104
3105static inline JSValue jsElementAriaValueTextGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3106{
3107 UNUSED_PARAM(throwScope);
3108 UNUSED_PARAM(state);
3109 auto& impl = thisObject.wrapped();
3110 JSValue result = toJS<IDLNullable<IDLDOMString>>(state, throwScope, impl.attributeWithoutSynchronization(WebCore::HTMLNames::aria_valuetextAttr));
3111 return result;
3112}
3113
3114EncodedJSValue jsElementAriaValueText(ExecState* state, EncodedJSValue thisValue, PropertyName)
3115{
3116 return IDLAttribute<JSElement>::get<jsElementAriaValueTextGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "ariaValueText");
3117}
3118
3119static inline bool setJSElementAriaValueTextSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
3120{
3121 UNUSED_PARAM(throwScope);
3122 auto& impl = thisObject.wrapped();
3123 auto nativeValue = convert<IDLNullable<IDLDOMString>>(state, value);
3124 RETURN_IF_EXCEPTION(throwScope, false);
3125 AttributeSetter::call(state, throwScope, [&] {
3126 return impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::aria_valuetextAttr, WTFMove(nativeValue));
3127 });
3128 return true;
3129}
3130
3131bool setJSElementAriaValueText(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
3132{
3133 return IDLAttribute<JSElement>::set<setJSElementAriaValueTextSetter>(*state, thisValue, encodedValue, "ariaValueText");
3134}
3135
3136static inline JSValue jsElementOncopyGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3137{
3138 UNUSED_PARAM(throwScope);
3139 UNUSED_PARAM(state);
3140 return eventHandlerAttribute(thisObject.wrapped(), eventNames().copyEvent, worldForDOMObject(thisObject));
3141}
3142
3143EncodedJSValue jsElementOncopy(ExecState* state, EncodedJSValue thisValue, PropertyName)
3144{
3145 return IDLAttribute<JSElement>::get<jsElementOncopyGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "oncopy");
3146}
3147
3148static inline bool setJSElementOncopySetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
3149{
3150 UNUSED_PARAM(throwScope);
3151 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().copyEvent, value);
3152 return true;
3153}
3154
3155bool setJSElementOncopy(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
3156{
3157 return IDLAttribute<JSElement>::set<setJSElementOncopySetter>(*state, thisValue, encodedValue, "oncopy");
3158}
3159
3160static inline JSValue jsElementOncutGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3161{
3162 UNUSED_PARAM(throwScope);
3163 UNUSED_PARAM(state);
3164 return eventHandlerAttribute(thisObject.wrapped(), eventNames().cutEvent, worldForDOMObject(thisObject));
3165}
3166
3167EncodedJSValue jsElementOncut(ExecState* state, EncodedJSValue thisValue, PropertyName)
3168{
3169 return IDLAttribute<JSElement>::get<jsElementOncutGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "oncut");
3170}
3171
3172static inline bool setJSElementOncutSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
3173{
3174 UNUSED_PARAM(throwScope);
3175 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().cutEvent, value);
3176 return true;
3177}
3178
3179bool setJSElementOncut(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
3180{
3181 return IDLAttribute<JSElement>::set<setJSElementOncutSetter>(*state, thisValue, encodedValue, "oncut");
3182}
3183
3184static inline JSValue jsElementOnpasteGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3185{
3186 UNUSED_PARAM(throwScope);
3187 UNUSED_PARAM(state);
3188 return eventHandlerAttribute(thisObject.wrapped(), eventNames().pasteEvent, worldForDOMObject(thisObject));
3189}
3190
3191EncodedJSValue jsElementOnpaste(ExecState* state, EncodedJSValue thisValue, PropertyName)
3192{
3193 return IDLAttribute<JSElement>::get<jsElementOnpasteGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onpaste");
3194}
3195
3196static inline bool setJSElementOnpasteSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
3197{
3198 UNUSED_PARAM(throwScope);
3199 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().pasteEvent, value);
3200 return true;
3201}
3202
3203bool setJSElementOnpaste(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
3204{
3205 return IDLAttribute<JSElement>::set<setJSElementOnpasteSetter>(*state, thisValue, encodedValue, "onpaste");
3206}
3207
3208static inline JSValue jsElementOnbeforecopyGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3209{
3210 UNUSED_PARAM(throwScope);
3211 UNUSED_PARAM(state);
3212 return eventHandlerAttribute(thisObject.wrapped(), eventNames().beforecopyEvent, worldForDOMObject(thisObject));
3213}
3214
3215EncodedJSValue jsElementOnbeforecopy(ExecState* state, EncodedJSValue thisValue, PropertyName)
3216{
3217 return IDLAttribute<JSElement>::get<jsElementOnbeforecopyGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onbeforecopy");
3218}
3219
3220static inline bool setJSElementOnbeforecopySetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
3221{
3222 UNUSED_PARAM(throwScope);
3223 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().beforecopyEvent, value);
3224 return true;
3225}
3226
3227bool setJSElementOnbeforecopy(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
3228{
3229 return IDLAttribute<JSElement>::set<setJSElementOnbeforecopySetter>(*state, thisValue, encodedValue, "onbeforecopy");
3230}
3231
3232static inline JSValue jsElementOnbeforecutGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3233{
3234 UNUSED_PARAM(throwScope);
3235 UNUSED_PARAM(state);
3236 return eventHandlerAttribute(thisObject.wrapped(), eventNames().beforecutEvent, worldForDOMObject(thisObject));
3237}
3238
3239EncodedJSValue jsElementOnbeforecut(ExecState* state, EncodedJSValue thisValue, PropertyName)
3240{
3241 return IDLAttribute<JSElement>::get<jsElementOnbeforecutGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onbeforecut");
3242}
3243
3244static inline bool setJSElementOnbeforecutSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
3245{
3246 UNUSED_PARAM(throwScope);
3247 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().beforecutEvent, value);
3248 return true;
3249}
3250
3251bool setJSElementOnbeforecut(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
3252{
3253 return IDLAttribute<JSElement>::set<setJSElementOnbeforecutSetter>(*state, thisValue, encodedValue, "onbeforecut");
3254}
3255
3256static inline JSValue jsElementOnbeforeinputGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3257{
3258 UNUSED_PARAM(throwScope);
3259 UNUSED_PARAM(state);
3260 return eventHandlerAttribute(thisObject.wrapped(), eventNames().beforeinputEvent, worldForDOMObject(thisObject));
3261}
3262
3263EncodedJSValue jsElementOnbeforeinput(ExecState* state, EncodedJSValue thisValue, PropertyName)
3264{
3265 return IDLAttribute<JSElement>::get<jsElementOnbeforeinputGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onbeforeinput");
3266}
3267
3268static inline bool setJSElementOnbeforeinputSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
3269{
3270 UNUSED_PARAM(throwScope);
3271 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().beforeinputEvent, value);
3272 return true;
3273}
3274
3275bool setJSElementOnbeforeinput(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
3276{
3277 return IDLAttribute<JSElement>::set<setJSElementOnbeforeinputSetter>(*state, thisValue, encodedValue, "onbeforeinput");
3278}
3279
3280static inline JSValue jsElementOnbeforepasteGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3281{
3282 UNUSED_PARAM(throwScope);
3283 UNUSED_PARAM(state);
3284 return eventHandlerAttribute(thisObject.wrapped(), eventNames().beforepasteEvent, worldForDOMObject(thisObject));
3285}
3286
3287EncodedJSValue jsElementOnbeforepaste(ExecState* state, EncodedJSValue thisValue, PropertyName)
3288{
3289 return IDLAttribute<JSElement>::get<jsElementOnbeforepasteGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "onbeforepaste");
3290}
3291
3292static inline bool setJSElementOnbeforepasteSetter(ExecState& state, JSElement& thisObject, JSValue value, ThrowScope& throwScope)
3293{
3294 UNUSED_PARAM(throwScope);
3295 setEventHandlerAttribute(state, thisObject, thisObject.wrapped(), eventNames().beforepasteEvent, value);
3296 return true;
3297}
3298
3299bool setJSElementOnbeforepaste(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
3300{
3301 return IDLAttribute<JSElement>::set<setJSElementOnbeforepasteSetter>(*state, thisValue, encodedValue, "onbeforepaste");
3302}
3303
3304static inline JSValue jsElementPreviousElementSiblingGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3305{
3306 UNUSED_PARAM(throwScope);
3307 UNUSED_PARAM(state);
3308 auto& impl = thisObject.wrapped();
3309 JSValue result = toJS<IDLNullable<IDLInterface<Element>>>(state, *thisObject.globalObject(), throwScope, impl.previousElementSibling());
3310 return result;
3311}
3312
3313EncodedJSValue jsElementPreviousElementSibling(ExecState* state, EncodedJSValue thisValue, PropertyName)
3314{
3315 return IDLAttribute<JSElement>::get<jsElementPreviousElementSiblingGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "previousElementSibling");
3316}
3317
3318static inline JSValue jsElementNextElementSiblingGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3319{
3320 UNUSED_PARAM(throwScope);
3321 UNUSED_PARAM(state);
3322 auto& impl = thisObject.wrapped();
3323 JSValue result = toJS<IDLNullable<IDLInterface<Element>>>(state, *thisObject.globalObject(), throwScope, impl.nextElementSibling());
3324 return result;
3325}
3326
3327EncodedJSValue jsElementNextElementSibling(ExecState* state, EncodedJSValue thisValue, PropertyName)
3328{
3329 return IDLAttribute<JSElement>::get<jsElementNextElementSiblingGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "nextElementSibling");
3330}
3331
3332static inline JSValue jsElementChildrenGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3333{
3334 UNUSED_PARAM(throwScope);
3335 UNUSED_PARAM(state);
3336 auto& impl = thisObject.wrapped();
3337 JSValue result = toJS<IDLInterface<HTMLCollection>>(state, *thisObject.globalObject(), throwScope, impl.children());
3338 return result;
3339}
3340
3341EncodedJSValue jsElementChildren(ExecState* state, EncodedJSValue thisValue, PropertyName)
3342{
3343 return IDLAttribute<JSElement>::get<jsElementChildrenGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "children");
3344}
3345
3346static inline JSValue jsElementFirstElementChildGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3347{
3348 UNUSED_PARAM(throwScope);
3349 UNUSED_PARAM(state);
3350 auto& impl = thisObject.wrapped();
3351 JSValue result = toJS<IDLNullable<IDLInterface<Element>>>(state, *thisObject.globalObject(), throwScope, impl.firstElementChild());
3352 return result;
3353}
3354
3355EncodedJSValue jsElementFirstElementChild(ExecState* state, EncodedJSValue thisValue, PropertyName)
3356{
3357 return IDLAttribute<JSElement>::get<jsElementFirstElementChildGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "firstElementChild");
3358}
3359
3360static inline JSValue jsElementLastElementChildGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3361{
3362 UNUSED_PARAM(throwScope);
3363 UNUSED_PARAM(state);
3364 auto& impl = thisObject.wrapped();
3365 JSValue result = toJS<IDLNullable<IDLInterface<Element>>>(state, *thisObject.globalObject(), throwScope, impl.lastElementChild());
3366 return result;
3367}
3368
3369EncodedJSValue jsElementLastElementChild(ExecState* state, EncodedJSValue thisValue, PropertyName)
3370{
3371 return IDLAttribute<JSElement>::get<jsElementLastElementChildGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "lastElementChild");
3372}
3373
3374static inline JSValue jsElementChildElementCountGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3375{
3376 UNUSED_PARAM(throwScope);
3377 UNUSED_PARAM(state);
3378 auto& impl = thisObject.wrapped();
3379 JSValue result = toJS<IDLUnsignedLong>(state, throwScope, impl.childElementCount());
3380 return result;
3381}
3382
3383EncodedJSValue jsElementChildElementCount(ExecState* state, EncodedJSValue thisValue, PropertyName)
3384{
3385 return IDLAttribute<JSElement>::get<jsElementChildElementCountGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "childElementCount");
3386}
3387
3388static inline JSValue jsElementAssignedSlotGetter(ExecState& state, JSElement& thisObject, ThrowScope& throwScope)
3389{
3390 UNUSED_PARAM(throwScope);
3391 UNUSED_PARAM(state);
3392 auto& impl = thisObject.wrapped();
3393 JSValue result = toJS<IDLNullable<IDLInterface<HTMLSlotElement>>>(state, *thisObject.globalObject(), throwScope, impl.assignedSlotForBindings());
3394 return result;
3395}
3396
3397EncodedJSValue jsElementAssignedSlot(ExecState* state, EncodedJSValue thisValue, PropertyName)
3398{
3399 return IDLAttribute<JSElement>::get<jsElementAssignedSlotGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "assignedSlot");
3400}
3401
3402static inline JSC::EncodedJSValue jsElementPrototypeFunctionHasAttributesBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3403{
3404 UNUSED_PARAM(state);
3405 UNUSED_PARAM(throwScope);
3406 auto& impl = castedThis->wrapped();
3407 return JSValue::encode(toJS<IDLBoolean>(impl.hasAttributes()));
3408}
3409
3410EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionHasAttributes(ExecState* state)
3411{
3412 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionHasAttributesBody>(*state, "hasAttributes");
3413}
3414
3415JSC::EncodedJSValue JIT_OPERATION unsafeJsElementPrototypeFunctionHasAttributes(JSC::ExecState* state, JSElement* castedThis)
3416{
3417 UNUSED_PARAM(state);
3418 VM& vm = state->vm();
3419 JSC::NativeCallFrameTracer tracer(&vm, state);
3420 auto throwScope = DECLARE_THROW_SCOPE(vm);
3421 UNUSED_PARAM(throwScope);
3422 auto& impl = castedThis->wrapped();
3423 return JSValue::encode(toJS<IDLBoolean>(impl.hasAttributes()));
3424}
3425
3426static inline JSC::EncodedJSValue jsElementPrototypeFunctionGetAttributeNamesBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3427{
3428 UNUSED_PARAM(state);
3429 UNUSED_PARAM(throwScope);
3430 auto& impl = castedThis->wrapped();
3431 return JSValue::encode(toJS<IDLSequence<IDLDOMString>>(*state, *castedThis->globalObject(), impl.getAttributeNames()));
3432}
3433
3434EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetAttributeNames(ExecState* state)
3435{
3436 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionGetAttributeNamesBody>(*state, "getAttributeNames");
3437}
3438
3439static inline JSC::EncodedJSValue jsElementPrototypeFunctionGetAttributeBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3440{
3441 UNUSED_PARAM(state);
3442 UNUSED_PARAM(throwScope);
3443 auto& impl = castedThis->wrapped();
3444 if (UNLIKELY(state->argumentCount() < 1))
3445 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3446 auto qualifiedName = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3447 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3448 return JSValue::encode(toJS<IDLNullable<IDLDOMString>>(*state, impl.getAttribute(WTFMove(qualifiedName))));
3449}
3450
3451EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetAttribute(ExecState* state)
3452{
3453 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionGetAttributeBody>(*state, "getAttribute");
3454}
3455
3456JSC::EncodedJSValue JIT_OPERATION unsafeJsElementPrototypeFunctionGetAttribute(JSC::ExecState* state, JSElement* castedThis, DOMJIT::IDLJSArgumentType<IDLDOMString> encodedQualifiedName)
3457{
3458 UNUSED_PARAM(state);
3459 VM& vm = state->vm();
3460 JSC::NativeCallFrameTracer tracer(&vm, state);
3461 auto throwScope = DECLARE_THROW_SCOPE(vm);
3462 UNUSED_PARAM(throwScope);
3463 auto& impl = castedThis->wrapped();
3464 auto qualifiedName = DOMJIT::DirectConverter<IDLDOMString>::directConvert(*state, encodedQualifiedName);
3465 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3466 return JSValue::encode(toJS<IDLNullable<IDLDOMString>>(*state, impl.getAttribute(WTFMove(qualifiedName))));
3467}
3468
3469static inline JSC::EncodedJSValue jsElementPrototypeFunctionGetAttributeNSBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3470{
3471 UNUSED_PARAM(state);
3472 UNUSED_PARAM(throwScope);
3473 auto& impl = castedThis->wrapped();
3474 if (UNLIKELY(state->argumentCount() < 2))
3475 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3476 auto namespaceURI = convert<IDLNullable<IDLDOMString>>(*state, state->uncheckedArgument(0));
3477 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3478 auto localName = convert<IDLDOMString>(*state, state->uncheckedArgument(1));
3479 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3480 return JSValue::encode(toJS<IDLNullable<IDLDOMString>>(*state, impl.getAttributeNS(WTFMove(namespaceURI), WTFMove(localName))));
3481}
3482
3483EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetAttributeNS(ExecState* state)
3484{
3485 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionGetAttributeNSBody>(*state, "getAttributeNS");
3486}
3487
3488static inline JSC::EncodedJSValue jsElementPrototypeFunctionSetAttributeBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3489{
3490 UNUSED_PARAM(state);
3491 UNUSED_PARAM(throwScope);
3492 CustomElementReactionStack customElementReactionStack(*state);
3493 auto& impl = castedThis->wrapped();
3494 if (UNLIKELY(state->argumentCount() < 2))
3495 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3496 auto qualifiedName = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3497 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3498 auto value = convert<IDLDOMString>(*state, state->uncheckedArgument(1));
3499 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3500 propagateException(*state, throwScope, impl.setAttribute(WTFMove(qualifiedName), WTFMove(value)));
3501 return JSValue::encode(jsUndefined());
3502}
3503
3504EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionSetAttribute(ExecState* state)
3505{
3506 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionSetAttributeBody>(*state, "setAttribute");
3507}
3508
3509static inline JSC::EncodedJSValue jsElementPrototypeFunctionSetAttributeNSBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3510{
3511 UNUSED_PARAM(state);
3512 UNUSED_PARAM(throwScope);
3513 CustomElementReactionStack customElementReactionStack(*state);
3514 auto& impl = castedThis->wrapped();
3515 if (UNLIKELY(state->argumentCount() < 3))
3516 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3517 auto namespaceURI = convert<IDLNullable<IDLDOMString>>(*state, state->uncheckedArgument(0));
3518 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3519 auto qualifiedName = convert<IDLDOMString>(*state, state->uncheckedArgument(1));
3520 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3521 auto value = convert<IDLDOMString>(*state, state->uncheckedArgument(2));
3522 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3523 propagateException(*state, throwScope, impl.setAttributeNS(WTFMove(namespaceURI), WTFMove(qualifiedName), WTFMove(value)));
3524 return JSValue::encode(jsUndefined());
3525}
3526
3527EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionSetAttributeNS(ExecState* state)
3528{
3529 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionSetAttributeNSBody>(*state, "setAttributeNS");
3530}
3531
3532static inline JSC::EncodedJSValue jsElementPrototypeFunctionRemoveAttributeBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3533{
3534 UNUSED_PARAM(state);
3535 UNUSED_PARAM(throwScope);
3536 CustomElementReactionStack customElementReactionStack(*state);
3537 auto& impl = castedThis->wrapped();
3538 if (UNLIKELY(state->argumentCount() < 1))
3539 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3540 auto qualifiedName = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3541 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3542 impl.removeAttribute(WTFMove(qualifiedName));
3543 return JSValue::encode(jsUndefined());
3544}
3545
3546EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionRemoveAttribute(ExecState* state)
3547{
3548 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionRemoveAttributeBody>(*state, "removeAttribute");
3549}
3550
3551static inline JSC::EncodedJSValue jsElementPrototypeFunctionRemoveAttributeNSBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3552{
3553 UNUSED_PARAM(state);
3554 UNUSED_PARAM(throwScope);
3555 CustomElementReactionStack customElementReactionStack(*state);
3556 auto& impl = castedThis->wrapped();
3557 if (UNLIKELY(state->argumentCount() < 2))
3558 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3559 auto namespaceURI = convert<IDLNullable<IDLDOMString>>(*state, state->uncheckedArgument(0));
3560 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3561 auto localName = convert<IDLDOMString>(*state, state->uncheckedArgument(1));
3562 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3563 impl.removeAttributeNS(WTFMove(namespaceURI), WTFMove(localName));
3564 return JSValue::encode(jsUndefined());
3565}
3566
3567EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionRemoveAttributeNS(ExecState* state)
3568{
3569 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionRemoveAttributeNSBody>(*state, "removeAttributeNS");
3570}
3571
3572static inline JSC::EncodedJSValue jsElementPrototypeFunctionToggleAttributeBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3573{
3574 UNUSED_PARAM(state);
3575 UNUSED_PARAM(throwScope);
3576 CustomElementReactionStack customElementReactionStack(*state);
3577 auto& impl = castedThis->wrapped();
3578 if (UNLIKELY(state->argumentCount() < 1))
3579 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3580 auto qualifiedName = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3581 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3582 auto force = state->argument(1).isUndefined() ? Optional<Converter<IDLBoolean>::ReturnType>() : Optional<Converter<IDLBoolean>::ReturnType>(convert<IDLBoolean>(*state, state->uncheckedArgument(1)));
3583 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3584 return JSValue::encode(toJS<IDLBoolean>(*state, throwScope, impl.toggleAttribute(WTFMove(qualifiedName), WTFMove(force))));
3585}
3586
3587EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionToggleAttribute(ExecState* state)
3588{
3589 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionToggleAttributeBody>(*state, "toggleAttribute");
3590}
3591
3592static inline JSC::EncodedJSValue jsElementPrototypeFunctionHasAttributeBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3593{
3594 UNUSED_PARAM(state);
3595 UNUSED_PARAM(throwScope);
3596 auto& impl = castedThis->wrapped();
3597 if (UNLIKELY(state->argumentCount() < 1))
3598 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3599 auto qualifiedName = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3600 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3601 return JSValue::encode(toJS<IDLBoolean>(impl.hasAttribute(WTFMove(qualifiedName))));
3602}
3603
3604EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionHasAttribute(ExecState* state)
3605{
3606 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionHasAttributeBody>(*state, "hasAttribute");
3607}
3608
3609static inline JSC::EncodedJSValue jsElementPrototypeFunctionHasAttributeNSBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3610{
3611 UNUSED_PARAM(state);
3612 UNUSED_PARAM(throwScope);
3613 auto& impl = castedThis->wrapped();
3614 if (UNLIKELY(state->argumentCount() < 2))
3615 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3616 auto namespaceURI = convert<IDLNullable<IDLDOMString>>(*state, state->uncheckedArgument(0));
3617 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3618 auto localName = convert<IDLDOMString>(*state, state->uncheckedArgument(1));
3619 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3620 return JSValue::encode(toJS<IDLBoolean>(impl.hasAttributeNS(WTFMove(namespaceURI), WTFMove(localName))));
3621}
3622
3623EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionHasAttributeNS(ExecState* state)
3624{
3625 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionHasAttributeNSBody>(*state, "hasAttributeNS");
3626}
3627
3628static inline JSC::EncodedJSValue jsElementPrototypeFunctionGetAttributeNodeBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3629{
3630 UNUSED_PARAM(state);
3631 UNUSED_PARAM(throwScope);
3632 auto& impl = castedThis->wrapped();
3633 if (UNLIKELY(state->argumentCount() < 1))
3634 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3635 auto qualifiedName = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3636 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3637 return JSValue::encode(toJS<IDLNullable<IDLInterface<Attr>>>(*state, *castedThis->globalObject(), impl.getAttributeNode(WTFMove(qualifiedName))));
3638}
3639
3640EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetAttributeNode(ExecState* state)
3641{
3642 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionGetAttributeNodeBody>(*state, "getAttributeNode");
3643}
3644
3645JSC::EncodedJSValue JIT_OPERATION unsafeJsElementPrototypeFunctionGetAttributeNode(JSC::ExecState* state, JSElement* castedThis, DOMJIT::IDLJSArgumentType<IDLDOMString> encodedQualifiedName)
3646{
3647 UNUSED_PARAM(state);
3648 VM& vm = state->vm();
3649 JSC::NativeCallFrameTracer tracer(&vm, state);
3650 auto throwScope = DECLARE_THROW_SCOPE(vm);
3651 UNUSED_PARAM(throwScope);
3652 auto& impl = castedThis->wrapped();
3653 auto qualifiedName = DOMJIT::DirectConverter<IDLDOMString>::directConvert(*state, encodedQualifiedName);
3654 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3655 return JSValue::encode(toJS<IDLNullable<IDLInterface<Attr>>>(*state, *castedThis->globalObject(), impl.getAttributeNode(WTFMove(qualifiedName))));
3656}
3657
3658static inline JSC::EncodedJSValue jsElementPrototypeFunctionGetAttributeNodeNSBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3659{
3660 UNUSED_PARAM(state);
3661 UNUSED_PARAM(throwScope);
3662 auto& impl = castedThis->wrapped();
3663 if (UNLIKELY(state->argumentCount() < 2))
3664 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3665 auto namespaceURI = convert<IDLNullable<IDLDOMString>>(*state, state->uncheckedArgument(0));
3666 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3667 auto localName = convert<IDLDOMString>(*state, state->uncheckedArgument(1));
3668 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3669 return JSValue::encode(toJS<IDLNullable<IDLInterface<Attr>>>(*state, *castedThis->globalObject(), impl.getAttributeNodeNS(WTFMove(namespaceURI), WTFMove(localName))));
3670}
3671
3672EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetAttributeNodeNS(ExecState* state)
3673{
3674 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionGetAttributeNodeNSBody>(*state, "getAttributeNodeNS");
3675}
3676
3677static inline JSC::EncodedJSValue jsElementPrototypeFunctionSetAttributeNodeBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3678{
3679 UNUSED_PARAM(state);
3680 UNUSED_PARAM(throwScope);
3681 CustomElementReactionStack customElementReactionStack(*state);
3682 auto& impl = castedThis->wrapped();
3683 if (UNLIKELY(state->argumentCount() < 1))
3684 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3685 auto attr = convert<IDLInterface<Attr>>(*state, state->uncheckedArgument(0), [](JSC::ExecState& state, JSC::ThrowScope& scope) { throwArgumentTypeError(state, scope, 0, "attr", "Element", "setAttributeNode", "Attr"); });
3686 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3687 return JSValue::encode(toJS<IDLNullable<IDLInterface<Attr>>>(*state, *castedThis->globalObject(), throwScope, impl.setAttributeNode(*attr)));
3688}
3689
3690EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionSetAttributeNode(ExecState* state)
3691{
3692 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionSetAttributeNodeBody>(*state, "setAttributeNode");
3693}
3694
3695static inline JSC::EncodedJSValue jsElementPrototypeFunctionSetAttributeNodeNSBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3696{
3697 UNUSED_PARAM(state);
3698 UNUSED_PARAM(throwScope);
3699 CustomElementReactionStack customElementReactionStack(*state);
3700 auto& impl = castedThis->wrapped();
3701 if (UNLIKELY(state->argumentCount() < 1))
3702 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3703 auto attr = convert<IDLInterface<Attr>>(*state, state->uncheckedArgument(0), [](JSC::ExecState& state, JSC::ThrowScope& scope) { throwArgumentTypeError(state, scope, 0, "attr", "Element", "setAttributeNodeNS", "Attr"); });
3704 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3705 return JSValue::encode(toJS<IDLNullable<IDLInterface<Attr>>>(*state, *castedThis->globalObject(), throwScope, impl.setAttributeNodeNS(*attr)));
3706}
3707
3708EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionSetAttributeNodeNS(ExecState* state)
3709{
3710 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionSetAttributeNodeNSBody>(*state, "setAttributeNodeNS");
3711}
3712
3713static inline JSC::EncodedJSValue jsElementPrototypeFunctionRemoveAttributeNodeBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3714{
3715 UNUSED_PARAM(state);
3716 UNUSED_PARAM(throwScope);
3717 CustomElementReactionStack customElementReactionStack(*state);
3718 auto& impl = castedThis->wrapped();
3719 if (UNLIKELY(state->argumentCount() < 1))
3720 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3721 auto attr = convert<IDLInterface<Attr>>(*state, state->uncheckedArgument(0), [](JSC::ExecState& state, JSC::ThrowScope& scope) { throwArgumentTypeError(state, scope, 0, "attr", "Element", "removeAttributeNode", "Attr"); });
3722 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3723 return JSValue::encode(toJS<IDLInterface<Attr>>(*state, *castedThis->globalObject(), throwScope, impl.removeAttributeNode(*attr)));
3724}
3725
3726EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionRemoveAttributeNode(ExecState* state)
3727{
3728 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionRemoveAttributeNodeBody>(*state, "removeAttributeNode");
3729}
3730
3731static inline JSC::EncodedJSValue jsElementPrototypeFunctionAttachShadowBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3732{
3733 UNUSED_PARAM(state);
3734 UNUSED_PARAM(throwScope);
3735 auto& impl = castedThis->wrapped();
3736 if (UNLIKELY(state->argumentCount() < 1))
3737 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3738 auto init = convert<IDLDictionary<Element::ShadowRootInit>>(*state, state->uncheckedArgument(0));
3739 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3740 return JSValue::encode(toJS<IDLInterface<ShadowRoot>>(*state, *castedThis->globalObject(), throwScope, impl.attachShadow(WTFMove(init))));
3741}
3742
3743EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionAttachShadow(ExecState* state)
3744{
3745 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionAttachShadowBody>(*state, "attachShadow");
3746}
3747
3748static inline JSC::EncodedJSValue jsElementPrototypeFunctionClosestBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3749{
3750 UNUSED_PARAM(state);
3751 UNUSED_PARAM(throwScope);
3752 auto& impl = castedThis->wrapped();
3753 if (UNLIKELY(state->argumentCount() < 1))
3754 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3755 auto selectors = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3756 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3757 return JSValue::encode(toJS<IDLNullable<IDLInterface<Element>>>(*state, *castedThis->globalObject(), throwScope, impl.closest(WTFMove(selectors))));
3758}
3759
3760EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionClosest(ExecState* state)
3761{
3762 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionClosestBody>(*state, "closest");
3763}
3764
3765static inline JSC::EncodedJSValue jsElementPrototypeFunctionMatchesBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3766{
3767 UNUSED_PARAM(state);
3768 UNUSED_PARAM(throwScope);
3769 auto& impl = castedThis->wrapped();
3770 if (UNLIKELY(state->argumentCount() < 1))
3771 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3772 auto selectors = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3773 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3774 return JSValue::encode(toJS<IDLBoolean>(*state, throwScope, impl.matches(WTFMove(selectors))));
3775}
3776
3777EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionMatches(ExecState* state)
3778{
3779 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionMatchesBody>(*state, "matches");
3780}
3781
3782static inline JSC::EncodedJSValue jsElementPrototypeFunctionWebkitMatchesSelectorBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3783{
3784 UNUSED_PARAM(state);
3785 UNUSED_PARAM(throwScope);
3786 auto& impl = castedThis->wrapped();
3787 if (UNLIKELY(state->argumentCount() < 1))
3788 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3789 auto selectors = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3790 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3791 return JSValue::encode(toJS<IDLBoolean>(*state, throwScope, impl.matches(WTFMove(selectors))));
3792}
3793
3794EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionWebkitMatchesSelector(ExecState* state)
3795{
3796 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionWebkitMatchesSelectorBody>(*state, "webkitMatchesSelector");
3797}
3798
3799static inline JSC::EncodedJSValue jsElementPrototypeFunctionGetElementsByTagNameBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3800{
3801 UNUSED_PARAM(state);
3802 UNUSED_PARAM(throwScope);
3803 auto& impl = castedThis->wrapped();
3804 if (UNLIKELY(state->argumentCount() < 1))
3805 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3806 auto qualifiedName = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3807 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3808 return JSValue::encode(toJS<IDLInterface<HTMLCollection>>(*state, *castedThis->globalObject(), impl.getElementsByTagName(WTFMove(qualifiedName))));
3809}
3810
3811EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetElementsByTagName(ExecState* state)
3812{
3813 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionGetElementsByTagNameBody>(*state, "getElementsByTagName");
3814}
3815
3816JSC::EncodedJSValue JIT_OPERATION unsafeJsElementPrototypeFunctionGetElementsByTagName(JSC::ExecState* state, JSElement* castedThis, DOMJIT::IDLJSArgumentType<IDLDOMString> encodedQualifiedName)
3817{
3818 UNUSED_PARAM(state);
3819 VM& vm = state->vm();
3820 JSC::NativeCallFrameTracer tracer(&vm, state);
3821 auto throwScope = DECLARE_THROW_SCOPE(vm);
3822 UNUSED_PARAM(throwScope);
3823 auto& impl = castedThis->wrapped();
3824 auto qualifiedName = DOMJIT::DirectConverter<IDLDOMString>::directConvert(*state, encodedQualifiedName);
3825 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3826 return JSValue::encode(toJS<IDLInterface<HTMLCollection>>(*state, *castedThis->globalObject(), impl.getElementsByTagName(WTFMove(qualifiedName))));
3827}
3828
3829static inline JSC::EncodedJSValue jsElementPrototypeFunctionGetElementsByTagNameNSBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3830{
3831 UNUSED_PARAM(state);
3832 UNUSED_PARAM(throwScope);
3833 auto& impl = castedThis->wrapped();
3834 if (UNLIKELY(state->argumentCount() < 2))
3835 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3836 auto namespaceURI = convert<IDLNullable<IDLDOMString>>(*state, state->uncheckedArgument(0));
3837 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3838 auto localName = convert<IDLDOMString>(*state, state->uncheckedArgument(1));
3839 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3840 return JSValue::encode(toJS<IDLInterface<HTMLCollection>>(*state, *castedThis->globalObject(), impl.getElementsByTagNameNS(WTFMove(namespaceURI), WTFMove(localName))));
3841}
3842
3843EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetElementsByTagNameNS(ExecState* state)
3844{
3845 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionGetElementsByTagNameNSBody>(*state, "getElementsByTagNameNS");
3846}
3847
3848static inline JSC::EncodedJSValue jsElementPrototypeFunctionGetElementsByClassNameBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3849{
3850 UNUSED_PARAM(state);
3851 UNUSED_PARAM(throwScope);
3852 auto& impl = castedThis->wrapped();
3853 if (UNLIKELY(state->argumentCount() < 1))
3854 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3855 auto name = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3856 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3857 return JSValue::encode(toJS<IDLInterface<HTMLCollection>>(*state, *castedThis->globalObject(), impl.getElementsByClassName(WTFMove(name))));
3858}
3859
3860EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetElementsByClassName(ExecState* state)
3861{
3862 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionGetElementsByClassNameBody>(*state, "getElementsByClassName");
3863}
3864
3865static inline JSC::EncodedJSValue jsElementPrototypeFunctionInsertAdjacentElementBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3866{
3867 UNUSED_PARAM(state);
3868 UNUSED_PARAM(throwScope);
3869 CustomElementReactionStack customElementReactionStack(*state);
3870 auto& impl = castedThis->wrapped();
3871 if (UNLIKELY(state->argumentCount() < 2))
3872 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3873 auto where = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3874 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3875 auto element = convert<IDLInterface<Element>>(*state, state->uncheckedArgument(1), [](JSC::ExecState& state, JSC::ThrowScope& scope) { throwArgumentTypeError(state, scope, 1, "element", "Element", "insertAdjacentElement", "Element"); });
3876 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3877 return JSValue::encode(toJS<IDLNullable<IDLInterface<Element>>>(*state, *castedThis->globalObject(), throwScope, impl.insertAdjacentElement(WTFMove(where), *element)));
3878}
3879
3880EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionInsertAdjacentElement(ExecState* state)
3881{
3882 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionInsertAdjacentElementBody>(*state, "insertAdjacentElement");
3883}
3884
3885static inline JSC::EncodedJSValue jsElementPrototypeFunctionInsertAdjacentTextBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3886{
3887 UNUSED_PARAM(state);
3888 UNUSED_PARAM(throwScope);
3889 auto& impl = castedThis->wrapped();
3890 if (UNLIKELY(state->argumentCount() < 2))
3891 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
3892 auto where = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
3893 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3894 auto data = convert<IDLDOMString>(*state, state->uncheckedArgument(1));
3895 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3896 propagateException(*state, throwScope, impl.insertAdjacentText(WTFMove(where), WTFMove(data)));
3897 return JSValue::encode(jsUndefined());
3898}
3899
3900EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionInsertAdjacentText(ExecState* state)
3901{
3902 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionInsertAdjacentTextBody>(*state, "insertAdjacentText");
3903}
3904
3905static inline JSC::EncodedJSValue jsElementPrototypeFunctionGetClientRectsBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3906{
3907 UNUSED_PARAM(state);
3908 UNUSED_PARAM(throwScope);
3909 auto& impl = castedThis->wrapped();
3910 return JSValue::encode(toJS<IDLInterface<DOMRectList>>(*state, *castedThis->globalObject(), impl.getClientRects()));
3911}
3912
3913EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetClientRects(ExecState* state)
3914{
3915 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionGetClientRectsBody>(*state, "getClientRects");
3916}
3917
3918static inline JSC::EncodedJSValue jsElementPrototypeFunctionGetBoundingClientRectBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3919{
3920 UNUSED_PARAM(state);
3921 UNUSED_PARAM(throwScope);
3922 auto& impl = castedThis->wrapped();
3923 return JSValue::encode(toJSNewlyCreated<IDLInterface<DOMRect>>(*state, *castedThis->globalObject(), impl.getBoundingClientRect()));
3924}
3925
3926EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetBoundingClientRect(ExecState* state)
3927{
3928 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionGetBoundingClientRectBody>(*state, "getBoundingClientRect");
3929}
3930
3931static inline JSC::EncodedJSValue jsElementPrototypeFunctionScrollIntoViewBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3932{
3933 UNUSED_PARAM(state);
3934 UNUSED_PARAM(throwScope);
3935 auto& impl = castedThis->wrapped();
3936 auto arg = state->argument(0).isUndefined() ? Optional<Converter<IDLUnion<IDLBoolean, IDLDictionary<ScrollIntoViewOptions>>>::ReturnType>() : Optional<Converter<IDLUnion<IDLBoolean, IDLDictionary<ScrollIntoViewOptions>>>::ReturnType>(convert<IDLUnion<IDLBoolean, IDLDictionary<ScrollIntoViewOptions>>>(*state, state->uncheckedArgument(0)));
3937 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3938 impl.scrollIntoView(WTFMove(arg));
3939 return JSValue::encode(jsUndefined());
3940}
3941
3942EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionScrollIntoView(ExecState* state)
3943{
3944 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionScrollIntoViewBody>(*state, "scrollIntoView");
3945}
3946
3947static inline JSC::EncodedJSValue jsElementPrototypeFunctionScroll1Body(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3948{
3949 UNUSED_PARAM(state);
3950 UNUSED_PARAM(throwScope);
3951 auto& impl = castedThis->wrapped();
3952 auto options = convert<IDLDictionary<ScrollToOptions>>(*state, state->argument(0));
3953 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3954 impl.scrollTo(WTFMove(options));
3955 return JSValue::encode(jsUndefined());
3956}
3957
3958static inline JSC::EncodedJSValue jsElementPrototypeFunctionScroll2Body(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3959{
3960 UNUSED_PARAM(state);
3961 UNUSED_PARAM(throwScope);
3962 auto& impl = castedThis->wrapped();
3963 auto x = convert<IDLUnrestrictedDouble>(*state, state->uncheckedArgument(0));
3964 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3965 auto y = convert<IDLUnrestrictedDouble>(*state, state->uncheckedArgument(1));
3966 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
3967 impl.scrollTo(WTFMove(x), WTFMove(y));
3968 return JSValue::encode(jsUndefined());
3969}
3970
3971static inline JSC::EncodedJSValue jsElementPrototypeFunctionScrollOverloadDispatcher(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3972{
3973 UNUSED_PARAM(state);
3974 UNUSED_PARAM(throwScope);
3975 VM& vm = state->vm();
3976 UNUSED_PARAM(vm);
3977 size_t argsCount = std::min<size_t>(2, state->argumentCount());
3978 if (argsCount == 0) {
3979 return jsElementPrototypeFunctionScroll1Body(state, castedThis, throwScope);
3980 }
3981 if (argsCount == 1) {
3982 return jsElementPrototypeFunctionScroll1Body(state, castedThis, throwScope);
3983 }
3984 if (argsCount == 2) {
3985 return jsElementPrototypeFunctionScroll2Body(state, castedThis, throwScope);
3986 }
3987 return throwVMTypeError(state, throwScope);
3988}
3989
3990EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionScroll(ExecState* state)
3991{
3992 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionScrollOverloadDispatcher>(*state, "scroll");
3993}
3994
3995static inline JSC::EncodedJSValue jsElementPrototypeFunctionScrollTo1Body(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
3996{
3997 UNUSED_PARAM(state);
3998 UNUSED_PARAM(throwScope);
3999 auto& impl = castedThis->wrapped();
4000 auto options = convert<IDLDictionary<ScrollToOptions>>(*state, state->argument(0));
4001 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4002 impl.scrollTo(WTFMove(options));
4003 return JSValue::encode(jsUndefined());
4004}
4005
4006static inline JSC::EncodedJSValue jsElementPrototypeFunctionScrollTo2Body(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4007{
4008 UNUSED_PARAM(state);
4009 UNUSED_PARAM(throwScope);
4010 auto& impl = castedThis->wrapped();
4011 auto x = convert<IDLUnrestrictedDouble>(*state, state->uncheckedArgument(0));
4012 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4013 auto y = convert<IDLUnrestrictedDouble>(*state, state->uncheckedArgument(1));
4014 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4015 impl.scrollTo(WTFMove(x), WTFMove(y));
4016 return JSValue::encode(jsUndefined());
4017}
4018
4019static inline JSC::EncodedJSValue jsElementPrototypeFunctionScrollToOverloadDispatcher(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4020{
4021 UNUSED_PARAM(state);
4022 UNUSED_PARAM(throwScope);
4023 VM& vm = state->vm();
4024 UNUSED_PARAM(vm);
4025 size_t argsCount = std::min<size_t>(2, state->argumentCount());
4026 if (argsCount == 0) {
4027 return jsElementPrototypeFunctionScrollTo1Body(state, castedThis, throwScope);
4028 }
4029 if (argsCount == 1) {
4030 return jsElementPrototypeFunctionScrollTo1Body(state, castedThis, throwScope);
4031 }
4032 if (argsCount == 2) {
4033 return jsElementPrototypeFunctionScrollTo2Body(state, castedThis, throwScope);
4034 }
4035 return throwVMTypeError(state, throwScope);
4036}
4037
4038EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionScrollTo(ExecState* state)
4039{
4040 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionScrollToOverloadDispatcher>(*state, "scrollTo");
4041}
4042
4043static inline JSC::EncodedJSValue jsElementPrototypeFunctionScrollBy1Body(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4044{
4045 UNUSED_PARAM(state);
4046 UNUSED_PARAM(throwScope);
4047 auto& impl = castedThis->wrapped();
4048 auto option = convert<IDLDictionary<ScrollToOptions>>(*state, state->argument(0));
4049 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4050 impl.scrollBy(WTFMove(option));
4051 return JSValue::encode(jsUndefined());
4052}
4053
4054static inline JSC::EncodedJSValue jsElementPrototypeFunctionScrollBy2Body(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4055{
4056 UNUSED_PARAM(state);
4057 UNUSED_PARAM(throwScope);
4058 auto& impl = castedThis->wrapped();
4059 auto x = convert<IDLUnrestrictedDouble>(*state, state->uncheckedArgument(0));
4060 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4061 auto y = convert<IDLUnrestrictedDouble>(*state, state->uncheckedArgument(1));
4062 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4063 impl.scrollBy(WTFMove(x), WTFMove(y));
4064 return JSValue::encode(jsUndefined());
4065}
4066
4067static inline JSC::EncodedJSValue jsElementPrototypeFunctionScrollByOverloadDispatcher(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4068{
4069 UNUSED_PARAM(state);
4070 UNUSED_PARAM(throwScope);
4071 VM& vm = state->vm();
4072 UNUSED_PARAM(vm);
4073 size_t argsCount = std::min<size_t>(2, state->argumentCount());
4074 if (argsCount == 0) {
4075 return jsElementPrototypeFunctionScrollBy1Body(state, castedThis, throwScope);
4076 }
4077 if (argsCount == 1) {
4078 return jsElementPrototypeFunctionScrollBy1Body(state, castedThis, throwScope);
4079 }
4080 if (argsCount == 2) {
4081 return jsElementPrototypeFunctionScrollBy2Body(state, castedThis, throwScope);
4082 }
4083 return throwVMTypeError(state, throwScope);
4084}
4085
4086EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionScrollBy(ExecState* state)
4087{
4088 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionScrollByOverloadDispatcher>(*state, "scrollBy");
4089}
4090
4091static inline JSC::EncodedJSValue jsElementPrototypeFunctionInsertAdjacentHTMLBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4092{
4093 UNUSED_PARAM(state);
4094 UNUSED_PARAM(throwScope);
4095 CustomElementReactionStack customElementReactionStack(*state);
4096 auto& impl = castedThis->wrapped();
4097 if (UNLIKELY(state->argumentCount() < 2))
4098 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
4099 auto position = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
4100 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4101 auto text = convert<IDLDOMString>(*state, state->uncheckedArgument(1));
4102 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4103 propagateException(*state, throwScope, impl.insertAdjacentHTML(WTFMove(position), WTFMove(text)));
4104 return JSValue::encode(jsUndefined());
4105}
4106
4107EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionInsertAdjacentHTML(ExecState* state)
4108{
4109 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionInsertAdjacentHTMLBody>(*state, "insertAdjacentHTML");
4110}
4111
4112#if ENABLE(FULLSCREEN_API)
4113static inline JSC::EncodedJSValue jsElementPrototypeFunctionWebkitRequestFullScreenBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4114{
4115 UNUSED_PARAM(state);
4116 UNUSED_PARAM(throwScope);
4117 auto& impl = castedThis->wrapped();
4118 impl.webkitRequestFullscreen();
4119 return JSValue::encode(jsUndefined());
4120}
4121
4122EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionWebkitRequestFullScreen(ExecState* state)
4123{
4124 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionWebkitRequestFullScreenBody>(*state, "webkitRequestFullScreen");
4125}
4126
4127#endif
4128
4129#if ENABLE(FULLSCREEN_API)
4130static inline JSC::EncodedJSValue jsElementPrototypeFunctionWebkitRequestFullscreenBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4131{
4132 UNUSED_PARAM(state);
4133 UNUSED_PARAM(throwScope);
4134 auto& impl = castedThis->wrapped();
4135 impl.webkitRequestFullscreen();
4136 return JSValue::encode(jsUndefined());
4137}
4138
4139EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionWebkitRequestFullscreen(ExecState* state)
4140{
4141 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionWebkitRequestFullscreenBody>(*state, "webkitRequestFullscreen");
4142}
4143
4144#endif
4145
4146#if ENABLE(POINTER_EVENTS)
4147static inline JSC::EncodedJSValue jsElementPrototypeFunctionSetPointerCaptureBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4148{
4149 UNUSED_PARAM(state);
4150 UNUSED_PARAM(throwScope);
4151 auto& impl = castedThis->wrapped();
4152 if (UNLIKELY(state->argumentCount() < 1))
4153 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
4154 auto pointerId = convert<IDLLong>(*state, state->uncheckedArgument(0));
4155 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4156 propagateException(*state, throwScope, impl.setPointerCapture(WTFMove(pointerId)));
4157 return JSValue::encode(jsUndefined());
4158}
4159
4160EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionSetPointerCapture(ExecState* state)
4161{
4162 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionSetPointerCaptureBody>(*state, "setPointerCapture");
4163}
4164
4165#endif
4166
4167#if ENABLE(POINTER_EVENTS)
4168static inline JSC::EncodedJSValue jsElementPrototypeFunctionReleasePointerCaptureBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4169{
4170 UNUSED_PARAM(state);
4171 UNUSED_PARAM(throwScope);
4172 auto& impl = castedThis->wrapped();
4173 if (UNLIKELY(state->argumentCount() < 1))
4174 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
4175 auto pointerId = convert<IDLLong>(*state, state->uncheckedArgument(0));
4176 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4177 propagateException(*state, throwScope, impl.releasePointerCapture(WTFMove(pointerId)));
4178 return JSValue::encode(jsUndefined());
4179}
4180
4181EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionReleasePointerCapture(ExecState* state)
4182{
4183 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionReleasePointerCaptureBody>(*state, "releasePointerCapture");
4184}
4185
4186#endif
4187
4188#if ENABLE(POINTER_EVENTS)
4189static inline JSC::EncodedJSValue jsElementPrototypeFunctionHasPointerCaptureBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4190{
4191 UNUSED_PARAM(state);
4192 UNUSED_PARAM(throwScope);
4193 auto& impl = castedThis->wrapped();
4194 if (UNLIKELY(state->argumentCount() < 1))
4195 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
4196 auto pointerId = convert<IDLLong>(*state, state->uncheckedArgument(0));
4197 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4198 return JSValue::encode(toJS<IDLBoolean>(impl.hasPointerCapture(WTFMove(pointerId))));
4199}
4200
4201EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionHasPointerCapture(ExecState* state)
4202{
4203 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionHasPointerCaptureBody>(*state, "hasPointerCapture");
4204}
4205
4206#endif
4207
4208#if ENABLE(POINTER_LOCK)
4209static inline JSC::EncodedJSValue jsElementPrototypeFunctionRequestPointerLockBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4210{
4211 UNUSED_PARAM(state);
4212 UNUSED_PARAM(throwScope);
4213 auto& impl = castedThis->wrapped();
4214 impl.requestPointerLock();
4215 return JSValue::encode(jsUndefined());
4216}
4217
4218EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionRequestPointerLock(ExecState* state)
4219{
4220 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionRequestPointerLockBody>(*state, "requestPointerLock");
4221}
4222
4223#endif
4224
4225static inline JSC::EncodedJSValue jsElementPrototypeFunctionScrollIntoViewIfNeededBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4226{
4227 UNUSED_PARAM(state);
4228 UNUSED_PARAM(throwScope);
4229 auto& impl = castedThis->wrapped();
4230 auto centerIfNeeded = state->argument(0).isUndefined() ? true : convert<IDLBoolean>(*state, state->uncheckedArgument(0));
4231 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4232 impl.scrollIntoViewIfNeeded(WTFMove(centerIfNeeded));
4233 return JSValue::encode(jsUndefined());
4234}
4235
4236EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionScrollIntoViewIfNeeded(ExecState* state)
4237{
4238 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionScrollIntoViewIfNeededBody>(*state, "scrollIntoViewIfNeeded");
4239}
4240
4241static inline JSC::EncodedJSValue jsElementPrototypeFunctionAnimateBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4242{
4243 UNUSED_PARAM(state);
4244 UNUSED_PARAM(throwScope);
4245 auto& impl = castedThis->wrapped();
4246 if (UNLIKELY(state->argumentCount() < 1))
4247 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
4248 auto keyframes = convert<IDLNullable<IDLObject>>(*state, state->uncheckedArgument(0));
4249 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4250 auto options = state->argument(1).isUndefined() ? Optional<Converter<IDLUnion<IDLUnrestrictedDouble, IDLDictionary<KeyframeAnimationOptions>>>::ReturnType>() : Optional<Converter<IDLUnion<IDLUnrestrictedDouble, IDLDictionary<KeyframeAnimationOptions>>>::ReturnType>(convert<IDLUnion<IDLUnrestrictedDouble, IDLDictionary<KeyframeAnimationOptions>>>(*state, state->uncheckedArgument(1)));
4251 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4252 return JSValue::encode(toJS<IDLInterface<WebAnimation>>(*state, *castedThis->globalObject(), throwScope, impl.animate(*state, WTFMove(keyframes), WTFMove(options))));
4253}
4254
4255EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionAnimate(ExecState* state)
4256{
4257 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionAnimateBody>(*state, "animate");
4258}
4259
4260static inline JSC::EncodedJSValue jsElementPrototypeFunctionGetAnimationsBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4261{
4262 UNUSED_PARAM(state);
4263 UNUSED_PARAM(throwScope);
4264 auto& impl = castedThis->wrapped();
4265 return JSValue::encode(toJS<IDLSequence<IDLInterface<WebAnimation>>>(*state, *castedThis->globalObject(), impl.getAnimations()));
4266}
4267
4268EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionGetAnimations(ExecState* state)
4269{
4270 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionGetAnimationsBody>(*state, "getAnimations");
4271}
4272
4273static inline JSC::EncodedJSValue jsElementPrototypeFunctionBeforeBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4274{
4275 UNUSED_PARAM(state);
4276 UNUSED_PARAM(throwScope);
4277 CustomElementReactionStack customElementReactionStack(*state);
4278 auto& impl = castedThis->wrapped();
4279 auto nodes = convertVariadicArguments<IDLUnion<IDLInterface<Node>, IDLDOMString>>(*state, 0);
4280 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4281 propagateException(*state, throwScope, impl.before(WTFMove(nodes)));
4282 return JSValue::encode(jsUndefined());
4283}
4284
4285EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionBefore(ExecState* state)
4286{
4287 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionBeforeBody>(*state, "before");
4288}
4289
4290static inline JSC::EncodedJSValue jsElementPrototypeFunctionAfterBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4291{
4292 UNUSED_PARAM(state);
4293 UNUSED_PARAM(throwScope);
4294 CustomElementReactionStack customElementReactionStack(*state);
4295 auto& impl = castedThis->wrapped();
4296 auto nodes = convertVariadicArguments<IDLUnion<IDLInterface<Node>, IDLDOMString>>(*state, 0);
4297 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4298 propagateException(*state, throwScope, impl.after(WTFMove(nodes)));
4299 return JSValue::encode(jsUndefined());
4300}
4301
4302EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionAfter(ExecState* state)
4303{
4304 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionAfterBody>(*state, "after");
4305}
4306
4307static inline JSC::EncodedJSValue jsElementPrototypeFunctionReplaceWithBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4308{
4309 UNUSED_PARAM(state);
4310 UNUSED_PARAM(throwScope);
4311 CustomElementReactionStack customElementReactionStack(*state);
4312 auto& impl = castedThis->wrapped();
4313 auto nodes = convertVariadicArguments<IDLUnion<IDLInterface<Node>, IDLDOMString>>(*state, 0);
4314 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4315 propagateException(*state, throwScope, impl.replaceWith(WTFMove(nodes)));
4316 return JSValue::encode(jsUndefined());
4317}
4318
4319EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionReplaceWith(ExecState* state)
4320{
4321 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionReplaceWithBody>(*state, "replaceWith");
4322}
4323
4324static inline JSC::EncodedJSValue jsElementPrototypeFunctionRemoveBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4325{
4326 UNUSED_PARAM(state);
4327 UNUSED_PARAM(throwScope);
4328 CustomElementReactionStack customElementReactionStack(*state);
4329 auto& impl = castedThis->wrapped();
4330 propagateException(*state, throwScope, impl.remove());
4331 return JSValue::encode(jsUndefined());
4332}
4333
4334EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionRemove(ExecState* state)
4335{
4336 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionRemoveBody>(*state, "remove");
4337}
4338
4339static inline JSC::EncodedJSValue jsElementPrototypeFunctionPrependBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4340{
4341 UNUSED_PARAM(state);
4342 UNUSED_PARAM(throwScope);
4343 CustomElementReactionStack customElementReactionStack(*state);
4344 auto& impl = castedThis->wrapped();
4345 auto nodes = convertVariadicArguments<IDLUnion<IDLInterface<Node>, IDLDOMString>>(*state, 0);
4346 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4347 propagateException(*state, throwScope, impl.prepend(WTFMove(nodes)));
4348 return JSValue::encode(jsUndefined());
4349}
4350
4351EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionPrepend(ExecState* state)
4352{
4353 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionPrependBody>(*state, "prepend");
4354}
4355
4356static inline JSC::EncodedJSValue jsElementPrototypeFunctionAppendBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4357{
4358 UNUSED_PARAM(state);
4359 UNUSED_PARAM(throwScope);
4360 CustomElementReactionStack customElementReactionStack(*state);
4361 auto& impl = castedThis->wrapped();
4362 auto nodes = convertVariadicArguments<IDLUnion<IDLInterface<Node>, IDLDOMString>>(*state, 0);
4363 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4364 propagateException(*state, throwScope, impl.append(WTFMove(nodes)));
4365 return JSValue::encode(jsUndefined());
4366}
4367
4368EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionAppend(ExecState* state)
4369{
4370 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionAppendBody>(*state, "append");
4371}
4372
4373static inline JSC::EncodedJSValue jsElementPrototypeFunctionQuerySelectorBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4374{
4375 UNUSED_PARAM(state);
4376 UNUSED_PARAM(throwScope);
4377 auto& impl = castedThis->wrapped();
4378 if (UNLIKELY(state->argumentCount() < 1))
4379 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
4380 auto selectors = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
4381 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4382 return JSValue::encode(toJS<IDLNullable<IDLInterface<Element>>>(*state, *castedThis->globalObject(), throwScope, impl.querySelector(WTFMove(selectors))));
4383}
4384
4385EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionQuerySelector(ExecState* state)
4386{
4387 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionQuerySelectorBody>(*state, "querySelector");
4388}
4389
4390static inline JSC::EncodedJSValue jsElementPrototypeFunctionQuerySelectorAllBody(JSC::ExecState* state, typename IDLOperation<JSElement>::ClassParameter castedThis, JSC::ThrowScope& throwScope)
4391{
4392 UNUSED_PARAM(state);
4393 UNUSED_PARAM(throwScope);
4394 auto& impl = castedThis->wrapped();
4395 if (UNLIKELY(state->argumentCount() < 1))
4396 return throwVMError(state, throwScope, createNotEnoughArgumentsError(state));
4397 auto selectors = convert<IDLDOMString>(*state, state->uncheckedArgument(0));
4398 RETURN_IF_EXCEPTION(throwScope, encodedJSValue());
4399 return JSValue::encode(toJSNewlyCreated<IDLInterface<NodeList>>(*state, *castedThis->globalObject(), throwScope, impl.querySelectorAll(WTFMove(selectors))));
4400}
4401
4402EncodedJSValue JSC_HOST_CALL jsElementPrototypeFunctionQuerySelectorAll(ExecState* state)
4403{
4404 return IDLOperation<JSElement>::call<jsElementPrototypeFunctionQuerySelectorAllBody>(*state, "querySelectorAll");
4405}
4406
4407void JSElement::heapSnapshot(JSCell* cell, HeapSnapshotBuilder& builder)
4408{
4409 auto* thisObject = jsCast<JSElement*>(cell);
4410 builder.setWrappedObjectForCell(cell, &thisObject->wrapped());
4411 if (thisObject->scriptExecutionContext())
4412 builder.setLabelForCell(cell, "url " + thisObject->scriptExecutionContext()->url().string());
4413 Base::heapSnapshot(cell, builder);
4414}
4415
4416Element* JSElement::toWrapped(JSC::VM& vm, JSC::JSValue value)
4417{
4418 if (auto* wrapper = jsDynamicCast<JSElement*>(vm, value))
4419 return &wrapper->wrapped();
4420 return nullptr;
4421}
4422
4423}
4424