| /* |
| * THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT. |
| * |
| * This file was generated by the dom/make_names.pl script. |
| * |
| * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2013 Apple Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * |
| * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY |
| * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR |
| * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
| * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| #include "config.h" |
| #include "JSHTMLElementWrapperFactory.h" |
| |
| #include "JSHTMLAnchorElement.h" |
| #include "JSHTMLAppletElement.h" |
| #include "JSHTMLAreaElement.h" |
| #include "JSHTMLBaseElement.h" |
| #include "JSHTMLUnknownElement.h" |
| #include "JSHTMLQuoteElement.h" |
| #include "JSHTMLBodyElement.h" |
| #include "JSHTMLBRElement.h" |
| #include "JSHTMLButtonElement.h" |
| #include "JSHTMLCanvasElement.h" |
| #include "JSHTMLTableCaptionElement.h" |
| #include "JSHTMLTableColElement.h" |
| #include "JSHTMLDataElement.h" |
| #include "JSHTMLModElement.h" |
| #include "JSHTMLDirectoryElement.h" |
| #include "JSHTMLDivElement.h" |
| #include "JSHTMLDListElement.h" |
| #include "JSHTMLEmbedElement.h" |
| #include "JSHTMLFieldSetElement.h" |
| #include "JSHTMLFontElement.h" |
| #include "JSHTMLFormElement.h" |
| #include "JSHTMLFrameElement.h" |
| #include "JSHTMLFrameSetElement.h" |
| #include "JSHTMLHeadingElement.h" |
| #include "JSHTMLHeadElement.h" |
| #include "JSHTMLHRElement.h" |
| #include "JSHTMLHtmlElement.h" |
| #include "JSHTMLIFrameElement.h" |
| #include "JSHTMLImageElement.h" |
| #include "JSHTMLInputElement.h" |
| #include "JSHTMLKeygenElement.h" |
| #include "JSHTMLLabelElement.h" |
| #include "JSHTMLLegendElement.h" |
| #include "JSHTMLLIElement.h" |
| #include "JSHTMLLinkElement.h" |
| #include "JSHTMLPreElement.h" |
| #include "JSHTMLMapElement.h" |
| #include "JSHTMLMarqueeElement.h" |
| #include "JSHTMLMenuElement.h" |
| #include "JSHTMLMetaElement.h" |
| #include "JSHTMLObjectElement.h" |
| #include "JSHTMLOListElement.h" |
| #include "JSHTMLOptGroupElement.h" |
| #include "JSHTMLOptionElement.h" |
| #include "JSHTMLOutputElement.h" |
| #include "JSHTMLParagraphElement.h" |
| #include "JSHTMLParamElement.h" |
| #include "JSHTMLPictureElement.h" |
| #include "JSHTMLProgressElement.h" |
| #include "JSHTMLScriptElement.h" |
| #include "JSHTMLSelectElement.h" |
| #include "JSHTMLSlotElement.h" |
| #include "JSHTMLSourceElement.h" |
| #include "JSHTMLSpanElement.h" |
| #include "JSHTMLStyleElement.h" |
| #include "JSHTMLTableElement.h" |
| #include "JSHTMLTableSectionElement.h" |
| #include "JSHTMLTableCellElement.h" |
| #include "JSHTMLTemplateElement.h" |
| #include "JSHTMLTextAreaElement.h" |
| #include "JSHTMLTimeElement.h" |
| #include "JSHTMLTitleElement.h" |
| #include "JSHTMLTableRowElement.h" |
| #include "JSHTMLUListElement.h" |
| #include "JSHTMLUnknownElement.h" |
| #include "HTMLAnchorElement.h" |
| #include "HTMLElement.h" |
| #include "HTMLAppletElement.h" |
| #include "HTMLAreaElement.h" |
| #include "HTMLBaseElement.h" |
| #include "HTMLBDIElement.h" |
| #include "HTMLUnknownElement.h" |
| #include "HTMLQuoteElement.h" |
| #include "HTMLBodyElement.h" |
| #include "HTMLBRElement.h" |
| #include "HTMLButtonElement.h" |
| #include "HTMLCanvasElement.h" |
| #include "HTMLTableCaptionElement.h" |
| #include "HTMLTableColElement.h" |
| #include "HTMLDataElement.h" |
| #include "HTMLModElement.h" |
| #include "HTMLDirectoryElement.h" |
| #include "HTMLDivElement.h" |
| #include "HTMLDListElement.h" |
| #include "HTMLEmbedElement.h" |
| #include "HTMLFieldSetElement.h" |
| #include "HTMLFontElement.h" |
| #include "HTMLFormElement.h" |
| #include "HTMLFrameElement.h" |
| #include "HTMLFrameSetElement.h" |
| #include "HTMLHeadingElement.h" |
| #include "HTMLHeadElement.h" |
| #include "HTMLHRElement.h" |
| #include "HTMLHtmlElement.h" |
| #include "HTMLIFrameElement.h" |
| #include "HTMLImageElement.h" |
| #include "HTMLInputElement.h" |
| #include "HTMLKeygenElement.h" |
| #include "HTMLLabelElement.h" |
| #include "HTMLLegendElement.h" |
| #include "HTMLLIElement.h" |
| #include "HTMLLinkElement.h" |
| #include "HTMLPreElement.h" |
| #include "HTMLMapElement.h" |
| #include "HTMLMarqueeElement.h" |
| #include "HTMLMenuElement.h" |
| #include "HTMLMetaElement.h" |
| #include "HTMLObjectElement.h" |
| #include "HTMLOListElement.h" |
| #include "HTMLOptGroupElement.h" |
| #include "HTMLOptionElement.h" |
| #include "HTMLOutputElement.h" |
| #include "HTMLParagraphElement.h" |
| #include "HTMLParamElement.h" |
| #include "HTMLPictureElement.h" |
| #include "HTMLProgressElement.h" |
| #include "RubyTextElement.h" |
| #include "RubyElement.h" |
| #include "HTMLScriptElement.h" |
| #include "HTMLSelectElement.h" |
| #include "HTMLSlotElement.h" |
| #include "HTMLSourceElement.h" |
| #include "HTMLSpanElement.h" |
| #include "HTMLStyleElement.h" |
| #include "HTMLTableElement.h" |
| #include "HTMLTableSectionElement.h" |
| #include "HTMLTableCellElement.h" |
| #include "HTMLTemplateElement.h" |
| #include "HTMLTextAreaElement.h" |
| #include "HTMLTimeElement.h" |
| #include "HTMLTitleElement.h" |
| #include "HTMLTableRowElement.h" |
| #include "HTMLUListElement.h" |
| #include "HTMLWBRElement.h" |
| #include "HTMLUnknownElement.h" |
| |
| #include "HTMLNames.h" |
| |
| #include "Document.h" |
| #include "RuntimeEnabledFeatures.h" |
| #include "Settings.h" |
| #include <wtf/NeverDestroyed.h> |
| #include <wtf/StdLibExtras.h> |
| |
| #if ENABLE(ATTACHMENT_ELEMENT) |
| #include "HTMLAttachmentElement.h" |
| #include "JSHTMLAttachmentElement.h" |
| #endif |
| |
| #if ENABLE(DATALIST_ELEMENT) |
| #include "HTMLDataListElement.h" |
| #include "JSHTMLDataListElement.h" |
| #endif |
| |
| #if ENABLE(DETAILS_ELEMENT) |
| #include "HTMLDetailsElement.h" |
| #include "HTMLSummaryElement.h" |
| #include "JSHTMLDetailsElement.h" |
| #endif |
| |
| #if ENABLE(METER_ELEMENT) |
| #include "HTMLMeterElement.h" |
| #include "JSHTMLMeterElement.h" |
| #endif |
| |
| #if ENABLE(VIDEO) |
| #include "HTMLAudioElement.h" |
| #include "HTMLVideoElement.h" |
| #include "JSHTMLAudioElement.h" |
| #include "JSHTMLVideoElement.h" |
| #endif |
| |
| #if ENABLE(VIDEO_TRACK) |
| #include "HTMLTrackElement.h" |
| #include "JSHTMLTrackElement.h" |
| #endif |
| |
| using namespace JSC; |
| |
| namespace WebCore { |
| |
| using namespace HTMLNames; |
| |
| typedef JSDOMObject* (*CreateHTMLElementWrapperFunction)(JSDOMGlobalObject*, Ref<HTMLElement>&&); |
| |
| static JSDOMObject* createHTMLAnchorElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLAnchorElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLAppletElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLAppletElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLAreaElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLAreaElement>(globalObject, WTFMove(element)); |
| } |
| |
| #if ENABLE(ATTACHMENT_ELEMENT) |
| |
| static JSDOMObject* createHTMLAttachmentElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| if (element->isHTMLUnknownElement()) |
| return createWrapper<HTMLUnknownElement>(globalObject, WTFMove(element)); |
| return createWrapper<HTMLAttachmentElement>(globalObject, WTFMove(element)); |
| } |
| |
| #endif |
| |
| #if ENABLE(VIDEO) |
| |
| static JSDOMObject* createHTMLAudioElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| if (element->isHTMLUnknownElement()) |
| return createWrapper<HTMLUnknownElement>(globalObject, WTFMove(element)); |
| return createWrapper<HTMLAudioElement>(globalObject, WTFMove(element)); |
| } |
| |
| #endif |
| |
| static JSDOMObject* createHTMLBaseElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLBaseElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLUnknownElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLUnknownElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLQuoteElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLQuoteElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLBodyElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLBodyElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLBRElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLBRElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLButtonElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLButtonElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLCanvasElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLCanvasElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLTableCaptionElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLTableCaptionElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLTableColElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLTableColElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLDataElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLDataElement>(globalObject, WTFMove(element)); |
| } |
| |
| #if ENABLE(DATALIST_ELEMENT) |
| |
| static JSDOMObject* createHTMLDataListElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLDataListElement>(globalObject, WTFMove(element)); |
| } |
| |
| #endif |
| |
| static JSDOMObject* createHTMLModElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLModElement>(globalObject, WTFMove(element)); |
| } |
| |
| #if ENABLE(DETAILS_ELEMENT) |
| |
| static JSDOMObject* createHTMLDetailsElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLDetailsElement>(globalObject, WTFMove(element)); |
| } |
| |
| #endif |
| |
| static JSDOMObject* createHTMLDirectoryElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLDirectoryElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLDivElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLDivElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLDListElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLDListElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLEmbedElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLEmbedElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLFieldSetElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLFieldSetElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLFontElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLFontElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLFormElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLFormElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLFrameElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLFrameElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLFrameSetElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLFrameSetElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLHeadingElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLHeadingElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLHeadElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLHeadElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLHRElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLHRElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLHtmlElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLHtmlElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLIFrameElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLIFrameElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLImageElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLImageElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLInputElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLInputElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLKeygenElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLKeygenElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLLabelElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLLabelElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLLegendElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLLegendElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLLIElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLLIElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLLinkElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLLinkElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLPreElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLPreElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLMapElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLMapElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLMarqueeElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLMarqueeElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLMenuElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLMenuElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLMetaElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLMetaElement>(globalObject, WTFMove(element)); |
| } |
| |
| #if ENABLE(METER_ELEMENT) |
| |
| static JSDOMObject* createHTMLMeterElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLMeterElement>(globalObject, WTFMove(element)); |
| } |
| |
| #endif |
| |
| static JSDOMObject* createHTMLObjectElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLObjectElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLOListElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLOListElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLOptGroupElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLOptGroupElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLOptionElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLOptionElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLOutputElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLOutputElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLParagraphElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLParagraphElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLParamElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLParamElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLPictureElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLPictureElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLProgressElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLProgressElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLScriptElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLScriptElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLSelectElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLSelectElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLSlotElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLSlotElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLSourceElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLSourceElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLSpanElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLSpanElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLStyleElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLStyleElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLTableElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLTableElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLTableSectionElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLTableSectionElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLTableCellElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLTableCellElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLTemplateElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLTemplateElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLTextAreaElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLTextAreaElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLTimeElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLTimeElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLTitleElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLTitleElement>(globalObject, WTFMove(element)); |
| } |
| |
| static JSDOMObject* createHTMLTableRowElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLTableRowElement>(globalObject, WTFMove(element)); |
| } |
| |
| #if ENABLE(VIDEO_TRACK) |
| |
| static JSDOMObject* createHTMLTrackElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| if (element->isHTMLUnknownElement()) |
| return createWrapper<HTMLUnknownElement>(globalObject, WTFMove(element)); |
| return createWrapper<HTMLTrackElement>(globalObject, WTFMove(element)); |
| } |
| |
| #endif |
| |
| static JSDOMObject* createHTMLUListElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| return createWrapper<HTMLUListElement>(globalObject, WTFMove(element)); |
| } |
| |
| #if ENABLE(VIDEO) |
| |
| static JSDOMObject* createHTMLVideoElementWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| if (element->isHTMLUnknownElement()) |
| return createWrapper<HTMLUnknownElement>(globalObject, WTFMove(element)); |
| return createWrapper<HTMLVideoElement>(globalObject, WTFMove(element)); |
| } |
| |
| #endif |
| |
| |
| static NEVER_INLINE void populateHTMLWrapperMap(HashMap<AtomicStringImpl*, CreateHTMLElementWrapperFunction>& map) |
| { |
| struct TableEntry { |
| const QualifiedName& name; |
| CreateHTMLElementWrapperFunction function; |
| }; |
| |
| static const TableEntry table[] = { |
| { aTag, createHTMLAnchorElementWrapper }, |
| { abbrTag, createHTMLElementWrapper }, |
| { acronymTag, createHTMLElementWrapper }, |
| { addressTag, createHTMLElementWrapper }, |
| { appletTag, createHTMLAppletElementWrapper }, |
| { areaTag, createHTMLAreaElementWrapper }, |
| { articleTag, createHTMLElementWrapper }, |
| { asideTag, createHTMLElementWrapper }, |
| #if ENABLE(ATTACHMENT_ELEMENT) |
| { attachmentTag, createHTMLAttachmentElementWrapper }, |
| #endif |
| #if ENABLE(VIDEO) |
| { audioTag, createHTMLAudioElementWrapper }, |
| #endif |
| { bTag, createHTMLElementWrapper }, |
| { baseTag, createHTMLBaseElementWrapper }, |
| { basefontTag, createHTMLElementWrapper }, |
| { bdiTag, createHTMLElementWrapper }, |
| { bdoTag, createHTMLElementWrapper }, |
| { bgsoundTag, createHTMLUnknownElementWrapper }, |
| { bigTag, createHTMLElementWrapper }, |
| { blockquoteTag, createHTMLQuoteElementWrapper }, |
| { bodyTag, createHTMLBodyElementWrapper }, |
| { brTag, createHTMLBRElementWrapper }, |
| { buttonTag, createHTMLButtonElementWrapper }, |
| { canvasTag, createHTMLCanvasElementWrapper }, |
| { captionTag, createHTMLTableCaptionElementWrapper }, |
| { centerTag, createHTMLElementWrapper }, |
| { citeTag, createHTMLElementWrapper }, |
| { codeTag, createHTMLElementWrapper }, |
| { colTag, createHTMLTableColElementWrapper }, |
| { colgroupTag, createHTMLTableColElementWrapper }, |
| { commandTag, createHTMLUnknownElementWrapper }, |
| { dataTag, createHTMLDataElementWrapper }, |
| #if ENABLE(DATALIST_ELEMENT) |
| { datalistTag, createHTMLDataListElementWrapper }, |
| #endif |
| { ddTag, createHTMLElementWrapper }, |
| { delTag, createHTMLModElementWrapper }, |
| #if ENABLE(DETAILS_ELEMENT) |
| { detailsTag, createHTMLDetailsElementWrapper }, |
| #endif |
| { dfnTag, createHTMLElementWrapper }, |
| { dirTag, createHTMLDirectoryElementWrapper }, |
| { divTag, createHTMLDivElementWrapper }, |
| { dlTag, createHTMLDListElementWrapper }, |
| { dtTag, createHTMLElementWrapper }, |
| { emTag, createHTMLElementWrapper }, |
| { embedTag, createHTMLEmbedElementWrapper }, |
| { fieldsetTag, createHTMLFieldSetElementWrapper }, |
| { figcaptionTag, createHTMLElementWrapper }, |
| { figureTag, createHTMLElementWrapper }, |
| { fontTag, createHTMLFontElementWrapper }, |
| { footerTag, createHTMLElementWrapper }, |
| { formTag, createHTMLFormElementWrapper }, |
| { frameTag, createHTMLFrameElementWrapper }, |
| { framesetTag, createHTMLFrameSetElementWrapper }, |
| { h1Tag, createHTMLHeadingElementWrapper }, |
| { h2Tag, createHTMLHeadingElementWrapper }, |
| { h3Tag, createHTMLHeadingElementWrapper }, |
| { h4Tag, createHTMLHeadingElementWrapper }, |
| { h5Tag, createHTMLHeadingElementWrapper }, |
| { h6Tag, createHTMLHeadingElementWrapper }, |
| { headTag, createHTMLHeadElementWrapper }, |
| { headerTag, createHTMLElementWrapper }, |
| { hgroupTag, createHTMLElementWrapper }, |
| { hrTag, createHTMLHRElementWrapper }, |
| { htmlTag, createHTMLHtmlElementWrapper }, |
| { iTag, createHTMLElementWrapper }, |
| { iframeTag, createHTMLIFrameElementWrapper }, |
| { imageTag, createHTMLUnknownElementWrapper }, |
| { imgTag, createHTMLImageElementWrapper }, |
| { inputTag, createHTMLInputElementWrapper }, |
| { insTag, createHTMLModElementWrapper }, |
| { kbdTag, createHTMLElementWrapper }, |
| { keygenTag, createHTMLKeygenElementWrapper }, |
| { labelTag, createHTMLLabelElementWrapper }, |
| { layerTag, createHTMLElementWrapper }, |
| { legendTag, createHTMLLegendElementWrapper }, |
| { liTag, createHTMLLIElementWrapper }, |
| { linkTag, createHTMLLinkElementWrapper }, |
| { listingTag, createHTMLPreElementWrapper }, |
| { mainTag, createHTMLElementWrapper }, |
| { mapTag, createHTMLMapElementWrapper }, |
| { markTag, createHTMLElementWrapper }, |
| { marqueeTag, createHTMLMarqueeElementWrapper }, |
| { menuTag, createHTMLMenuElementWrapper }, |
| { metaTag, createHTMLMetaElementWrapper }, |
| #if ENABLE(METER_ELEMENT) |
| { meterTag, createHTMLMeterElementWrapper }, |
| #endif |
| { navTag, createHTMLElementWrapper }, |
| { nobrTag, createHTMLElementWrapper }, |
| { noembedTag, createHTMLElementWrapper }, |
| { noframesTag, createHTMLElementWrapper }, |
| { nolayerTag, createHTMLElementWrapper }, |
| { noscriptTag, createHTMLElementWrapper }, |
| { objectTag, createHTMLObjectElementWrapper }, |
| { olTag, createHTMLOListElementWrapper }, |
| { optgroupTag, createHTMLOptGroupElementWrapper }, |
| { optionTag, createHTMLOptionElementWrapper }, |
| { outputTag, createHTMLOutputElementWrapper }, |
| { pTag, createHTMLParagraphElementWrapper }, |
| { paramTag, createHTMLParamElementWrapper }, |
| { pictureTag, createHTMLPictureElementWrapper }, |
| { plaintextTag, createHTMLElementWrapper }, |
| { preTag, createHTMLPreElementWrapper }, |
| { progressTag, createHTMLProgressElementWrapper }, |
| { qTag, createHTMLQuoteElementWrapper }, |
| { rbTag, createHTMLElementWrapper }, |
| { rpTag, createHTMLElementWrapper }, |
| { rtTag, createHTMLElementWrapper }, |
| { rtcTag, createHTMLElementWrapper }, |
| { rubyTag, createHTMLElementWrapper }, |
| { sTag, createHTMLElementWrapper }, |
| { sampTag, createHTMLElementWrapper }, |
| { scriptTag, createHTMLScriptElementWrapper }, |
| { sectionTag, createHTMLElementWrapper }, |
| { selectTag, createHTMLSelectElementWrapper }, |
| { slotTag, createHTMLSlotElementWrapper }, |
| { smallTag, createHTMLElementWrapper }, |
| { sourceTag, createHTMLSourceElementWrapper }, |
| { spanTag, createHTMLSpanElementWrapper }, |
| { strikeTag, createHTMLElementWrapper }, |
| { strongTag, createHTMLElementWrapper }, |
| { styleTag, createHTMLStyleElementWrapper }, |
| { subTag, createHTMLElementWrapper }, |
| #if ENABLE(DETAILS_ELEMENT) |
| { summaryTag, createHTMLElementWrapper }, |
| #endif |
| { supTag, createHTMLElementWrapper }, |
| { tableTag, createHTMLTableElementWrapper }, |
| { tbodyTag, createHTMLTableSectionElementWrapper }, |
| { tdTag, createHTMLTableCellElementWrapper }, |
| { templateTag, createHTMLTemplateElementWrapper }, |
| { textareaTag, createHTMLTextAreaElementWrapper }, |
| { tfootTag, createHTMLTableSectionElementWrapper }, |
| { thTag, createHTMLTableCellElementWrapper }, |
| { theadTag, createHTMLTableSectionElementWrapper }, |
| { timeTag, createHTMLTimeElementWrapper }, |
| { titleTag, createHTMLTitleElementWrapper }, |
| { trTag, createHTMLTableRowElementWrapper }, |
| #if ENABLE(VIDEO_TRACK) |
| { trackTag, createHTMLTrackElementWrapper }, |
| #endif |
| { ttTag, createHTMLElementWrapper }, |
| { uTag, createHTMLElementWrapper }, |
| { ulTag, createHTMLUListElementWrapper }, |
| { varTag, createHTMLElementWrapper }, |
| #if ENABLE(VIDEO) |
| { videoTag, createHTMLVideoElementWrapper }, |
| #endif |
| { wbrTag, createHTMLElementWrapper }, |
| { xmpTag, createHTMLPreElementWrapper }, |
| }; |
| |
| for (unsigned i = 0; i < WTF_ARRAY_LENGTH(table); ++i) |
| map.add(table[i].name.localName().impl(), table[i].function); |
| } |
| |
| JSDOMObject* createJSHTMLWrapper(JSDOMGlobalObject* globalObject, Ref<HTMLElement>&& element) |
| { |
| static NeverDestroyed<HashMap<AtomicStringImpl*, CreateHTMLElementWrapperFunction>> functions; |
| if (functions.get().isEmpty()) |
| populateHTMLWrapperMap(functions); |
| if (auto function = functions.get().get(element->localName().impl())) |
| return function(globalObject, WTFMove(element)); |
| #if ENABLE(CUSTOM_ELEMENTS) |
| if (element->isCustomElementUpgradeCandidate()) |
| return createWrapper<HTMLElement>(globalObject, WTFMove(element)); |
| #endif |
| return createWrapper<HTMLUnknownElement>(globalObject, WTFMove(element)); |
| } |
| |
| } |