Index: Source/core/html/HTMLElement.cpp |
diff --git a/Source/core/html/HTMLElement.cpp b/Source/core/html/HTMLElement.cpp |
index f9dff426403e18215fdd92b3f3597386140f0978..2a842591bfbbad094aaa3767d16cd8edd00eb545 100644 |
--- a/Source/core/html/HTMLElement.cpp |
+++ b/Source/core/html/HTMLElement.cpp |
@@ -216,91 +216,100 @@ const AtomicString& HTMLElement::eventNameForAttributeName(const QualifiedName& |
typedef HashMap<AtomicString, AtomicString> StringToStringMap; |
DEFINE_STATIC_LOCAL(StringToStringMap, attributeNameToEventNameMap, ()); |
if (!attributeNameToEventNameMap.size()) { |
- attributeNameToEventNameMap.set(onabortAttr.localName(), EventTypeNames::abort); |
- attributeNameToEventNameMap.set(onanimationendAttr.localName(), EventTypeNames::animationend); |
- attributeNameToEventNameMap.set(onanimationiterationAttr.localName(), EventTypeNames::animationiteration); |
- attributeNameToEventNameMap.set(onanimationstartAttr.localName(), EventTypeNames::animationstart); |
- attributeNameToEventNameMap.set(onautocompleteAttr.localName(), EventTypeNames::autocomplete); |
- attributeNameToEventNameMap.set(onautocompleteerrorAttr.localName(), EventTypeNames::autocompleteerror); |
- attributeNameToEventNameMap.set(onbeforecopyAttr.localName(), EventTypeNames::beforecopy); |
- attributeNameToEventNameMap.set(onbeforecutAttr.localName(), EventTypeNames::beforecut); |
- attributeNameToEventNameMap.set(onbeforepasteAttr.localName(), EventTypeNames::beforepaste); |
- attributeNameToEventNameMap.set(onblurAttr.localName(), EventTypeNames::blur); |
- attributeNameToEventNameMap.set(oncancelAttr.localName(), EventTypeNames::cancel); |
- attributeNameToEventNameMap.set(oncanplayAttr.localName(), EventTypeNames::canplay); |
- attributeNameToEventNameMap.set(oncanplaythroughAttr.localName(), EventTypeNames::canplaythrough); |
- attributeNameToEventNameMap.set(onchangeAttr.localName(), EventTypeNames::change); |
- attributeNameToEventNameMap.set(onclickAttr.localName(), EventTypeNames::click); |
- attributeNameToEventNameMap.set(oncloseAttr.localName(), EventTypeNames::close); |
- attributeNameToEventNameMap.set(oncontextmenuAttr.localName(), EventTypeNames::contextmenu); |
- attributeNameToEventNameMap.set(oncopyAttr.localName(), EventTypeNames::copy); |
- attributeNameToEventNameMap.set(oncuechangeAttr.localName(), EventTypeNames::cuechange); |
- attributeNameToEventNameMap.set(oncutAttr.localName(), EventTypeNames::cut); |
- attributeNameToEventNameMap.set(ondblclickAttr.localName(), EventTypeNames::dblclick); |
- attributeNameToEventNameMap.set(ondragAttr.localName(), EventTypeNames::drag); |
- attributeNameToEventNameMap.set(ondragendAttr.localName(), EventTypeNames::dragend); |
- attributeNameToEventNameMap.set(ondragenterAttr.localName(), EventTypeNames::dragenter); |
- attributeNameToEventNameMap.set(ondragleaveAttr.localName(), EventTypeNames::dragleave); |
- attributeNameToEventNameMap.set(ondragoverAttr.localName(), EventTypeNames::dragover); |
- attributeNameToEventNameMap.set(ondragstartAttr.localName(), EventTypeNames::dragstart); |
- attributeNameToEventNameMap.set(ondropAttr.localName(), EventTypeNames::drop); |
- attributeNameToEventNameMap.set(ondurationchangeAttr.localName(), EventTypeNames::durationchange); |
- attributeNameToEventNameMap.set(onemptiedAttr.localName(), EventTypeNames::emptied); |
- attributeNameToEventNameMap.set(onendedAttr.localName(), EventTypeNames::ended); |
- attributeNameToEventNameMap.set(onerrorAttr.localName(), EventTypeNames::error); |
- attributeNameToEventNameMap.set(onfocusAttr.localName(), EventTypeNames::focus); |
- attributeNameToEventNameMap.set(onfocusinAttr.localName(), EventTypeNames::focusin); |
- attributeNameToEventNameMap.set(onfocusoutAttr.localName(), EventTypeNames::focusout); |
- attributeNameToEventNameMap.set(oninputAttr.localName(), EventTypeNames::input); |
- attributeNameToEventNameMap.set(oninvalidAttr.localName(), EventTypeNames::invalid); |
- attributeNameToEventNameMap.set(onkeydownAttr.localName(), EventTypeNames::keydown); |
- attributeNameToEventNameMap.set(onkeypressAttr.localName(), EventTypeNames::keypress); |
- attributeNameToEventNameMap.set(onkeyupAttr.localName(), EventTypeNames::keyup); |
- attributeNameToEventNameMap.set(onloadAttr.localName(), EventTypeNames::load); |
- attributeNameToEventNameMap.set(onloadeddataAttr.localName(), EventTypeNames::loadeddata); |
- attributeNameToEventNameMap.set(onloadedmetadataAttr.localName(), EventTypeNames::loadedmetadata); |
- attributeNameToEventNameMap.set(onloadstartAttr.localName(), EventTypeNames::loadstart); |
- attributeNameToEventNameMap.set(onmousedownAttr.localName(), EventTypeNames::mousedown); |
- attributeNameToEventNameMap.set(onmouseenterAttr.localName(), EventTypeNames::mouseenter); |
- attributeNameToEventNameMap.set(onmouseleaveAttr.localName(), EventTypeNames::mouseleave); |
- attributeNameToEventNameMap.set(onmousemoveAttr.localName(), EventTypeNames::mousemove); |
- attributeNameToEventNameMap.set(onmouseoutAttr.localName(), EventTypeNames::mouseout); |
- attributeNameToEventNameMap.set(onmouseoverAttr.localName(), EventTypeNames::mouseover); |
- attributeNameToEventNameMap.set(onmouseupAttr.localName(), EventTypeNames::mouseup); |
- attributeNameToEventNameMap.set(onmousewheelAttr.localName(), EventTypeNames::mousewheel); |
- attributeNameToEventNameMap.set(onpasteAttr.localName(), EventTypeNames::paste); |
- attributeNameToEventNameMap.set(onpauseAttr.localName(), EventTypeNames::pause); |
- attributeNameToEventNameMap.set(onplayAttr.localName(), EventTypeNames::play); |
- attributeNameToEventNameMap.set(onplayingAttr.localName(), EventTypeNames::playing); |
- attributeNameToEventNameMap.set(onprogressAttr.localName(), EventTypeNames::progress); |
- attributeNameToEventNameMap.set(onratechangeAttr.localName(), EventTypeNames::ratechange); |
- attributeNameToEventNameMap.set(onresetAttr.localName(), EventTypeNames::reset); |
- attributeNameToEventNameMap.set(onresizeAttr.localName(), EventTypeNames::resize); |
- attributeNameToEventNameMap.set(onscrollAttr.localName(), EventTypeNames::scroll); |
- attributeNameToEventNameMap.set(onseekedAttr.localName(), EventTypeNames::seeked); |
- attributeNameToEventNameMap.set(onseekingAttr.localName(), EventTypeNames::seeking); |
- attributeNameToEventNameMap.set(onselectAttr.localName(), EventTypeNames::select); |
- attributeNameToEventNameMap.set(onselectstartAttr.localName(), EventTypeNames::selectstart); |
- attributeNameToEventNameMap.set(onshowAttr.localName(), EventTypeNames::show); |
- attributeNameToEventNameMap.set(onstalledAttr.localName(), EventTypeNames::stalled); |
- attributeNameToEventNameMap.set(onsubmitAttr.localName(), EventTypeNames::submit); |
- attributeNameToEventNameMap.set(onsuspendAttr.localName(), EventTypeNames::suspend); |
- attributeNameToEventNameMap.set(ontimeupdateAttr.localName(), EventTypeNames::timeupdate); |
- attributeNameToEventNameMap.set(ontoggleAttr.localName(), EventTypeNames::toggle); |
- attributeNameToEventNameMap.set(ontouchcancelAttr.localName(), EventTypeNames::touchcancel); |
- attributeNameToEventNameMap.set(ontouchendAttr.localName(), EventTypeNames::touchend); |
- attributeNameToEventNameMap.set(ontouchmoveAttr.localName(), EventTypeNames::touchmove); |
- attributeNameToEventNameMap.set(ontouchstartAttr.localName(), EventTypeNames::touchstart); |
- attributeNameToEventNameMap.set(ontransitionendAttr.localName(), EventTypeNames::webkitTransitionEnd); |
- attributeNameToEventNameMap.set(onvolumechangeAttr.localName(), EventTypeNames::volumechange); |
- attributeNameToEventNameMap.set(onwaitingAttr.localName(), EventTypeNames::waiting); |
- attributeNameToEventNameMap.set(onwebkitanimationendAttr.localName(), EventTypeNames::webkitAnimationEnd); |
- attributeNameToEventNameMap.set(onwebkitanimationiterationAttr.localName(), EventTypeNames::webkitAnimationIteration); |
- attributeNameToEventNameMap.set(onwebkitanimationstartAttr.localName(), EventTypeNames::webkitAnimationStart); |
- attributeNameToEventNameMap.set(onwebkitfullscreenchangeAttr.localName(), EventTypeNames::webkitfullscreenchange); |
- attributeNameToEventNameMap.set(onwebkitfullscreenerrorAttr.localName(), EventTypeNames::webkitfullscreenerror); |
- attributeNameToEventNameMap.set(onwebkittransitionendAttr.localName(), EventTypeNames::webkitTransitionEnd); |
- attributeNameToEventNameMap.set(onwheelAttr.localName(), EventTypeNames::wheel); |
+ struct AttrToEventName { |
+ const QualifiedName& attr; |
+ const AtomicString& event; |
+ }; |
+ AttrToEventName attrToEventNames[] = { |
+ { onabortAttr, EventTypeNames::abort }, |
+ { onanimationendAttr, EventTypeNames::animationend }, |
+ { onanimationiterationAttr, EventTypeNames::animationiteration }, |
+ { onanimationstartAttr, EventTypeNames::animationstart }, |
+ { onautocompleteAttr, EventTypeNames::autocomplete }, |
+ { onautocompleteerrorAttr, EventTypeNames::autocompleteerror }, |
+ { onbeforecopyAttr, EventTypeNames::beforecopy }, |
+ { onbeforecutAttr, EventTypeNames::beforecut }, |
+ { onbeforepasteAttr, EventTypeNames::beforepaste }, |
+ { onblurAttr, EventTypeNames::blur }, |
+ { oncancelAttr, EventTypeNames::cancel }, |
+ { oncanplayAttr, EventTypeNames::canplay }, |
+ { oncanplaythroughAttr, EventTypeNames::canplaythrough }, |
+ { onchangeAttr, EventTypeNames::change }, |
+ { onclickAttr, EventTypeNames::click }, |
+ { oncloseAttr, EventTypeNames::close }, |
+ { oncontextmenuAttr, EventTypeNames::contextmenu }, |
+ { oncopyAttr, EventTypeNames::copy }, |
+ { oncuechangeAttr, EventTypeNames::cuechange }, |
+ { oncutAttr, EventTypeNames::cut }, |
+ { ondblclickAttr, EventTypeNames::dblclick }, |
+ { ondragAttr, EventTypeNames::drag }, |
+ { ondragendAttr, EventTypeNames::dragend }, |
+ { ondragenterAttr, EventTypeNames::dragenter }, |
+ { ondragleaveAttr, EventTypeNames::dragleave }, |
+ { ondragoverAttr, EventTypeNames::dragover }, |
+ { ondragstartAttr, EventTypeNames::dragstart }, |
+ { ondropAttr, EventTypeNames::drop }, |
+ { ondurationchangeAttr, EventTypeNames::durationchange }, |
+ { onemptiedAttr, EventTypeNames::emptied }, |
+ { onendedAttr, EventTypeNames::ended }, |
+ { onerrorAttr, EventTypeNames::error }, |
+ { onfocusAttr, EventTypeNames::focus }, |
+ { onfocusinAttr, EventTypeNames::focusin }, |
+ { onfocusoutAttr, EventTypeNames::focusout }, |
+ { oninputAttr, EventTypeNames::input }, |
+ { oninvalidAttr, EventTypeNames::invalid }, |
+ { onkeydownAttr, EventTypeNames::keydown }, |
+ { onkeypressAttr, EventTypeNames::keypress }, |
+ { onkeyupAttr, EventTypeNames::keyup }, |
+ { onloadAttr, EventTypeNames::load }, |
+ { onloadeddataAttr, EventTypeNames::loadeddata }, |
+ { onloadedmetadataAttr, EventTypeNames::loadedmetadata }, |
+ { onloadstartAttr, EventTypeNames::loadstart }, |
+ { onmousedownAttr, EventTypeNames::mousedown }, |
+ { onmouseenterAttr, EventTypeNames::mouseenter }, |
+ { onmouseleaveAttr, EventTypeNames::mouseleave }, |
+ { onmousemoveAttr, EventTypeNames::mousemove }, |
+ { onmouseoutAttr, EventTypeNames::mouseout }, |
+ { onmouseoverAttr, EventTypeNames::mouseover }, |
+ { onmouseupAttr, EventTypeNames::mouseup }, |
+ { onmousewheelAttr, EventTypeNames::mousewheel }, |
+ { onpasteAttr, EventTypeNames::paste }, |
+ { onpauseAttr, EventTypeNames::pause }, |
+ { onplayAttr, EventTypeNames::play }, |
+ { onplayingAttr, EventTypeNames::playing }, |
+ { onprogressAttr, EventTypeNames::progress }, |
+ { onratechangeAttr, EventTypeNames::ratechange }, |
+ { onresetAttr, EventTypeNames::reset }, |
+ { onresizeAttr, EventTypeNames::resize }, |
+ { onscrollAttr, EventTypeNames::scroll }, |
+ { onseekedAttr, EventTypeNames::seeked }, |
+ { onseekingAttr, EventTypeNames::seeking }, |
+ { onselectAttr, EventTypeNames::select }, |
+ { onselectstartAttr, EventTypeNames::selectstart }, |
+ { onshowAttr, EventTypeNames::show }, |
+ { onstalledAttr, EventTypeNames::stalled }, |
+ { onsubmitAttr, EventTypeNames::submit }, |
+ { onsuspendAttr, EventTypeNames::suspend }, |
+ { ontimeupdateAttr, EventTypeNames::timeupdate }, |
+ { ontoggleAttr, EventTypeNames::toggle }, |
+ { ontouchcancelAttr, EventTypeNames::touchcancel }, |
+ { ontouchendAttr, EventTypeNames::touchend }, |
+ { ontouchmoveAttr, EventTypeNames::touchmove }, |
+ { ontouchstartAttr, EventTypeNames::touchstart }, |
+ { ontransitionendAttr, EventTypeNames::webkitTransitionEnd }, |
+ { onvolumechangeAttr, EventTypeNames::volumechange }, |
+ { onwaitingAttr, EventTypeNames::waiting }, |
+ { onwebkitanimationendAttr, EventTypeNames::webkitAnimationEnd }, |
+ { onwebkitanimationiterationAttr, EventTypeNames::webkitAnimationIteration }, |
+ { onwebkitanimationstartAttr, EventTypeNames::webkitAnimationStart }, |
+ { onwebkitfullscreenchangeAttr, EventTypeNames::webkitfullscreenchange }, |
+ { onwebkitfullscreenerrorAttr, EventTypeNames::webkitfullscreenerror }, |
+ { onwebkittransitionendAttr, EventTypeNames::webkitTransitionEnd }, |
+ { onwheelAttr, EventTypeNames::wheel }, |
+ }; |
+ |
+ for (size_t i = 0; i < WTF_ARRAY_LENGTH(attrToEventNames); i++) |
+ attributeNameToEventNameMap.set(attrToEventNames[i].attr.localName(), attrToEventNames[i].event); |
esprehn
2014/09/29 00:23:04
Why not ditch the hash table entirely and use std:
|
} |
return attributeNameToEventNameMap.get(attrName.localName()); |