<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[181358] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/181358">181358</a></dd>
<dt>Author</dt> <dd>darin@apple.com</dd>
<dt>Date</dt> <dd>2015-03-10 19:21:20 -0700 (Tue, 10 Mar 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Some event handler fixes
https://bugs.webkit.org/show_bug.cgi?id=142474

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

* inspector/InjectedScriptManager.cpp:
(Inspector::InjectedScriptManager::createInjectedScript): Call clearException.
I spotted the fact it was missing by auditing all the calls to JSC::call.

Source/WebCore:

* bindings/scripts/CodeGenerator.pm:
(GenerateConditionalStringFromAttributeValue): Improved the algorithm here to
handle combinations of &amp; and | in conditional expressions; that's coming up when
combining conditionals for includes in NavigatorContentUtils.idl.

* bindings/scripts/CodeGeneratorJS.pm:
(AddToImplIncludes): Removed the rudimentary attempt to split and merge
conditionals involving | here; instead we rely on the rules in the
GenerateConditionalStringFromAttributeValue to handle this.
(GenerateImplementation): Passed new &quot;conditional&quot; argument to JSValueToNative.
(GenerateParametersCheck): Pass &quot;conditional&quot; argument to AddToImplIncludes and
JSValueToNative.
(JSValueToNative): Changed to take &quot;conditional&quot; as an argument, since getting
it from the signature won't work for a method parameter.
(WriteData): Merge duplicates based on the result of the
GenerateConditionalStringFromAttributeValue function rather than on the values
passed into that function, since that function converts conditionals into a
canonical form and can make two strings equal that don't start out that way.

* bindings/scripts/CodeGeneratorObjC.pm:
(SkipAttribute): Added code to guarantee we won't make Objective-C bindings
for event handlers. We will rename EventListener to EventHandler in a
subsequent patch.

* bindings/scripts/test/JS/JSTestInterface.cpp: Updated for a progression caused
by the better logic for conditional includes.

* bindings/scripts/test/JS/JSTestObj.cpp: Updated for change to the test below.
* bindings/scripts/test/TestObj.idl: Added test of an event handler attribute.

* dom/Document.idl: Removed unneeded language #if around event handler
attributes. Removed all the commented out event handler attributes.
Sorted event handler attributes into a single section rather than separating
&quot;standard&quot; from &quot;extensions&quot;. Sorted the conditional event handler attributes
into paragraphs at the bottom. We will probably make them all unconditional
in a subsequent patch.

* dom/Element.idl: Removed unneeded language #if around event handler
attributes. Removed all the commented out event handler attributes.
Moved event handler attributes here from all derived element classes to
match the approach from the HTML standard. Also resorted the attributes
as in Document above.

* html/HTMLBodyElement.idl: Removed unneeded language #if around event handler
attributes. Removed all the commented out event handler attributes.
Sorted event handler attributes into a single section rather than separating
&quot;standard&quot; from &quot;overrides&quot;.

* html/HTMLElement.cpp:
(WebCore::HTMLElement::populateEventNameForAttributeLocalNameMap):
Added a few missing attribute names, and re-sorted a bit. Moved any from
element subclasses here.

* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::parseAttribute): Moved code to handle
oncomplete and oncompleteerror to Element and HTMLElement.
* html/HTMLFormElement.idl: Ditto.

* html/HTMLFrameSetElement.idl: Removed #if and resorted as above.

* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute): Moved code to handle
onsearch to HTMLElement.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): Moved code to handle
all the event handler attributes to HTMLElement.
(WebCore::HTMLMediaElement::updateCaptionContainer): Removed a redundant
if statement I noticed while auditing all calls to JSC::call.
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot): Added clearException.
I noticed this was missing because a flawed earlier version of my patch was
causing the script to fail, leaving an exception behind that caused an
assertion later. So I audited all calls to JSC::call looking for this mistake.

* html/HTMLMediaElement.idl: Moved all the event handlers from here to
Element. Also changed everything possible to use Conditional instead of #if.

* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Added
clearException. Noticed it was missing while auditing all calls to JSC::call.

* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::parseAttribute): Moved event handler code to
HTMLElement.

* html/HTMLVideoElement.idl: Moved event handler to Element.idl and use
Conditional instead of #if.

* page/DOMWindow.idl: Use Conditional instead of #if and tidy up the event
handlers section.

* svg/svgattrs.in: Remove six unused attribute names. Presumably used in
some older scheme to implement event handlers but no longer used at all.

LayoutTests:

* fast/dom/event-handler-attributes-expected.txt: Updated for new tests and to
expect more tests to pass.

* fast/dom/event-handler-attributes.html: Added testing of event handlers on
non-HTML, non-SVG elements, and on SVG elements. Also removed
webkitpresentationmodechanged from the test, for now at least.

* fast/events/event-attribute-expected.txt: Updated to expect more tests to pass.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomeventhandlerattributesexpectedtxt">trunk/LayoutTests/fast/dom/event-handler-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomeventhandlerattributeshtml">trunk/LayoutTests/fast/dom/event-handler-attributes.html</a></li>
<li><a href="#trunkLayoutTestsfasteventseventattributeexpectedtxt">trunk/LayoutTests/fast/events/event-attribute-expected.txt</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorInjectedScriptManagercpp">trunk/Source/JavaScriptCore/inspector/InjectedScriptManager.cpp</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorpm">trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptsCodeGeneratorObjCpm">trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp">trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsscriptstestTestObjidl">trunk/Source/WebCore/bindings/scripts/test/TestObj.idl</a></li>
<li><a href="#trunkSourceWebCoredomDocumentidl">trunk/Source/WebCore/dom/Document.idl</a></li>
<li><a href="#trunkSourceWebCoredomElementidl">trunk/Source/WebCore/dom/Element.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLBodyElementidl">trunk/Source/WebCore/html/HTMLBodyElement.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLElementcpp">trunk/Source/WebCore/html/HTMLElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormElementcpp">trunk/Source/WebCore/html/HTMLFormElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormElementidl">trunk/Source/WebCore/html/HTMLFormElement.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFrameSetElementidl">trunk/Source/WebCore/html/HTMLFrameSetElement.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementcpp">trunk/Source/WebCore/html/HTMLInputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementidl">trunk/Source/WebCore/html/HTMLMediaElement.idl</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLPlugInImageElementcpp">trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementidl">trunk/Source/WebCore/html/HTMLVideoElement.idl</a></li>
<li><a href="#trunkSourceWebCorepageDOMWindowidl">trunk/Source/WebCore/page/DOMWindow.idl</a></li>
<li><a href="#trunkSourceWebCoresvgsvgattrsin">trunk/Source/WebCore/svg/svgattrs.in</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/LayoutTests/ChangeLog        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2015-03-09  Darin Adler  &lt;darin@apple.com&gt;
+
+        Some event handler fixes
+        https://bugs.webkit.org/show_bug.cgi?id=142474
+
+        Reviewed by Anders Carlsson.
+
+        * fast/dom/event-handler-attributes-expected.txt: Updated for new tests and to
+        expect more tests to pass.
+
+        * fast/dom/event-handler-attributes.html: Added testing of event handlers on
+        non-HTML, non-SVG elements, and on SVG elements. Also removed
+        webkitpresentationmodechanged from the test, for now at least.
+
+        * fast/events/event-attribute-expected.txt: Updated to expect more tests to pass.
+
</ins><span class="cx"> 2015-03-10  Brent Fulgham  &lt;bfulgham@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         CSS scroll-snap-destination and scroll-snap-coordinate are not honoring position values
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomeventhandlerattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/event-handler-attributes-expected.txt (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/event-handler-attributes-expected.txt        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/LayoutTests/fast/dom/event-handler-attributes-expected.txt        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -84,6 +84,7 @@
</span><span class="cx"> 
</span><span class="cx"> PASS testScriptAttribute(window, &quot;beforecopy&quot;) is &quot;none&quot;
</span><span class="cx"> PASS testScriptAttribute(window, &quot;beforecut&quot;) is &quot;none&quot;
</span><ins>+PASS testScriptAttribute(window, &quot;beforeload&quot;) is &quot;none&quot;
</ins><span class="cx"> PASS testScriptAttribute(window, &quot;beforepaste&quot;) is &quot;none&quot;
</span><span class="cx"> PASS testScriptAttribute(window, &quot;copy&quot;) is &quot;none&quot;
</span><span class="cx"> PASS testScriptAttribute(window, &quot;cut&quot;) is &quot;none&quot;
</span><span class="lines">@@ -98,7 +99,6 @@
</span><span class="cx"> PASS testScriptAttribute(window, &quot;touchend&quot;) is &quot;none&quot;
</span><span class="cx"> PASS testScriptAttribute(window, &quot;touchmove&quot;) is &quot;none&quot;
</span><span class="cx"> PASS testScriptAttribute(window, &quot;touchstart&quot;) is &quot;none&quot;
</span><del>-PASS testScriptAttribute(window, &quot;webkitpresentationmodechanged&quot;) is &quot;none&quot;
</del><span class="cx"> 
</span><span class="cx"> Event names we expect to be able to set on the document
</span><span class="cx"> 
</span><span class="lines">@@ -152,6 +152,7 @@
</span><span class="cx"> PASS testScriptAttribute(document, &quot;animationend&quot;) is &quot;none&quot;
</span><span class="cx"> PASS testScriptAttribute(document, &quot;animationiteration&quot;) is &quot;none&quot;
</span><span class="cx"> PASS testScriptAttribute(document, &quot;animationstart&quot;) is &quot;none&quot;
</span><ins>+PASS testScriptAttribute(document, &quot;beforeload&quot;) is &quot;none&quot;
</ins><span class="cx"> PASS testScriptAttribute(document, &quot;beforeunload&quot;) is &quot;none&quot;
</span><span class="cx"> PASS testScriptAttribute(document, &quot;canplay&quot;) is &quot;none&quot;
</span><span class="cx"> PASS testScriptAttribute(document, &quot;canplaythrough&quot;) is &quot;none&quot;
</span><span class="lines">@@ -194,21 +195,21 @@
</span><span class="cx"> PASS testScriptAttribute(document, &quot;webkitanimationend&quot;) is &quot;none&quot;
</span><span class="cx"> PASS testScriptAttribute(document, &quot;webkitanimationiteration&quot;) is &quot;none&quot;
</span><span class="cx"> PASS testScriptAttribute(document, &quot;webkitanimationstart&quot;) is &quot;none&quot;
</span><del>-PASS testScriptAttribute(document, &quot;webkitpresentationmodechanged&quot;) is &quot;none&quot;
</del><span class="cx"> PASS testScriptAttribute(document, &quot;webkittransitionend&quot;) is &quot;none&quot;
</span><span class="cx"> 
</span><span class="cx"> Event names we expect to be able to set on an element (tested on the &lt;html&gt; element)
</span><span class="cx"> 
</span><span class="cx"> PASS testElementAttribute(element, &quot;abort&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(element, &quot;animationend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;animationiteration&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;animationstart&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(element, &quot;animationend&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;animationiteration&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;animationstart&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(element, &quot;beforecopy&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;beforecut&quot;) is &quot;target&quot;
</span><ins>+PASS testElementAttribute(element, &quot;beforeload&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(element, &quot;beforepaste&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;blur&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(element, &quot;canplay&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;canplaythrough&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(element, &quot;canplay&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;canplaythrough&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(element, &quot;change&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;click&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;contextmenu&quot;) is &quot;target&quot;
</span><span class="lines">@@ -222,22 +223,22 @@
</span><span class="cx"> PASS testElementAttribute(element, &quot;dragover&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;dragstart&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;drop&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(element, &quot;durationchange&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;emptied&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;ended&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(element, &quot;durationchange&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;emptied&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;ended&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(element, &quot;error&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;focus&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(element, &quot;focusin&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;focusout&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(element, &quot;focusin&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;focusout&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(element, &quot;input&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;invalid&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;keydown&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;keypress&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;keyup&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;load&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(element, &quot;loadeddata&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;loadedmetadata&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;loadstart&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(element, &quot;loadeddata&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;loadedmetadata&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;loadstart&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(element, &quot;mousedown&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;mouseenter&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;mouseleave&quot;) is &quot;target&quot;
</span><span class="lines">@@ -247,33 +248,32 @@
</span><span class="cx"> PASS testElementAttribute(element, &quot;mouseup&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;mousewheel&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;paste&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(element, &quot;pause&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;play&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;playing&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;progress&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;ratechange&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(element, &quot;pause&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;play&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;playing&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;progress&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;ratechange&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(element, &quot;reset&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;scroll&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(element, &quot;search&quot;) should be target. Was script: target; content: none.
-FAIL testElementAttribute(element, &quot;seeked&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;seeking&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(element, &quot;search&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;seeked&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;seeking&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(element, &quot;select&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(element, &quot;selectstart&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(element, &quot;stalled&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(element, &quot;stalled&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(element, &quot;submit&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(element, &quot;suspend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;timeupdate&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;touchcancel&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;touchend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;touchmove&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;touchstart&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;transitionend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;volumechange&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(element, &quot;waiting&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(element, &quot;suspend&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;timeupdate&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;touchcancel&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;touchend&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;touchmove&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;touchstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;transitionend&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;volumechange&quot;) is &quot;target&quot;
+PASS testElementAttribute(element, &quot;waiting&quot;) is &quot;target&quot;
</ins><span class="cx"> FAIL testElementAttribute(element, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> FAIL testElementAttribute(element, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> FAIL testElementAttribute(element, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
</span><del>-FAIL testElementAttribute(element, &quot;webkitpresentationmodechanged&quot;) should be target. Was none.
</del><span class="cx"> FAIL testElementAttribute(element, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> PASS testElementAttribute(element, &quot;wheel&quot;) is &quot;target&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -297,15 +297,16 @@
</span><span class="cx"> Event names we expect to be able to set on an element (tested on the &lt;input&gt; element)
</span><span class="cx"> 
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;abort&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(inputElement, &quot;animationend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;animationiteration&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;animationstart&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(inputElement, &quot;animationend&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;animationiteration&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;animationstart&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(inputElement, &quot;beforecopy&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;beforecut&quot;) is &quot;target&quot;
</span><ins>+PASS testElementAttribute(inputElement, &quot;beforeload&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(inputElement, &quot;beforepaste&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;blur&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(inputElement, &quot;canplay&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;canplaythrough&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(inputElement, &quot;canplay&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;canplaythrough&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(inputElement, &quot;change&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;click&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;contextmenu&quot;) is &quot;target&quot;
</span><span class="lines">@@ -319,22 +320,22 @@
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;dragover&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;dragstart&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;drop&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(inputElement, &quot;durationchange&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;emptied&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;ended&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(inputElement, &quot;durationchange&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;emptied&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;ended&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(inputElement, &quot;error&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;focus&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(inputElement, &quot;focusin&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;focusout&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(inputElement, &quot;focusin&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;focusout&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(inputElement, &quot;input&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;invalid&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;keydown&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;keypress&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;keyup&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;load&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(inputElement, &quot;loadeddata&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;loadedmetadata&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;loadstart&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(inputElement, &quot;loadeddata&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;loadedmetadata&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;loadstart&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(inputElement, &quot;mousedown&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;mouseenter&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;mouseleave&quot;) is &quot;target&quot;
</span><span class="lines">@@ -344,33 +345,32 @@
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;mouseup&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;mousewheel&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;paste&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(inputElement, &quot;pause&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;play&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;playing&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;progress&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;ratechange&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(inputElement, &quot;pause&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;play&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;playing&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;progress&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;ratechange&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(inputElement, &quot;reset&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;scroll&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;search&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(inputElement, &quot;seeked&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;seeking&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(inputElement, &quot;seeked&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;seeking&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(inputElement, &quot;select&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;selectstart&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(inputElement, &quot;stalled&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(inputElement, &quot;stalled&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(inputElement, &quot;submit&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(inputElement, &quot;suspend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;timeupdate&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;touchcancel&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;touchend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;touchmove&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;touchstart&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;transitionend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;volumechange&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(inputElement, &quot;waiting&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(inputElement, &quot;suspend&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;timeupdate&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;touchcancel&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;touchend&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;touchmove&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;touchstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;transitionend&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;volumechange&quot;) is &quot;target&quot;
+PASS testElementAttribute(inputElement, &quot;waiting&quot;) is &quot;target&quot;
</ins><span class="cx"> FAIL testElementAttribute(inputElement, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> FAIL testElementAttribute(inputElement, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> FAIL testElementAttribute(inputElement, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
</span><del>-FAIL testElementAttribute(inputElement, &quot;webkitpresentationmodechanged&quot;) should be target. Was none.
</del><span class="cx"> FAIL testElementAttribute(inputElement, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> PASS testElementAttribute(inputElement, &quot;wheel&quot;) is &quot;target&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -394,11 +394,12 @@
</span><span class="cx"> Event names we expect to be able to set on an element (tested on the &lt;audio&gt; element)
</span><span class="cx"> 
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;abort&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(audioElement, &quot;animationend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(audioElement, &quot;animationiteration&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(audioElement, &quot;animationstart&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(audioElement, &quot;animationend&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;animationiteration&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;animationstart&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(audioElement, &quot;beforecopy&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;beforecut&quot;) is &quot;target&quot;
</span><ins>+PASS testElementAttribute(audioElement, &quot;beforeload&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(audioElement, &quot;beforepaste&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;blur&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;canplay&quot;) is &quot;target&quot;
</span><span class="lines">@@ -421,8 +422,8 @@
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;ended&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;error&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;focus&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(audioElement, &quot;focusin&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(audioElement, &quot;focusout&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(audioElement, &quot;focusin&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;focusout&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(audioElement, &quot;input&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;invalid&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;keydown&quot;) is &quot;target&quot;
</span><span class="lines">@@ -431,7 +432,7 @@
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;load&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;loadeddata&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;loadedmetadata&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(audioElement, &quot;loadstart&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(audioElement, &quot;loadstart&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(audioElement, &quot;mousedown&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;mouseenter&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;mouseleave&quot;) is &quot;target&quot;
</span><span class="lines">@@ -444,30 +445,29 @@
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;pause&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;play&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;playing&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(audioElement, &quot;progress&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(audioElement, &quot;progress&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(audioElement, &quot;ratechange&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;reset&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;scroll&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(audioElement, &quot;search&quot;) should be target. Was script: target; content: none.
-FAIL testElementAttribute(audioElement, &quot;seeked&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(audioElement, &quot;seeking&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(audioElement, &quot;search&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;seeked&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;seeking&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(audioElement, &quot;select&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;selectstart&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(audioElement, &quot;stalled&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(audioElement, &quot;stalled&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(audioElement, &quot;submit&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(audioElement, &quot;suspend&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(audioElement, &quot;suspend&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(audioElement, &quot;timeupdate&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(audioElement, &quot;touchcancel&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(audioElement, &quot;touchend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(audioElement, &quot;touchmove&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(audioElement, &quot;touchstart&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(audioElement, &quot;transitionend&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(audioElement, &quot;touchcancel&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;touchend&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;touchmove&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;touchstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(audioElement, &quot;transitionend&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(audioElement, &quot;volumechange&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;waiting&quot;) is &quot;target&quot;
</span><span class="cx"> FAIL testElementAttribute(audioElement, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> FAIL testElementAttribute(audioElement, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> FAIL testElementAttribute(audioElement, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
</span><del>-FAIL testElementAttribute(audioElement, &quot;webkitpresentationmodechanged&quot;) should be target. Was none.
</del><span class="cx"> FAIL testElementAttribute(audioElement, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> PASS testElementAttribute(audioElement, &quot;wheel&quot;) is &quot;target&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -491,11 +491,12 @@
</span><span class="cx"> Event names we expect to be able to set on an element (tested on the &lt;video&gt; element)
</span><span class="cx"> 
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;abort&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(videoElement, &quot;animationend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(videoElement, &quot;animationiteration&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(videoElement, &quot;animationstart&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(videoElement, &quot;animationend&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;animationiteration&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;animationstart&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(videoElement, &quot;beforecopy&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;beforecut&quot;) is &quot;target&quot;
</span><ins>+PASS testElementAttribute(videoElement, &quot;beforeload&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(videoElement, &quot;beforepaste&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;blur&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;canplay&quot;) is &quot;target&quot;
</span><span class="lines">@@ -518,8 +519,8 @@
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;ended&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;error&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;focus&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(videoElement, &quot;focusin&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(videoElement, &quot;focusout&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(videoElement, &quot;focusin&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;focusout&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(videoElement, &quot;input&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;invalid&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;keydown&quot;) is &quot;target&quot;
</span><span class="lines">@@ -528,7 +529,7 @@
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;load&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;loadeddata&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;loadedmetadata&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(videoElement, &quot;loadstart&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(videoElement, &quot;loadstart&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(videoElement, &quot;mousedown&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;mouseenter&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;mouseleave&quot;) is &quot;target&quot;
</span><span class="lines">@@ -541,30 +542,29 @@
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;pause&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;play&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;playing&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(videoElement, &quot;progress&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(videoElement, &quot;progress&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(videoElement, &quot;ratechange&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;reset&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;scroll&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(videoElement, &quot;search&quot;) should be target. Was script: target; content: none.
-FAIL testElementAttribute(videoElement, &quot;seeked&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(videoElement, &quot;seeking&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(videoElement, &quot;search&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;seeked&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;seeking&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(videoElement, &quot;select&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;selectstart&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(videoElement, &quot;stalled&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(videoElement, &quot;stalled&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(videoElement, &quot;submit&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(videoElement, &quot;suspend&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(videoElement, &quot;suspend&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(videoElement, &quot;timeupdate&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(videoElement, &quot;touchcancel&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(videoElement, &quot;touchend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(videoElement, &quot;touchmove&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(videoElement, &quot;touchstart&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(videoElement, &quot;transitionend&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(videoElement, &quot;touchcancel&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;touchend&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;touchmove&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;touchstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(videoElement, &quot;transitionend&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(videoElement, &quot;volumechange&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;waiting&quot;) is &quot;target&quot;
</span><span class="cx"> FAIL testElementAttribute(videoElement, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> FAIL testElementAttribute(videoElement, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> FAIL testElementAttribute(videoElement, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
</span><del>-FAIL testElementAttribute(videoElement, &quot;webkitpresentationmodechanged&quot;) should be target. Was none.
</del><span class="cx"> FAIL testElementAttribute(videoElement, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> PASS testElementAttribute(videoElement, &quot;wheel&quot;) is &quot;target&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -596,8 +596,8 @@
</span><span class="cx"> FAIL testElementAttribute(bodyElement, &quot;message&quot;) should be window. Was script: window; content: none.
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;offline&quot;) is &quot;window&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;online&quot;) is &quot;window&quot;
</span><del>-FAIL testElementAttribute(bodyElement, &quot;pagehide&quot;) should be window. Was script: none; content: window.
-FAIL testElementAttribute(bodyElement, &quot;pageshow&quot;) should be window. Was script: none; content: window.
</del><ins>+PASS testElementAttribute(bodyElement, &quot;pagehide&quot;) is &quot;window&quot;
+PASS testElementAttribute(bodyElement, &quot;pageshow&quot;) is &quot;window&quot;
</ins><span class="cx"> PASS testElementAttribute(bodyElement, &quot;popstate&quot;) is &quot;window&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;resize&quot;) is &quot;window&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;storage&quot;) is &quot;window&quot;
</span><span class="lines">@@ -610,14 +610,15 @@
</span><span class="cx"> Non-forwarded event names on &lt;body&gt; element
</span><span class="cx"> 
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;abort&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(bodyElement, &quot;animationend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;animationiteration&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;animationstart&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(bodyElement, &quot;animationend&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;animationiteration&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;animationstart&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(bodyElement, &quot;beforecopy&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;beforecut&quot;) is &quot;target&quot;
</span><ins>+PASS testElementAttribute(bodyElement, &quot;beforeload&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(bodyElement, &quot;beforepaste&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(bodyElement, &quot;canplay&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;canplaythrough&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(bodyElement, &quot;canplay&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;canplaythrough&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(bodyElement, &quot;change&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;click&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;contextmenu&quot;) is &quot;target&quot;
</span><span class="lines">@@ -631,19 +632,19 @@
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;dragover&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;dragstart&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;drop&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(bodyElement, &quot;durationchange&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;emptied&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;ended&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;focusin&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;focusout&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(bodyElement, &quot;durationchange&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;emptied&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;ended&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;focusin&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;focusout&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(bodyElement, &quot;input&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;invalid&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;keydown&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;keypress&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;keyup&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(bodyElement, &quot;loadeddata&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;loadedmetadata&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;loadstart&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(bodyElement, &quot;loadeddata&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;loadedmetadata&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;loadstart&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(bodyElement, &quot;mousedown&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;mouseenter&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;mouseleave&quot;) is &quot;target&quot;
</span><span class="lines">@@ -653,33 +654,32 @@
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;mouseup&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;mousewheel&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;paste&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(bodyElement, &quot;pause&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;play&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;playing&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;progress&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;ratechange&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(bodyElement, &quot;pause&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;play&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;playing&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;progress&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;ratechange&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(bodyElement, &quot;reset&quot;) is &quot;target&quot;
</span><span class="cx"> FAIL testElementAttribute(bodyElement, &quot;scroll&quot;) should be target. Was script: target; content: window.
</span><del>-FAIL testElementAttribute(bodyElement, &quot;search&quot;) should be target. Was script: target; content: none.
-FAIL testElementAttribute(bodyElement, &quot;seeked&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;seeking&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(bodyElement, &quot;search&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;seeked&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;seeking&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(bodyElement, &quot;select&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;selectstart&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(bodyElement, &quot;stalled&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(bodyElement, &quot;stalled&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(bodyElement, &quot;submit&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(bodyElement, &quot;suspend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;timeupdate&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;touchcancel&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;touchend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;touchmove&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;touchstart&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;transitionend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;volumechange&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(bodyElement, &quot;waiting&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(bodyElement, &quot;suspend&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;timeupdate&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;touchcancel&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;touchend&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;touchmove&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;touchstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;transitionend&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;volumechange&quot;) is &quot;target&quot;
+PASS testElementAttribute(bodyElement, &quot;waiting&quot;) is &quot;target&quot;
</ins><span class="cx"> FAIL testElementAttribute(bodyElement, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> FAIL testElementAttribute(bodyElement, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> FAIL testElementAttribute(bodyElement, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
</span><del>-FAIL testElementAttribute(bodyElement, &quot;webkitpresentationmodechanged&quot;) should be target. Was none.
</del><span class="cx"> FAIL testElementAttribute(bodyElement, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> PASS testElementAttribute(bodyElement, &quot;wheel&quot;) is &quot;target&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -713,14 +713,15 @@
</span><span class="cx"> Non-forwarded event names on &lt;frameset&gt; element
</span><span class="cx"> 
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;abort&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(framesetElement, &quot;animationend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;animationiteration&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;animationstart&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(framesetElement, &quot;animationend&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;animationiteration&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;animationstart&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(framesetElement, &quot;beforecopy&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;beforecut&quot;) is &quot;target&quot;
</span><ins>+PASS testElementAttribute(framesetElement, &quot;beforeload&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(framesetElement, &quot;beforepaste&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(framesetElement, &quot;canplay&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;canplaythrough&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(framesetElement, &quot;canplay&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;canplaythrough&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(framesetElement, &quot;change&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;click&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;contextmenu&quot;) is &quot;target&quot;
</span><span class="lines">@@ -734,19 +735,19 @@
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;dragover&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;dragstart&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;drop&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(framesetElement, &quot;durationchange&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;emptied&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;ended&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;focusin&quot;) should be target. Was script: none; content: window.
-FAIL testElementAttribute(framesetElement, &quot;focusout&quot;) should be target. Was script: none; content: window.
</del><ins>+PASS testElementAttribute(framesetElement, &quot;durationchange&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;emptied&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;ended&quot;) is &quot;target&quot;
+FAIL testElementAttribute(framesetElement, &quot;focusin&quot;) should be target. Was script: target; content: window.
+FAIL testElementAttribute(framesetElement, &quot;focusout&quot;) should be target. Was script: target; content: window.
</ins><span class="cx"> PASS testElementAttribute(framesetElement, &quot;input&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;invalid&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;keydown&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;keypress&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;keyup&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(framesetElement, &quot;loadeddata&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;loadedmetadata&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;loadstart&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(framesetElement, &quot;loadeddata&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;loadedmetadata&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;loadstart&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(framesetElement, &quot;mousedown&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;mouseenter&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;mouseleave&quot;) is &quot;target&quot;
</span><span class="lines">@@ -756,33 +757,32 @@
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;mouseup&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;mousewheel&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;paste&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(framesetElement, &quot;pause&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;play&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;playing&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;progress&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;ratechange&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(framesetElement, &quot;pause&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;play&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;playing&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;progress&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;ratechange&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(framesetElement, &quot;reset&quot;) is &quot;target&quot;
</span><span class="cx"> FAIL testElementAttribute(framesetElement, &quot;scroll&quot;) should be target. Was script: target; content: window.
</span><del>-FAIL testElementAttribute(framesetElement, &quot;search&quot;) should be target. Was script: target; content: none.
-FAIL testElementAttribute(framesetElement, &quot;seeked&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;seeking&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(framesetElement, &quot;search&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;seeked&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;seeking&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(framesetElement, &quot;select&quot;) is &quot;target&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;selectstart&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(framesetElement, &quot;stalled&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(framesetElement, &quot;stalled&quot;) is &quot;target&quot;
</ins><span class="cx"> PASS testElementAttribute(framesetElement, &quot;submit&quot;) is &quot;target&quot;
</span><del>-FAIL testElementAttribute(framesetElement, &quot;suspend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;timeupdate&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;touchcancel&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;touchend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;touchmove&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;touchstart&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;transitionend&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;volumechange&quot;) should be target. Was script: none; content: target.
-FAIL testElementAttribute(framesetElement, &quot;waiting&quot;) should be target. Was script: none; content: target.
</del><ins>+PASS testElementAttribute(framesetElement, &quot;suspend&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;timeupdate&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;touchcancel&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;touchend&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;touchmove&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;touchstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;transitionend&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;volumechange&quot;) is &quot;target&quot;
+PASS testElementAttribute(framesetElement, &quot;waiting&quot;) is &quot;target&quot;
</ins><span class="cx"> FAIL testElementAttribute(framesetElement, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> FAIL testElementAttribute(framesetElement, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> FAIL testElementAttribute(framesetElement, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
</span><del>-FAIL testElementAttribute(framesetElement, &quot;webkitpresentationmodechanged&quot;) should be target. Was none.
</del><span class="cx"> FAIL testElementAttribute(framesetElement, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;wheel&quot;) is &quot;target&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -791,6 +791,197 @@
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;noneventname&quot;) is &quot;none&quot;
</span><span class="cx"> PASS testElementAttribute(framesetElement, &quot;readystatechange&quot;) is &quot;none&quot;
</span><span class="cx"> 
</span><ins>+Event names we expect to be able to set on an element (tested on the SVG &lt;rect&gt; element)
+
+PASS testElementAttribute(rectElement, &quot;abort&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;animationend&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;animationiteration&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;animationstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;beforecopy&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;beforecut&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;beforeload&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;beforepaste&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;blur&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;canplay&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;canplaythrough&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;change&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;click&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;contextmenu&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;copy&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;cut&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;dblclick&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;drag&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;dragend&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;dragenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;dragleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;dragover&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;dragstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;drop&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;durationchange&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;emptied&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;ended&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;error&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;focus&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;focusin&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;focusout&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;input&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;invalid&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;keydown&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;keypress&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;keyup&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;load&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;loadeddata&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;loadedmetadata&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;loadstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;mousedown&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;mouseenter&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;mouseleave&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;mousemove&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;mouseout&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;mouseover&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;mouseup&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;mousewheel&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;paste&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;pause&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;play&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;playing&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;progress&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;ratechange&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;reset&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;scroll&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;search&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;seeked&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;seeking&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;select&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;selectstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;stalled&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;submit&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;suspend&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;timeupdate&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;touchcancel&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;touchend&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;touchmove&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;touchstart&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;transitionend&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;volumechange&quot;) is &quot;target&quot;
+PASS testElementAttribute(rectElement, &quot;waiting&quot;) is &quot;target&quot;
+FAIL testElementAttribute(rectElement, &quot;webkitanimationend&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(rectElement, &quot;webkitanimationiteration&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(rectElement, &quot;webkitanimationstart&quot;) should be target. Was script: none; content: target.
+FAIL testElementAttribute(rectElement, &quot;webkittransitionend&quot;) should be target. Was script: none; content: target.
+PASS testElementAttribute(rectElement, &quot;wheel&quot;) is &quot;target&quot;
+
+Event names we expect not to be able to set on an element (tested on the SVG &lt;rect&gt; element)
+
+PASS testElementAttribute(rectElement, &quot;beforeunload&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;hashchange&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;message&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;noneventname&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;offline&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;online&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;pagehide&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;pageshow&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;popstate&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;readystatechange&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;resize&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;selectionchange&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;storage&quot;) is &quot;none&quot;
+PASS testElementAttribute(rectElement, &quot;unload&quot;) is &quot;none&quot;
+
+Event names on a non-HTML element
+
+FAIL testElementAttribute(nonHTMLElement, &quot;abort&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;animationend&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;animationiteration&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;animationstart&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;beforecopy&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;beforecut&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;beforeload&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;beforepaste&quot;) should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, &quot;beforeunload&quot;) is &quot;none&quot;
+FAIL testElementAttribute(nonHTMLElement, &quot;blur&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;canplay&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;canplaythrough&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;change&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;click&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;contextmenu&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;copy&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;cut&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;dblclick&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;drag&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;dragend&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;dragenter&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;dragleave&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;dragover&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;dragstart&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;drop&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;durationchange&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;emptied&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;ended&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;error&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;focus&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;focusin&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;focusout&quot;) should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, &quot;hashchange&quot;) is &quot;none&quot;
+FAIL testElementAttribute(nonHTMLElement, &quot;input&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;invalid&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;keydown&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;keypress&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;keyup&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;load&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;loadeddata&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;loadedmetadata&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;loadstart&quot;) should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, &quot;message&quot;) is &quot;none&quot;
+FAIL testElementAttribute(nonHTMLElement, &quot;mousedown&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;mouseenter&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;mouseleave&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;mousemove&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;mouseout&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;mouseover&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;mouseup&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;mousewheel&quot;) should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, &quot;noneventname&quot;) is &quot;none&quot;
+PASS testElementAttribute(nonHTMLElement, &quot;offline&quot;) is &quot;none&quot;
+PASS testElementAttribute(nonHTMLElement, &quot;online&quot;) is &quot;none&quot;
+PASS testElementAttribute(nonHTMLElement, &quot;pagehide&quot;) is &quot;none&quot;
+PASS testElementAttribute(nonHTMLElement, &quot;pageshow&quot;) is &quot;none&quot;
+FAIL testElementAttribute(nonHTMLElement, &quot;paste&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;pause&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;play&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;playing&quot;) should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, &quot;popstate&quot;) is &quot;none&quot;
+FAIL testElementAttribute(nonHTMLElement, &quot;progress&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;ratechange&quot;) should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, &quot;readystatechange&quot;) is &quot;none&quot;
+FAIL testElementAttribute(nonHTMLElement, &quot;reset&quot;) should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, &quot;resize&quot;) is &quot;none&quot;
+FAIL testElementAttribute(nonHTMLElement, &quot;scroll&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;search&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;seeked&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;seeking&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;select&quot;) should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, &quot;selectionchange&quot;) is &quot;none&quot;
+FAIL testElementAttribute(nonHTMLElement, &quot;selectstart&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;stalled&quot;) should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, &quot;storage&quot;) is &quot;none&quot;
+FAIL testElementAttribute(nonHTMLElement, &quot;submit&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;suspend&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;timeupdate&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;touchcancel&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;touchend&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;touchmove&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;touchstart&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;transitionend&quot;) should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, &quot;unload&quot;) is &quot;none&quot;
+FAIL testElementAttribute(nonHTMLElement, &quot;volumechange&quot;) should be none. Was script: target; content: none.
+FAIL testElementAttribute(nonHTMLElement, &quot;waiting&quot;) should be none. Was script: target; content: none.
+PASS testElementAttribute(nonHTMLElement, &quot;webkitanimationend&quot;) is &quot;none&quot;
+PASS testElementAttribute(nonHTMLElement, &quot;webkitanimationiteration&quot;) is &quot;none&quot;
+PASS testElementAttribute(nonHTMLElement, &quot;webkitanimationstart&quot;) is &quot;none&quot;
+PASS testElementAttribute(nonHTMLElement, &quot;webkittransitionend&quot;) is &quot;none&quot;
+FAIL testElementAttribute(nonHTMLElement, &quot;wheel&quot;) should be none. Was script: target; content: none.
+
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomeventhandlerattributeshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/event-handler-attributes.html (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/event-handler-attributes.html        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/LayoutTests/fast/dom/event-handler-attributes.html        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -143,6 +143,7 @@
</span><span class="cx">     &quot;animationstart&quot;,
</span><span class="cx">     &quot;beforecopy&quot;,
</span><span class="cx">     &quot;beforecut&quot;,
</span><ins>+    &quot;beforeload&quot;,
</ins><span class="cx">     &quot;beforepaste&quot;,
</span><span class="cx">     &quot;blur&quot;,
</span><span class="cx">     &quot;canplay&quot;,
</span><span class="lines">@@ -211,7 +212,6 @@
</span><span class="cx">     &quot;webkitanimationend&quot;,
</span><span class="cx">     &quot;webkitanimationiteration&quot;,
</span><span class="cx">     &quot;webkitanimationstart&quot;,
</span><del>-    &quot;webkitpresentationmodechanged&quot;,
</del><span class="cx">     &quot;webkittransitionend&quot;,
</span><span class="cx">     &quot;wheel&quot;,
</span><span class="cx"> ];
</span><span class="lines">@@ -366,12 +366,14 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+const nonHTMLElement = document.createElementNS(&quot;foo&quot;, &quot;foo&quot;);
</ins><span class="cx"> const element = document.documentElement;
</span><span class="cx"> const bodyElement = document.body;
</span><span class="cx"> const audioElement = document.createElement(&quot;video&quot;);
</span><span class="cx"> const framesetElement = document.createElement(&quot;frameset&quot;);
</span><span class="cx"> const inputElement = document.createElement(&quot;input&quot;);
</span><span class="cx"> const videoElement = document.createElement(&quot;video&quot;);
</span><ins>+const rectElement = document.createElementNS(&quot;http://www.w3.org/2000/svg&quot;, &quot;rect&quot;);
</ins><span class="cx"> 
</span><span class="cx"> testArray(windowEvents, &quot;testScriptAttribute(window&quot;, &quot;window&quot;, &quot;Event names we expect to be able to set on the window object&quot;);
</span><span class="cx"> testArray(arrayDifference(allEventNames, windowEvents), &quot;testScriptAttribute(window&quot;, &quot;none&quot;, &quot;Event names we expect not to be able to set on the window object&quot;);
</span><span class="lines">@@ -401,6 +403,11 @@
</span><span class="cx"> testArray(arrayDifference(elementEvents, arrayUnion(bodyElementWindowForwardedEvents, bodyElementDocumentForwardedEvents)), &quot;testElementAttribute(framesetElement&quot;, &quot;target&quot;, &quot;Non-forwarded event names on &amp;lt;frameset&gt; element&quot;);
</span><span class="cx"> testArray(arrayDifference(allEventNames, arrayUnion(elementEvents, bodyElementWindowForwardedEvents, bodyElementDocumentForwardedEvents)), &quot;testElementAttribute(framesetElement&quot;, &quot;none&quot;, &quot;Event names we expect to not be able to set on &amp;lt;frameset&gt; element&quot;);
</span><span class="cx"> 
</span><ins>+testArray(elementEvents, &quot;testElementAttribute(rectElement&quot;, &quot;target&quot;, &quot;Event names we expect to be able to set on an element (tested on the SVG &amp;lt;rect&gt; element)&quot;);
+testArray(arrayDifference(allEventNames, elementEvents), &quot;testElementAttribute(rectElement&quot;, &quot;none&quot;, &quot;Event names we expect not to be able to set on an element (tested on the SVG &amp;lt;rect&gt; element)&quot;);
+
+testArray(allEventNames, &quot;testElementAttribute(nonHTMLElement&quot;, &quot;none&quot;, &quot;Event names on a non-HTML element&quot;);
+
</ins><span class="cx"> endSection();
</span><span class="cx"> 
</span><span class="cx"> /*
</span><span class="lines">@@ -409,11 +416,9 @@
</span><span class="cx"> 
</span><span class="cx"> To make the results of this test platform independent, there is no testing here for conditional events.
</span><span class="cx"> An alternative would be to always make these event handler attributes work even if the feature
</span><del>-that sends the events is turned off. See list here of IDL files that indicate these conditional events.
</del><ins>+that sends the events is turned off. See list here of IDL files that include these conditional events.
</ins><span class="cx"> 
</span><del>-page/DOMWindow.idl:#if defined(ENABLE_ORIENTATION_EVENTS) &amp;&amp; ENABLE_ORIENTATION_EVENTS
-page/DOMWindow.idl:    attribute EventListener onorientationchange;
-page/DOMWindow.idl:#endif
</del><ins>+page/DOMWindow.idl:    [Conditional=ORIENTATION_EVENTS] attribute EventListener onorientationchange;
</ins><span class="cx"> page/DOMWindow.idl:    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchstart;
</span><span class="cx"> page/DOMWindow.idl:    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchmove;
</span><span class="cx"> page/DOMWindow.idl:    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchend;
</span><span class="lines">@@ -443,31 +448,26 @@
</span><span class="cx"> dom/Document.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealright;
</span><span class="cx"> dom/Document.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealtop;
</span><span class="cx"> 
</span><del>-dom/Element.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchstart;
-dom/Element.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchmove;
-dom/Element.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchend;
-dom/Element.idl:    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchcancel;
</del><ins>+dom/Element.idl:    [NotEnumerable, Conditional=ENCRYPTED_MEDIA] attribute EventListener onwebkitkeyadded;
+dom/Element.idl:    [NotEnumerable, Conditional=ENCRYPTED_MEDIA] attribute EventListener onwebkitkeyerror;
+dom/Element.idl:    [NotEnumerable, Conditional=ENCRYPTED_MEDIA] attribute EventListener onwebkitkeymessage;
+dom/Element.idl:    [NotEnumerable, Conditional=ENCRYPTED_MEDIA|ENCRYPTED_MEDIA_V2] attribute EventListener onwebkitneedkey;
</ins><span class="cx"> dom/Element.idl:    [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenchange;
</span><span class="cx"> dom/Element.idl:    [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenerror;
</span><ins>+dom/Element.idl:    [NotEnumerable, Conditional=REQUEST_AUTOCOMPLETE] attribute EventListener onautocomplete;
+dom/Element.idl:    [NotEnumerable, Conditional=REQUEST_AUTOCOMPLETE] attribute EventListener onautocompleteerror;
+dom/Element.idl:    [NotEnumerable, Conditional=VIDEO_PRESENTATION_MODE] attribute EventListener onwebkitpresentationmodechanged;
</ins><span class="cx"> dom/Element.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealbottom;
</span><span class="cx"> dom/Element.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealleft;
</span><span class="cx"> dom/Element.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealright;
</span><span class="cx"> dom/Element.idl:    [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealtop;
</span><ins>+dom/Element.idl:    [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventListener onwebkitcurrentplaybacktargetiswirelesschanged;
+dom/Element.idl:    [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventListener onwebkitplaybacktargetavailabilitychanged;
</ins><span class="cx"> 
</span><span class="cx"> html/HTMLBodyElement.idl:    [Conditional=ORIENTATION_EVENTS, NotEnumerable, JSWindowEventListener] attribute EventListener onorientationchange;
</span><span class="cx"> 
</span><span class="cx"> html/HTMLFrameSetElement.idl:    [Conditional=ORIENTATION_EVENTS, NotEnumerable, JSWindowEventListener] attribute EventListener onorientationchange;
</span><span class="cx"> 
</span><del>-html/HTMLFormElement.idl:    [Conditional=REQUEST_AUTOCOMPLETE, NotEnumerable] attribute EventListener onautocomplete;
-html/HTMLFormElement.idl:    [Conditional=REQUEST_AUTOCOMPLETE, NotEnumerable] attribute EventListener onautocompleteerror;
-
-html/HTMLMediaElement.idl:    attribute EventListener onwebkitkeyadded;
-html/HTMLMediaElement.idl:    attribute EventListener onwebkitkeyerror;
-html/HTMLMediaElement.idl:    attribute EventListener onwebkitkeymessage;
-html/HTMLMediaElement.idl:    [Conditional=ENCRYPTED_MEDIA|ENCRYPTED_MEDIA_V2] attribute EventListener onwebkitneedkey;
-html/HTMLMediaElement.idl:    [Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventListener onwebkitcurrentplaybacktargetiswirelesschanged;
-html/HTMLMediaElement.idl:    [Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventListener onwebkitplaybacktargetavailabilitychanged;
-
</del><span class="cx"> ----------------
</span><span class="cx"> 
</span><span class="cx"> It would be good to extend this test to cover more objects.
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventseventattributeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/events/event-attribute-expected.txt (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/event-attribute-expected.txt        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/LayoutTests/fast/events/event-attribute-expected.txt        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -37,10 +37,10 @@
</span><span class="cx"> PASS /*img*/ typeof (element[&quot;onerror&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*img*/ typeof (element[&quot;oninput&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*img*/ typeof (element[&quot;oninvalid&quot;]) is &quot;function&quot;
</span><del>-FAIL /*img*/ typeof (element[&quot;ontouchstart&quot;]) should be function. Was undefined.
-FAIL /*img*/ typeof (element[&quot;ontouchmove&quot;]) should be function. Was undefined.
-FAIL /*img*/ typeof (element[&quot;ontouchend&quot;]) should be function. Was undefined.
-FAIL /*img*/ typeof (element[&quot;ontouchcancel&quot;]) should be function. Was undefined.
</del><ins>+PASS /*img*/ typeof (element[&quot;ontouchstart&quot;]) is &quot;function&quot;
+PASS /*img*/ typeof (element[&quot;ontouchmove&quot;]) is &quot;function&quot;
+PASS /*img*/ typeof (element[&quot;ontouchend&quot;]) is &quot;function&quot;
+PASS /*img*/ typeof (element[&quot;ontouchcancel&quot;]) is &quot;function&quot;
</ins><span class="cx"> PASS /*img*/ typeof (element[&quot;onwebkitfullscreenchange&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*img*/ typeof (element[&quot;onwebkitfullscreenerror&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*img*/ typeof (element[&quot;onabort&quot;]) is &quot;function&quot;
</span><span class="lines">@@ -81,10 +81,10 @@
</span><span class="cx"> PASS /*script*/ typeof (element[&quot;onerror&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*script*/ typeof (element[&quot;oninput&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*script*/ typeof (element[&quot;oninvalid&quot;]) is &quot;function&quot;
</span><del>-FAIL /*script*/ typeof (element[&quot;ontouchstart&quot;]) should be function. Was undefined.
-FAIL /*script*/ typeof (element[&quot;ontouchmove&quot;]) should be function. Was undefined.
-FAIL /*script*/ typeof (element[&quot;ontouchend&quot;]) should be function. Was undefined.
-FAIL /*script*/ typeof (element[&quot;ontouchcancel&quot;]) should be function. Was undefined.
</del><ins>+PASS /*script*/ typeof (element[&quot;ontouchstart&quot;]) is &quot;function&quot;
+PASS /*script*/ typeof (element[&quot;ontouchmove&quot;]) is &quot;function&quot;
+PASS /*script*/ typeof (element[&quot;ontouchend&quot;]) is &quot;function&quot;
+PASS /*script*/ typeof (element[&quot;ontouchcancel&quot;]) is &quot;function&quot;
</ins><span class="cx"> PASS /*script*/ typeof (element[&quot;onwebkitfullscreenchange&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*script*/ typeof (element[&quot;onwebkitfullscreenerror&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*script*/ typeof (element[&quot;onabort&quot;]) is &quot;function&quot;
</span><span class="lines">@@ -125,10 +125,10 @@
</span><span class="cx"> PASS /*video*/ typeof (element[&quot;onerror&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*video*/ typeof (element[&quot;oninput&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*video*/ typeof (element[&quot;oninvalid&quot;]) is &quot;function&quot;
</span><del>-FAIL /*video*/ typeof (element[&quot;ontouchstart&quot;]) should be function. Was undefined.
-FAIL /*video*/ typeof (element[&quot;ontouchmove&quot;]) should be function. Was undefined.
-FAIL /*video*/ typeof (element[&quot;ontouchend&quot;]) should be function. Was undefined.
-FAIL /*video*/ typeof (element[&quot;ontouchcancel&quot;]) should be function. Was undefined.
</del><ins>+PASS /*video*/ typeof (element[&quot;ontouchstart&quot;]) is &quot;function&quot;
+PASS /*video*/ typeof (element[&quot;ontouchmove&quot;]) is &quot;function&quot;
+PASS /*video*/ typeof (element[&quot;ontouchend&quot;]) is &quot;function&quot;
+PASS /*video*/ typeof (element[&quot;ontouchcancel&quot;]) is &quot;function&quot;
</ins><span class="cx"> PASS /*video*/ typeof (element[&quot;onwebkitfullscreenchange&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*video*/ typeof (element[&quot;onwebkitfullscreenerror&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*video*/ typeof (element[&quot;onabort&quot;]) is &quot;function&quot;
</span><span class="lines">@@ -169,10 +169,10 @@
</span><span class="cx"> PASS /*div*/ typeof (element[&quot;onerror&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*div*/ typeof (element[&quot;oninput&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*div*/ typeof (element[&quot;oninvalid&quot;]) is &quot;function&quot;
</span><del>-FAIL /*div*/ typeof (element[&quot;ontouchstart&quot;]) should be function. Was undefined.
-FAIL /*div*/ typeof (element[&quot;ontouchmove&quot;]) should be function. Was undefined.
-FAIL /*div*/ typeof (element[&quot;ontouchend&quot;]) should be function. Was undefined.
-FAIL /*div*/ typeof (element[&quot;ontouchcancel&quot;]) should be function. Was undefined.
</del><ins>+PASS /*div*/ typeof (element[&quot;ontouchstart&quot;]) is &quot;function&quot;
+PASS /*div*/ typeof (element[&quot;ontouchmove&quot;]) is &quot;function&quot;
+PASS /*div*/ typeof (element[&quot;ontouchend&quot;]) is &quot;function&quot;
+PASS /*div*/ typeof (element[&quot;ontouchcancel&quot;]) is &quot;function&quot;
</ins><span class="cx"> PASS /*div*/ typeof (element[&quot;onwebkitfullscreenchange&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*div*/ typeof (element[&quot;onwebkitfullscreenerror&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*div*/ typeof (element[&quot;onabort&quot;]) is &quot;function&quot;
</span><span class="lines">@@ -213,10 +213,10 @@
</span><span class="cx"> PASS /*form*/ typeof (element[&quot;onerror&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*form*/ typeof (element[&quot;oninput&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*form*/ typeof (element[&quot;oninvalid&quot;]) is &quot;function&quot;
</span><del>-FAIL /*form*/ typeof (element[&quot;ontouchstart&quot;]) should be function. Was undefined.
-FAIL /*form*/ typeof (element[&quot;ontouchmove&quot;]) should be function. Was undefined.
-FAIL /*form*/ typeof (element[&quot;ontouchend&quot;]) should be function. Was undefined.
-FAIL /*form*/ typeof (element[&quot;ontouchcancel&quot;]) should be function. Was undefined.
</del><ins>+PASS /*form*/ typeof (element[&quot;ontouchstart&quot;]) is &quot;function&quot;
+PASS /*form*/ typeof (element[&quot;ontouchmove&quot;]) is &quot;function&quot;
+PASS /*form*/ typeof (element[&quot;ontouchend&quot;]) is &quot;function&quot;
+PASS /*form*/ typeof (element[&quot;ontouchcancel&quot;]) is &quot;function&quot;
</ins><span class="cx"> PASS /*form*/ typeof (element[&quot;onwebkitfullscreenchange&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*form*/ typeof (element[&quot;onwebkitfullscreenerror&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*form*/ typeof (element[&quot;onabort&quot;]) is &quot;function&quot;
</span><span class="lines">@@ -257,10 +257,10 @@
</span><span class="cx"> PASS /*input*/ typeof (element[&quot;onerror&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*input*/ typeof (element[&quot;oninput&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*input*/ typeof (element[&quot;oninvalid&quot;]) is &quot;function&quot;
</span><del>-FAIL /*input*/ typeof (element[&quot;ontouchstart&quot;]) should be function. Was undefined.
-FAIL /*input*/ typeof (element[&quot;ontouchmove&quot;]) should be function. Was undefined.
-FAIL /*input*/ typeof (element[&quot;ontouchend&quot;]) should be function. Was undefined.
-FAIL /*input*/ typeof (element[&quot;ontouchcancel&quot;]) should be function. Was undefined.
</del><ins>+PASS /*input*/ typeof (element[&quot;ontouchstart&quot;]) is &quot;function&quot;
+PASS /*input*/ typeof (element[&quot;ontouchmove&quot;]) is &quot;function&quot;
+PASS /*input*/ typeof (element[&quot;ontouchend&quot;]) is &quot;function&quot;
+PASS /*input*/ typeof (element[&quot;ontouchcancel&quot;]) is &quot;function&quot;
</ins><span class="cx"> PASS /*input*/ typeof (element[&quot;onwebkitfullscreenchange&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*input*/ typeof (element[&quot;onwebkitfullscreenerror&quot;]) is &quot;function&quot;
</span><span class="cx"> PASS /*input*/ typeof (element[&quot;onabort&quot;]) is &quot;function&quot;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/JavaScriptCore/ChangeLog        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2015-03-10  Darin Adler  &lt;darin@apple.com&gt;
+
+        Some event handler fixes
+        https://bugs.webkit.org/show_bug.cgi?id=142474
+
+        Reviewed by Anders Carlsson.
+
+        * inspector/InjectedScriptManager.cpp:
+        (Inspector::InjectedScriptManager::createInjectedScript): Call clearException.
+        I spotted the fact it was missing by auditing all the calls to JSC::call.
+
</ins><span class="cx"> 2015-03-10  Matthew Mirman  &lt;mmirman@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Functions should have initialization precedence over arguments. 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorInjectedScriptManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/InjectedScriptManager.cpp (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/InjectedScriptManager.cpp        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/JavaScriptCore/inspector/InjectedScriptManager.cpp        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -156,6 +156,7 @@
</span><span class="cx">     args.append(jsNumber(id));
</span><span class="cx"> 
</span><span class="cx">     JSValue result = JSC::call(scriptState, functionValue, callType, callData, globalThisValue, args);
</span><ins>+    scriptState-&gt;clearException();
</ins><span class="cx">     if (result.isObject())
</span><span class="cx">         return Deprecated::ScriptObject(scriptState, result.getObject());
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/ChangeLog        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -1,3 +1,104 @@
</span><ins>+2015-03-10  Darin Adler  &lt;darin@apple.com&gt;
+
+        Some event handler fixes
+        https://bugs.webkit.org/show_bug.cgi?id=142474
+
+        Reviewed by Anders Carlsson.
+
+        * bindings/scripts/CodeGenerator.pm:
+        (GenerateConditionalStringFromAttributeValue): Improved the algorithm here to
+        handle combinations of &amp; and | in conditional expressions; that's coming up when
+        combining conditionals for includes in NavigatorContentUtils.idl.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (AddToImplIncludes): Removed the rudimentary attempt to split and merge
+        conditionals involving | here; instead we rely on the rules in the
+        GenerateConditionalStringFromAttributeValue to handle this.
+        (GenerateImplementation): Passed new &quot;conditional&quot; argument to JSValueToNative.
+        (GenerateParametersCheck): Pass &quot;conditional&quot; argument to AddToImplIncludes and
+        JSValueToNative.
+        (JSValueToNative): Changed to take &quot;conditional&quot; as an argument, since getting
+        it from the signature won't work for a method parameter.
+        (WriteData): Merge duplicates based on the result of the
+        GenerateConditionalStringFromAttributeValue function rather than on the values
+        passed into that function, since that function converts conditionals into a
+        canonical form and can make two strings equal that don't start out that way.
+
+        * bindings/scripts/CodeGeneratorObjC.pm:
+        (SkipAttribute): Added code to guarantee we won't make Objective-C bindings
+        for event handlers. We will rename EventListener to EventHandler in a
+        subsequent patch.
+
+        * bindings/scripts/test/JS/JSTestInterface.cpp: Updated for a progression caused
+        by the better logic for conditional includes.
+
+        * bindings/scripts/test/JS/JSTestObj.cpp: Updated for change to the test below.
+        * bindings/scripts/test/TestObj.idl: Added test of an event handler attribute.
+
+        * dom/Document.idl: Removed unneeded language #if around event handler
+        attributes. Removed all the commented out event handler attributes.
+        Sorted event handler attributes into a single section rather than separating
+        &quot;standard&quot; from &quot;extensions&quot;. Sorted the conditional event handler attributes
+        into paragraphs at the bottom. We will probably make them all unconditional
+        in a subsequent patch.
+
+        * dom/Element.idl: Removed unneeded language #if around event handler
+        attributes. Removed all the commented out event handler attributes.
+        Moved event handler attributes here from all derived element classes to
+        match the approach from the HTML standard. Also resorted the attributes
+        as in Document above.
+
+        * html/HTMLBodyElement.idl: Removed unneeded language #if around event handler
+        attributes. Removed all the commented out event handler attributes.
+        Sorted event handler attributes into a single section rather than separating
+        &quot;standard&quot; from &quot;overrides&quot;.
+
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::populateEventNameForAttributeLocalNameMap):
+        Added a few missing attribute names, and re-sorted a bit. Moved any from
+        element subclasses here.
+
+        * html/HTMLFormElement.cpp:
+        (WebCore::HTMLFormElement::parseAttribute): Moved code to handle
+        oncomplete and oncompleteerror to Element and HTMLElement.
+        * html/HTMLFormElement.idl: Ditto.
+
+        * html/HTMLFrameSetElement.idl: Removed #if and resorted as above.
+
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::parseAttribute): Moved code to handle
+        onsearch to HTMLElement.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::parseAttribute): Moved code to handle
+        all the event handler attributes to HTMLElement.
+        (WebCore::HTMLMediaElement::updateCaptionContainer): Removed a redundant
+        if statement I noticed while auditing all calls to JSC::call.
+        (WebCore::HTMLMediaElement::didAddUserAgentShadowRoot): Added clearException.
+        I noticed this was missing because a flawed earlier version of my patch was
+        causing the script to fail, leaving an exception behind that caused an
+        assertion later. So I audited all calls to JSC::call looking for this mistake.
+
+        * html/HTMLMediaElement.idl: Moved all the event handlers from here to
+        Element. Also changed everything possible to use Conditional instead of #if.
+
+        * html/HTMLPlugInImageElement.cpp:
+        (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Added
+        clearException. Noticed it was missing while auditing all calls to JSC::call.
+
+        * html/HTMLVideoElement.cpp:
+        (WebCore::HTMLVideoElement::parseAttribute): Moved event handler code to
+        HTMLElement.
+
+        * html/HTMLVideoElement.idl: Moved event handler to Element.idl and use
+        Conditional instead of #if.
+
+        * page/DOMWindow.idl: Use Conditional instead of #if and tidy up the event
+        handlers section.
+
+        * svg/svgattrs.in: Remove six unused attribute names. Presumably used in
+        some older scheme to implement event handlers but no longer used at all.
+
</ins><span class="cx"> 2015-03-10  Brent Fulgham  &lt;bfulgham@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         CSS scroll-snap-destination and scroll-snap-coordinate are not honoring position values
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -686,15 +686,26 @@
</span><span class="cx">     my $generator = shift;
</span><span class="cx">     my $conditional = shift;
</span><span class="cx"> 
</span><del>-    my $operator = ($conditional =~ /&amp;/ ? '&amp;' : ($conditional =~ /\|/ ? '|' : ''));
-    if ($operator) {
-        # Avoid duplicated conditions.
-        my %conditions;
-        map { $conditions{$_} = 1 } split('\\' . $operator, $conditional);
-        return &quot;ENABLE(&quot; . join(&quot;) $operator$operator ENABLE(&quot;, sort keys %conditions) . &quot;)&quot;;
-    } else {
-        return &quot;ENABLE(&quot; . $conditional . &quot;)&quot;;
-    }
</del><ins>+    my %disjunction;
+    map {
+        my $expression = $_;
+        my %conjunction;
+        map { $conjunction{$_} = 1; } split(/&amp;/, $expression);
+        $expression = &quot;ENABLE(&quot; . join(&quot;) &amp;&amp; ENABLE(&quot;, sort keys %conjunction) . &quot;)&quot;;
+        $disjunction{$expression} = 1
+    } split(/\|/, $conditional);
+
+    return &quot;1&quot; if keys %disjunction == 0;
+    return (%disjunction)[0] if keys %disjunction == 1;
+
+    my @parenthesized;
+    map {
+        my $expression = $_;
+        $expression = &quot;($expression)&quot; if $expression =~ / /;
+        push @parenthesized, $expression;
+    } sort keys %disjunction;
+
+    return join(&quot; || &quot;, @parenthesized);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> sub GenerateCompileTimeCheckForEnumsIfNeeded
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorJSpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -289,14 +289,7 @@
</span><span class="cx">         $implIncludes{$header} = $conditional;
</span><span class="cx">     } else {
</span><span class="cx">         my $oldValue = $implIncludes{$header};
</span><del>-        if ($oldValue ne 1) {
-            my %newValue = ();
-            $newValue{$conditional} = 1;
-            foreach my $condition (split(/\|/, $oldValue)) {
-                $newValue{$condition} = 1;
-            }
-            $implIncludes{$header} = join(&quot;|&quot;, sort keys %newValue);
-        }
</del><ins>+        $implIncludes{$header} = &quot;$oldValue|$conditional&quot; if $oldValue ne 1;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2625,7 +2618,7 @@
</span><span class="cx">                         }
</span><span class="cx">                     }
</span><span class="cx"> 
</span><del>-                    push(@implContent, &quot;    &quot; . GetNativeTypeFromSignature($attribute-&gt;signature) . &quot; nativeValue(&quot; . JSValueToNative($attribute-&gt;signature, &quot;value&quot;) . &quot;);\n&quot;);
</del><ins>+                    push(@implContent, &quot;    &quot; . GetNativeTypeFromSignature($attribute-&gt;signature) . &quot; nativeValue(&quot; . JSValueToNative($attribute-&gt;signature, &quot;value&quot;, $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;}) . &quot;);\n&quot;);
</ins><span class="cx">                     push(@implContent, &quot;    if (UNLIKELY(exec-&gt;hadException()))\n&quot;);
</span><span class="cx">                     push(@implContent, &quot;        return;\n&quot;);
</span><span class="cx"> 
</span><span class="lines">@@ -2680,7 +2673,7 @@
</span><span class="cx">                         }
</span><span class="cx">                         if ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;ImplementedBy&quot;}) {
</span><span class="cx">                             my $implementedBy = $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;ImplementedBy&quot;};
</span><del>-                            $implIncludes{&quot;${implementedBy}.h&quot;} = 1;
</del><ins>+                            AddToImplIncludes(&quot;${implementedBy}.h&quot;, $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;});
</ins><span class="cx">                             unshift(@arguments, &quot;&amp;impl&quot;) if !$attribute-&gt;isStatic;
</span><span class="cx">                             $functionName = &quot;${implementedBy}::${functionName}&quot;;
</span><span class="cx">                         } elsif ($attribute-&gt;isStatic) {
</span><span class="lines">@@ -3183,7 +3176,7 @@
</span><span class="cx">     my $functionName;
</span><span class="cx">     my $implementedBy = $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;ImplementedBy&quot;};
</span><span class="cx">     if ($implementedBy) {
</span><del>-        AddToImplIncludes(&quot;${implementedBy}.h&quot;);
</del><ins>+        AddToImplIncludes(&quot;${implementedBy}.h&quot;, $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;});
</ins><span class="cx">         unshift(@arguments, &quot;&amp;impl&quot;) if !$function-&gt;isStatic;
</span><span class="cx">         $functionName = &quot;${implementedBy}::${functionImplementationName}&quot;;
</span><span class="cx">     } elsif ($function-&gt;isStatic) {
</span><span class="lines">@@ -3336,7 +3329,7 @@
</span><span class="cx">                 push(@$outputArray, &quot;        return JSValue::encode(jsNull());\n&quot;);
</span><span class="cx">                 push(@$outputArray, &quot;    const AtomicString&amp; $name(existing_$name);\n&quot;);
</span><span class="cx">             } else {
</span><del>-                push(@$outputArray, &quot;    &quot; . GetNativeTypeFromSignature($parameter) . &quot; $name(&quot; . JSValueToNative($parameter, $optional &amp;&amp; $defaultAttribute &amp;&amp; $defaultAttribute eq &quot;NullString&quot; ? &quot;argumentOrNull(exec, $argsIndex)&quot; : &quot;exec-&gt;argument($argsIndex)&quot;) . &quot;);\n&quot;);
</del><ins>+                push(@$outputArray, &quot;    &quot; . GetNativeTypeFromSignature($parameter) . &quot; $name(&quot; . JSValueToNative($parameter, $optional &amp;&amp; $defaultAttribute &amp;&amp; $defaultAttribute eq &quot;NullString&quot; ? &quot;argumentOrNull(exec, $argsIndex)&quot; : &quot;exec-&gt;argument($argsIndex)&quot;, $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;}) . &quot;);\n&quot;);
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             # If a parameter is &quot;an index&quot; and it's negative it should throw an INDEX_SIZE_ERR exception.
</span><span class="lines">@@ -3794,8 +3787,8 @@
</span><span class="cx"> {
</span><span class="cx">     my $signature = shift;
</span><span class="cx">     my $value = shift;
</span><ins>+    my $conditional = shift;
</ins><span class="cx"> 
</span><del>-    my $conditional = $signature-&gt;extendedAttributes-&gt;{&quot;Conditional&quot;};
</del><span class="cx">     my $type = $signature-&gt;type;
</span><span class="cx"> 
</span><span class="cx">     return &quot;$value.toBoolean(exec)&quot; if $type eq &quot;boolean&quot;;
</span><span class="lines">@@ -4202,14 +4195,14 @@
</span><span class="cx">         if ($condition eq 1) {
</span><span class="cx">             push @includes, $include;
</span><span class="cx">         } else {
</span><del>-            push @{$implIncludeConditions{$condition}}, $include;
</del><ins>+            push @{$implIncludeConditions{$codeGenerator-&gt;GenerateConditionalStringFromAttributeValue($condition)}}, $include;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     foreach my $include (sort @includes) {
</span><span class="cx">         $contents .= &quot;#include $include\n&quot;;
</span><span class="cx">     }
</span><span class="cx">     foreach my $condition (sort keys %implIncludeConditions) {
</span><del>-        $contents .= &quot;\n#if &quot; . $codeGenerator-&gt;GenerateConditionalStringFromAttributeValue($condition) . &quot;\n&quot;;
</del><ins>+        $contents .= &quot;\n#if &quot; . $condition . &quot;\n&quot;;
</ins><span class="cx">         foreach my $include (sort @{$implIncludeConditions{$condition}}) {
</span><span class="cx">             $contents .= &quot;#include $include\n&quot;;
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptsCodeGeneratorObjCpm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -555,12 +555,12 @@
</span><span class="cx">     return 1 if $codeGenerator-&gt;GetArrayType($type);
</span><span class="cx">     return 1 if $codeGenerator-&gt;IsTypedArrayType($type);
</span><span class="cx">     return 1 if $codeGenerator-&gt;IsEnumType($type);
</span><ins>+    return 1 if $type eq &quot;EventListener&quot;;
</ins><span class="cx">     return 1 if $attribute-&gt;isStatic;
</span><span class="cx"> 
</span><del>-    # This is for DynamicsCompressorNode.idl
-    if ($attribute-&gt;signature-&gt;name eq &quot;release&quot;) {
-        return 1;
-    }
</del><ins>+    # This is for DynamicsCompressorNode.idl.
+    # FIXME: Normally we would rename rather than just skipping for a case like this.
+    return 1 if $attribute-&gt;signature-&gt;name eq &quot;release&quot;;
</ins><span class="cx"> 
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestInterfacecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> #include &quot;JSDOMBinding.h&quot;
</span><del>-#include &quot;JSTestObj.h&quot;
</del><span class="cx"> #include &quot;ScriptExecutionContext.h&quot;
</span><span class="cx"> #include &quot;TestInterface.h&quot;
</span><span class="cx"> #include &quot;TestObj.h&quot;
</span><span class="lines">@@ -36,14 +35,12 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(Condition11) || ENABLE(Condition12) || ENABLE(Condition22) || ENABLE(Condition23)
</span><span class="cx"> #include &quot;JSNode.h&quot;
</span><ins>+#include &quot;JSTestObj.h&quot;
+#include &quot;Node.h&quot;
</ins><span class="cx"> #include &quot;URL.h&quot;
</span><span class="cx"> #include &lt;runtime/JSString.h&gt;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if ENABLE(Condition11) || ENABLE(Condition12) || ENABLE(Condition22) || ENABLE(Condition23)
-#include &quot;Node.h&quot;
-#endif
-
</del><span class="cx"> using namespace JSC;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestJSJSTestObjcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -220,6 +220,8 @@
</span><span class="cx"> void setJSTestObjStringAttrWithSetterException(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</span><span class="cx"> JSC::EncodedJSValue jsTestObjCustomAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> void setJSTestObjCustomAttr(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</span><ins>+JSC::EncodedJSValue jsTestObjOnfoo(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
+void setJSTestObjOnfoo(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</ins><span class="cx"> JSC::EncodedJSValue jsTestObjWithScriptStateAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="cx"> void setJSTestObjWithScriptStateAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::EncodedJSValue);
</span><span class="cx"> JSC::EncodedJSValue jsTestObjWithScriptExecutionContextAttribute(JSC::ExecState*, JSC::JSObject*, JSC::EncodedJSValue, JSC::PropertyName);
</span><span class="lines">@@ -508,6 +510,7 @@
</span><span class="cx">     { &quot;attrWithSetterException&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjAttrWithSetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjAttrWithSetterException) },
</span><span class="cx">     { &quot;stringAttrWithGetterException&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjStringAttrWithGetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjStringAttrWithGetterException) },
</span><span class="cx">     { &quot;stringAttrWithSetterException&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjStringAttrWithSetterException), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjStringAttrWithSetterException) },
</span><ins>+    { &quot;onfoo&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjOnfoo), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjOnfoo) },
</ins><span class="cx">     { &quot;withScriptStateAttribute&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptStateAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptStateAttribute) },
</span><span class="cx">     { &quot;withScriptExecutionContextAttribute&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptExecutionContextAttribute), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptExecutionContextAttribute) },
</span><span class="cx">     { &quot;withScriptStateAttributeRaises&quot;, DontDelete | CustomAccessor, NoIntrinsic, (intptr_t)static_cast&lt;PropertySlot::GetValueFunc&gt;(jsTestObjWithScriptStateAttributeRaises), (intptr_t) static_cast&lt;PutPropertySlot::PutValueFunc&gt;(setJSTestObjWithScriptStateAttributeRaises) },
</span><span class="lines">@@ -1241,6 +1244,22 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+EncodedJSValue jsTestObjOnfoo(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
+{
+    UNUSED_PARAM(exec);
+    UNUSED_PARAM(slotBase);
+    UNUSED_PARAM(thisValue);
+    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
+    if (UNLIKELY(!castedThis)) {
+        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(slotBase))
+            return reportDeprecatedGetterError(*exec, &quot;TestObj&quot;, &quot;onfoo&quot;);
+        return throwGetterTypeError(*exec, &quot;TestObj&quot;, &quot;onfoo&quot;);
+    }
+    UNUSED_PARAM(exec);
+    return JSValue::encode(eventHandlerAttribute(castedThis-&gt;impl(), eventNames().fooEvent));
+}
+
+
</ins><span class="cx"> EncodedJSValue jsTestObjWithScriptStateAttribute(ExecState* exec, JSObject* slotBase, EncodedJSValue thisValue, PropertyName)
</span><span class="cx"> {
</span><span class="cx">     UNUSED_PARAM(exec);
</span><span class="lines">@@ -2421,6 +2440,22 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+void setJSTestObjOnfoo(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
+{
+    JSValue value = JSValue::decode(encodedValue);
+    UNUSED_PARAM(baseObject);
+    JSTestObj* castedThis = jsDynamicCast&lt;JSTestObj*&gt;(JSValue::decode(thisValue));
+    if (UNLIKELY(!castedThis)) {
+        if (jsDynamicCast&lt;JSTestObjPrototype*&gt;(JSValue::decode(thisValue)))
+            reportDeprecatedSetterError(*exec, &quot;TestObj&quot;, &quot;onfoo&quot;);
+        else
+            throwSetterTypeError(*exec, &quot;TestObj&quot;, &quot;onfoo&quot;);
+        return;
+    }
+    setEventHandlerAttribute(*exec, *castedThis, castedThis-&gt;impl(), eventNames().fooEvent, value);
+}
+
+
</ins><span class="cx"> void setJSTestObjWithScriptStateAttribute(ExecState* exec, JSObject* baseObject, EncodedJSValue thisValue, EncodedJSValue encodedValue)
</span><span class="cx"> {
</span><span class="cx">     JSValue value = JSValue::decode(encodedValue);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsscriptstestTestObjidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/scripts/test/TestObj.idl (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/scripts/test/TestObj.idl        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/bindings/scripts/test/TestObj.idl        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -109,12 +109,9 @@
</span><span class="cx">     [Custom] void customMethod();
</span><span class="cx">     [Custom] void customMethodWithArgs(long longArg, DOMString strArg, TestObj objArg);
</span><span class="cx"> 
</span><del>-    void addEventListener(DOMString type, 
-                          EventListener listener, 
-                          optional boolean useCapture);
-    void removeEventListener(DOMString type, 
-                             EventListener listener, 
-                             optional boolean useCapture);
</del><ins>+    void addEventListener(DOMString type, EventListener listener, optional boolean useCapture);
+    void removeEventListener(DOMString type, EventListener listener, optional boolean useCapture);
+    attribute EventListener onfoo;
</ins><span class="cx"> 
</span><span class="cx">     // 'CallWith' extended attribute
</span><span class="cx">     [CallWith=ScriptState] void withScriptStateVoid();
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.idl (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.idl        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/dom/Document.idl        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -244,13 +244,16 @@
</span><span class="cx">     [Conditional=FONT_LOAD_EVENTS] readonly attribute FontLoader fonts;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if (!defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C) &amp;&amp; (!defined(LANGUAGE_GOBJECT) || !LANGUAGE_GOBJECT)
-    // Event handler DOM attributes
</del><span class="cx">     [NotEnumerable] attribute EventListener onabort;
</span><ins>+    [NotEnumerable] attribute EventListener onbeforecopy;
+    [NotEnumerable] attribute EventListener onbeforecut;
+    [NotEnumerable] attribute EventListener onbeforepaste;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onblur;
</span><span class="cx">     [NotEnumerable] attribute EventListener onchange;
</span><span class="cx">     [NotEnumerable] attribute EventListener onclick;
</span><span class="cx">     [NotEnumerable] attribute EventListener oncontextmenu;
</span><ins>+    [NotEnumerable] attribute EventListener oncopy;
+    [NotEnumerable] attribute EventListener oncut;
</ins><span class="cx">     [NotEnumerable] attribute EventListener ondblclick;
</span><span class="cx">     [NotEnumerable] attribute EventListener ondrag;
</span><span class="cx">     [NotEnumerable] attribute EventListener ondragend;
</span><span class="lines">@@ -275,59 +278,34 @@
</span><span class="cx">     [NotEnumerable] attribute EventListener onmouseover;
</span><span class="cx">     [NotEnumerable] attribute EventListener onmouseup;
</span><span class="cx">     [NotEnumerable] attribute EventListener onmousewheel;
</span><ins>+    [NotEnumerable] attribute EventListener onpaste;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onreadystatechange;
</span><ins>+    [NotEnumerable] attribute EventListener onreset;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onscroll;
</span><ins>+    [NotEnumerable] attribute EventListener onsearch;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onselect;
</span><ins>+    [NotEnumerable] attribute EventListener onselectionchange;
+    [NotEnumerable] attribute EventListener onselectstart;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onsubmit;
</span><span class="cx">     [NotEnumerable] attribute EventListener onwheel;
</span><span class="cx"> 
</span><del>-    // [NotEnumerable] attribute EventListener oncanplay;
-    // [NotEnumerable] attribute EventListener oncanplaythrough;
-    // [NotEnumerable] attribute EventListener ondurationchange;
-    // [NotEnumerable] attribute EventListener onemptied;
-    // [NotEnumerable] attribute EventListener onended;
-    // [NotEnumerable] attribute EventListener onloadeddata;
-    // [NotEnumerable] attribute EventListener onloadedmetadata;
-    // [NotEnumerable] attribute EventListener onloadstart;
-    // [NotEnumerable] attribute EventListener onpause;
-    // [NotEnumerable] attribute EventListener onplay;
-    // [NotEnumerable] attribute EventListener onplaying;
-    // [NotEnumerable] attribute EventListener onprogress;
-    // [NotEnumerable] attribute EventListener onratechange;
-    // [NotEnumerable] attribute EventListener onseeked;
-    // [NotEnumerable] attribute EventListener onseeking;
-    // [NotEnumerable] attribute EventListener onshow;
-    // [NotEnumerable] attribute EventListener onstalled;
-    // [NotEnumerable] attribute EventListener onsuspend;
-    // [NotEnumerable] attribute EventListener ontimeupdate;
-    // [NotEnumerable] attribute EventListener onvolumechange;
-    // [NotEnumerable] attribute EventListener onwaiting;
</del><ins>+    [NotEnumerable, Conditional=CSP_NEXT] attribute EventListener onsecuritypolicyviolation;
</ins><span class="cx"> 
</span><del>-    // WebKit extensions
-    [NotEnumerable] attribute EventListener onbeforecut;
-    [NotEnumerable] attribute EventListener oncut;
-    [NotEnumerable] attribute EventListener onbeforecopy;
-    [NotEnumerable] attribute EventListener oncopy;
-    [NotEnumerable] attribute EventListener onbeforepaste;
-    [NotEnumerable] attribute EventListener onpaste;
-    [NotEnumerable] attribute EventListener onreset;
-    [NotEnumerable] attribute EventListener onsearch;
-    [NotEnumerable] attribute EventListener onselectstart;
-    [NotEnumerable] attribute EventListener onselectionchange;
-    [NotEnumerable,Conditional=TOUCH_EVENTS] attribute EventListener ontouchstart;
-    [NotEnumerable,Conditional=TOUCH_EVENTS] attribute EventListener ontouchmove;
-    [NotEnumerable,Conditional=TOUCH_EVENTS] attribute EventListener ontouchend;
-    [NotEnumerable,Conditional=TOUCH_EVENTS] attribute EventListener ontouchcancel;
</del><span class="cx">     [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenchange;
</span><span class="cx">     [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenerror;
</span><ins>+
</ins><span class="cx">     [NotEnumerable, Conditional=POINTER_LOCK] attribute EventListener onpointerlockchange;
</span><span class="cx">     [NotEnumerable, Conditional=POINTER_LOCK] attribute EventListener onpointerlockerror;
</span><del>-    [NotEnumerable, Conditional=CSP_NEXT] attribute EventListener onsecuritypolicyviolation;
</del><ins>+
+    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchstart;
+    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchmove;
+    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchend;
+    [NotEnumerable, Conditional=TOUCH_EVENTS] attribute EventListener ontouchcancel;
+
</ins><span class="cx">     [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealbottom;
</span><span class="cx">     [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealleft;
</span><span class="cx">     [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealright;
</span><span class="cx">     [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealtop;
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx"> #if defined(ENABLE_IOS_TOUCH_EVENTS) &amp;&amp; ENABLE_IOS_TOUCH_EVENTS
</span><span class="cx"> #include &lt;WebKitAdditions/DocumentIOS.idl&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.idl (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.idl        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/dom/Element.idl        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -164,13 +164,26 @@
</span><span class="cx">     [Conditional=CSS_REGIONS] readonly attribute DOMString webkitRegionOverset;
</span><span class="cx">     [Conditional=CSS_REGIONS] sequence&lt;Range&gt; webkitGetRegionFlowRanges();
</span><span class="cx"> 
</span><del>-#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
-    // Event handler DOM attributes
</del><ins>+    // FIXME: These should be on HTMLElement and SVGElement, not on Element.
+    // But we don't want to copy and paste this entire list; we can leave on Element
+    // for the moment since it doesn't do much real harm.
+
</ins><span class="cx">     [NotEnumerable] attribute EventListener onabort;
</span><ins>+    [NotEnumerable] attribute EventListener onanimationend;
+    [NotEnumerable] attribute EventListener onanimationiteration;
+    [NotEnumerable] attribute EventListener onanimationstart;
+    [NotEnumerable] attribute EventListener onbeforecopy;
+    [NotEnumerable] attribute EventListener onbeforecut;
+    [NotEnumerable] attribute EventListener onbeforeload;
+    [NotEnumerable] attribute EventListener onbeforepaste;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onblur;
</span><ins>+    [NotEnumerable] attribute EventListener oncanplay;
+    [NotEnumerable] attribute EventListener oncanplaythrough;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onchange;
</span><span class="cx">     [NotEnumerable] attribute EventListener onclick;
</span><span class="cx">     [NotEnumerable] attribute EventListener oncontextmenu;
</span><ins>+    [NotEnumerable] attribute EventListener oncopy;
+    [NotEnumerable] attribute EventListener oncut;
</ins><span class="cx">     [NotEnumerable] attribute EventListener ondblclick;
</span><span class="cx">     [NotEnumerable] attribute EventListener ondrag;
</span><span class="cx">     [NotEnumerable] attribute EventListener ondragend;
</span><span class="lines">@@ -179,14 +192,22 @@
</span><span class="cx">     [NotEnumerable] attribute EventListener ondragover;
</span><span class="cx">     [NotEnumerable] attribute EventListener ondragstart;
</span><span class="cx">     [NotEnumerable] attribute EventListener ondrop;
</span><ins>+    [NotEnumerable] attribute EventListener ondurationchange;
+    [NotEnumerable] attribute EventListener onemptied;
+    [NotEnumerable] attribute EventListener onended;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onerror;
</span><span class="cx">     [NotEnumerable] attribute EventListener onfocus;
</span><ins>+    [NotEnumerable] attribute EventListener onfocusin;
+    [NotEnumerable] attribute EventListener onfocusout;
</ins><span class="cx">     [NotEnumerable] attribute EventListener oninput;
</span><span class="cx">     [NotEnumerable] attribute EventListener oninvalid;
</span><span class="cx">     [NotEnumerable] attribute EventListener onkeydown;
</span><span class="cx">     [NotEnumerable] attribute EventListener onkeypress;
</span><span class="cx">     [NotEnumerable] attribute EventListener onkeyup;
</span><span class="cx">     [NotEnumerable] attribute EventListener onload;
</span><ins>+    [NotEnumerable] attribute EventListener onloadeddata;
+    [NotEnumerable] attribute EventListener onloadedmetadata;
+    [NotEnumerable] attribute EventListener onloadstart;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onmousedown;
</span><span class="cx">     [NotEnumerable] attribute EventListener onmouseenter;
</span><span class="cx">     [NotEnumerable] attribute EventListener onmouseleave;
</span><span class="lines">@@ -195,55 +216,56 @@
</span><span class="cx">     [NotEnumerable] attribute EventListener onmouseover;
</span><span class="cx">     [NotEnumerable] attribute EventListener onmouseup;
</span><span class="cx">     [NotEnumerable] attribute EventListener onmousewheel;
</span><ins>+    [NotEnumerable] attribute EventListener onpaste;
+    [NotEnumerable] attribute EventListener onpause;
+    [NotEnumerable] attribute EventListener onplay;
+    [NotEnumerable] attribute EventListener onplaying;
+    [NotEnumerable] attribute EventListener onprogress;
+    [NotEnumerable] attribute EventListener onratechange;
+    [NotEnumerable] attribute EventListener onreset;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onscroll;
</span><ins>+    [NotEnumerable] attribute EventListener onsearch;
+    [NotEnumerable] attribute EventListener onseeked;
+    [NotEnumerable] attribute EventListener onseeking;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onselect;
</span><ins>+    [NotEnumerable] attribute EventListener onselectstart;
+    [NotEnumerable] attribute EventListener onstalled;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onsubmit;
</span><ins>+    [NotEnumerable] attribute EventListener onsuspend;
+    [NotEnumerable] attribute EventListener ontimeupdate;
+    [NotEnumerable] attribute EventListener ontouchcancel;
+    [NotEnumerable] attribute EventListener ontouchend;
+    [NotEnumerable] attribute EventListener ontouchmove;
+    [NotEnumerable] attribute EventListener ontouchstart;
+    [NotEnumerable] attribute EventListener ontransitionend;
+    [NotEnumerable] attribute EventListener onvolumechange;
+    [NotEnumerable] attribute EventListener onwaiting;
</ins><span class="cx">     [NotEnumerable] attribute EventListener onwheel;
</span><span class="cx"> 
</span><del>-    // [NotEnumerable] attribute EventListener oncanplay;
-    // [NotEnumerable] attribute EventListener oncanplaythrough;
-    // [NotEnumerable] attribute EventListener ondurationchange;
-    // [NotEnumerable] attribute EventListener onemptied;
-    // [NotEnumerable] attribute EventListener onended;
-    // [NotEnumerable] attribute EventListener onloadeddata;
-    // [NotEnumerable] attribute EventListener onloadedmetadata;
-    // [NotEnumerable] attribute EventListener onloadstart;
-    // [NotEnumerable] attribute EventListener onpause;
-    // [NotEnumerable] attribute EventListener onplay;
-    // [NotEnumerable] attribute EventListener onplaying;
-    // [NotEnumerable] attribute EventListener onprogress;
-    // [NotEnumerable] attribute EventListener onratechange;
-    // [NotEnumerable] attribute EventListener onreadystatechange;
-    // [NotEnumerable] attribute EventListener onseeked;
-    // [NotEnumerable] attribute EventListener onseeking;
-    // [NotEnumerable] attribute EventListener onshow;
-    // [NotEnumerable] attribute EventListener onstalled;
-    // [NotEnumerable] attribute EventListener onsuspend;
-    // [NotEnumerable] attribute EventListener ontimeupdate;
-    // [NotEnumerable] attribute EventListener onvolumechange;
-    // [NotEnumerable] attribute EventListener onwaiting;
</del><ins>+    // FIXME: If event handler attributes are all not enumerable, is there really a need to have them be conditional?
+    // I suggest just including them all unconditionally even if the event in question won't ever be sent.
</ins><span class="cx"> 
</span><del>-    // WebKit extensions
-    [NotEnumerable] attribute EventListener onbeforecut;
-    [NotEnumerable] attribute EventListener oncut;
-    [NotEnumerable] attribute EventListener onbeforecopy;
-    [NotEnumerable] attribute EventListener oncopy;
-    [NotEnumerable] attribute EventListener onbeforepaste;
-    [NotEnumerable] attribute EventListener onpaste;
-    [NotEnumerable] attribute EventListener onreset;
-    [NotEnumerable] attribute EventListener onsearch;
-    [NotEnumerable] attribute EventListener onselectstart;
-    [NotEnumerable,Conditional=TOUCH_EVENTS] attribute EventListener ontouchstart;
-    [NotEnumerable,Conditional=TOUCH_EVENTS] attribute EventListener ontouchmove;
-    [NotEnumerable,Conditional=TOUCH_EVENTS] attribute EventListener ontouchend;
-    [NotEnumerable,Conditional=TOUCH_EVENTS] attribute EventListener ontouchcancel;
</del><ins>+    [NotEnumerable, Conditional=ENCRYPTED_MEDIA] attribute EventListener onwebkitkeyadded;
+    [NotEnumerable, Conditional=ENCRYPTED_MEDIA] attribute EventListener onwebkitkeyerror;
+    [NotEnumerable, Conditional=ENCRYPTED_MEDIA] attribute EventListener onwebkitkeymessage;
+
+    [NotEnumerable, Conditional=ENCRYPTED_MEDIA|ENCRYPTED_MEDIA_V2] attribute EventListener onwebkitneedkey;
+
</ins><span class="cx">     [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenchange;
</span><span class="cx">     [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventListener onwebkitfullscreenerror;
</span><ins>+
+    [NotEnumerable, Conditional=REQUEST_AUTOCOMPLETE] attribute EventListener onautocomplete;
+    [NotEnumerable, Conditional=REQUEST_AUTOCOMPLETE] attribute EventListener onautocompleteerror;
+
+    [NotEnumerable, Conditional=VIDEO_PRESENTATION_MODE] attribute EventListener onwebkitpresentationmodechanged;
+
</ins><span class="cx">     [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealbottom;
</span><span class="cx">     [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealleft;
</span><span class="cx">     [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealright;
</span><span class="cx">     [NotEnumerable, Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealtop;
</span><del>-#endif
</del><ins>+
+    [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventListener onwebkitcurrentplaybacktargetiswirelesschanged;
+    [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventListener onwebkitplaybacktargetavailabilitychanged;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> Element implements ChildNode;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLBodyElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLBodyElement.idl (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLBodyElement.idl        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/html/HTMLBodyElement.idl        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -26,31 +26,22 @@
</span><span class="cx">     [Reflect] attribute DOMString text;
</span><span class="cx">     [Reflect] attribute DOMString vLink;
</span><span class="cx"> 
</span><del>-#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
-    // Event handler attributes
</del><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onbeforeunload;
</span><ins>+    [NotEnumerable, JSWindowEventListener] attribute EventListener onblur;
+    [NotEnumerable, JSWindowEventListener] attribute EventListener onerror;
+    [NotEnumerable, JSWindowEventListener] attribute EventListener onfocus;
</ins><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onhashchange;
</span><ins>+    [NotEnumerable, JSWindowEventListener] attribute EventListener onload;
</ins><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onmessage;
</span><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onoffline;
</span><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener ononline;
</span><ins>+    [NotEnumerable, JSWindowEventListener] attribute EventListener onpagehide;
+    [NotEnumerable, JSWindowEventListener] attribute EventListener onpageshow;
</ins><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onpopstate;
</span><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onresize;
</span><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onstorage;
</span><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onunload;
</span><span class="cx"> 
</span><span class="cx">     [Conditional=ORIENTATION_EVENTS, NotEnumerable, JSWindowEventListener] attribute EventListener onorientationchange;
</span><del>-
-    // Overrides of Element attributes (with different implementation in bindings).
-    [NotEnumerable, JSWindowEventListener] attribute EventListener onblur;
-    [NotEnumerable, JSWindowEventListener] attribute EventListener onerror;
-    [NotEnumerable, JSWindowEventListener] attribute EventListener onfocus;
-    [NotEnumerable, JSWindowEventListener] attribute EventListener onload;
-
-    // Not implemented yet.
-    // [NotEnumerable, JSWindowEventListener] attribute EventListener onafterprint;
-    // [NotEnumerable, JSWindowEventListener] attribute EventListener onbeforeprint;
-    // [NotEnumerable, JSWindowEventListener] attribute EventListener onredo;
-    // [NotEnumerable, JSWindowEventListener] attribute EventListener onundo;
-#endif
</del><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLElement.cpp (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLElement.cpp        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/html/HTMLElement.cpp        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -252,8 +252,12 @@
</span><span class="cx"> {
</span><span class="cx">     static const QualifiedName* const simpleTable[] = {
</span><span class="cx">         &amp;onabortAttr,
</span><ins>+        &amp;onanimationendAttr,
+        &amp;onanimationiterationAttr,
+        &amp;onanimationstartAttr,
</ins><span class="cx">         &amp;onbeforecopyAttr,
</span><span class="cx">         &amp;onbeforecutAttr,
</span><ins>+        &amp;onbeforeloadAttr,
</ins><span class="cx">         &amp;onbeforepasteAttr,
</span><span class="cx">         &amp;onblurAttr,
</span><span class="cx">         &amp;oncanplayAttr,
</span><span class="lines">@@ -303,6 +307,7 @@
</span><span class="cx">         &amp;onratechangeAttr,
</span><span class="cx">         &amp;onresetAttr,
</span><span class="cx">         &amp;onscrollAttr,
</span><ins>+        &amp;onsearchAttr,
</ins><span class="cx">         &amp;onseekedAttr,
</span><span class="cx">         &amp;onseekingAttr,
</span><span class="cx">         &amp;onselectAttr,
</span><span class="lines">@@ -315,24 +320,38 @@
</span><span class="cx">         &amp;ontouchendAttr,
</span><span class="cx">         &amp;ontouchmoveAttr,
</span><span class="cx">         &amp;ontouchstartAttr,
</span><ins>+        &amp;ontransitionendAttr,
</ins><span class="cx">         &amp;onvolumechangeAttr,
</span><span class="cx">         &amp;onwaitingAttr,
</span><ins>+        &amp;onwebkitbeginfullscreenAttr,
+        &amp;onwebkitendfullscreenAttr,
+        &amp;onwheelAttr,
+#if ENABLE(FULLSCREEN_API)
+        &amp;onwebkitfullscreenchangeAttr,
+        &amp;onwebkitfullscreenerrorAttr,
+#endif
+#if ENABLE(IOS_GESTURE_EVENTS)
+        &amp;ongesturechangeAttr,
+        &amp;ongestureendAttr,
+        &amp;ongesturestartAttr,
+#endif
+#if ENABLE(REQUEST_AUTOCOMPLETE)
+        &amp;onautocompleteAttr,
+        &amp;onautocompleteerrorAttr,
+#endif
+#if ENABLE(VIDEO_PRESENTATION_MODE)
+        &amp;onwebkitpresentationmodechangedAttr,
+#endif
</ins><span class="cx"> #if ENABLE(WILL_REVEAL_EDGE_EVENTS)
</span><span class="cx">         &amp;onwebkitwillrevealbottomAttr,
</span><span class="cx">         &amp;onwebkitwillrevealleftAttr,
</span><span class="cx">         &amp;onwebkitwillrevealrightAttr,
</span><span class="cx">         &amp;onwebkitwillrevealtopAttr,
</span><span class="cx"> #endif
</span><del>-        &amp;onwheelAttr,
-#if ENABLE(IOS_GESTURE_EVENTS)
-        &amp;ongesturechangeAttr,
-        &amp;ongestureendAttr,
-        &amp;ongesturestartAttr,
</del><ins>+#if ENABLE(WIRELESS_PLAYBACK_TARGET)
+        &amp;onwebkitcurrentplaybacktargetiswirelesschangedAttr,
+        &amp;onwebkitplaybacktargetavailabilitychangedAttr,
</ins><span class="cx"> #endif
</span><del>-#if ENABLE(FULLSCREEN_API)
-        &amp;onwebkitfullscreenchangeAttr,
-        &amp;onwebkitfullscreenerrorAttr,
-#endif
</del><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     for (unsigned i = 0, size = WTF_ARRAY_LENGTH(simpleTable); i &lt; size; ++i) {
</span><span class="lines">@@ -353,10 +372,6 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     const CustomMapping customTable[] = {
</span><del>-        { onanimationendAttr, eventNames().animationendEvent },
-        { onanimationiterationAttr, eventNames().animationiterationEvent },
-        { onanimationstartAttr, eventNames().animationstartEvent },
-        { ontransitionendAttr, eventNames().webkitTransitionEndEvent },
</del><span class="cx">         { onwebkitanimationendAttr, eventNames().webkitAnimationEndEvent },
</span><span class="cx">         { onwebkitanimationiterationAttr, eventNames().webkitAnimationIterationEvent },
</span><span class="cx">         { onwebkitanimationstartAttr, eventNames().webkitAnimationStartEvent },
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormElement.cpp (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormElement.cpp        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/html/HTMLFormElement.cpp        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -500,12 +500,6 @@
</span><span class="cx">         else
</span><span class="cx">             document().unregisterForPageCacheSuspensionCallbacks(this);
</span><span class="cx">     }
</span><del>-#if ENABLE(REQUEST_AUTOCOMPLETE)
-    else if (name == onautocompleteAttr)
-        setAttributeEventListener(eventNames().autocompleteEvent, name, value);
-    else if (name == onautocompleteerrorAttr)
-        setAttributeEventListener(eventNames().autocompleteerrorEvent, name, value);
-#endif
</del><span class="cx">     else
</span><span class="cx">         HTMLElement::parseAttribute(name, value);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormElement.idl (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormElement.idl        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/html/HTMLFormElement.idl        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -47,9 +47,5 @@
</span><span class="cx">     void reset();
</span><span class="cx">     boolean checkValidity();
</span><span class="cx"> 
</span><del>-#if (!defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C) &amp;&amp; (!defined(LANGUAGE_GOBJECT) || !LANGUAGE_GOBJECT)
-    [Conditional=REQUEST_AUTOCOMPLETE, NotEnumerable] attribute EventListener onautocomplete;
-    [Conditional=REQUEST_AUTOCOMPLETE, NotEnumerable] attribute EventListener onautocompleteerror;
-#endif
</del><span class="cx">     [Conditional=REQUEST_AUTOCOMPLETE] void requestAutocomplete();
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFrameSetElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFrameSetElement.idl (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFrameSetElement.idl        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/html/HTMLFrameSetElement.idl        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -24,10 +24,12 @@
</span><span class="cx">     [Reflect] attribute DOMString cols;
</span><span class="cx">     [Reflect] attribute DOMString rows;
</span><span class="cx"> 
</span><del>-#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
-    // Event handler attributes
</del><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onbeforeunload;
</span><ins>+    [NotEnumerable, JSWindowEventListener] attribute EventListener onblur;
+    [NotEnumerable, JSWindowEventListener] attribute EventListener onerror;
+    [NotEnumerable, JSWindowEventListener] attribute EventListener onfocus;
</ins><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onhashchange;
</span><ins>+    [NotEnumerable, JSWindowEventListener] attribute EventListener onload;
</ins><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onmessage;
</span><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onoffline;
</span><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener ononline;
</span><span class="lines">@@ -37,18 +39,5 @@
</span><span class="cx">     [NotEnumerable, JSWindowEventListener] attribute EventListener onunload;
</span><span class="cx"> 
</span><span class="cx">     [Conditional=ORIENTATION_EVENTS, NotEnumerable, JSWindowEventListener] attribute EventListener onorientationchange;
</span><del>-
-    // Overrides of Element attributes (with different implementation in bindings).
-    [NotEnumerable, JSWindowEventListener] attribute EventListener onblur;
-    [NotEnumerable, JSWindowEventListener] attribute EventListener onerror;
-    [NotEnumerable, JSWindowEventListener] attribute EventListener onfocus;
-    [NotEnumerable, JSWindowEventListener] attribute EventListener onload;
-
-    // Not implemented yet.
-    // [NotEnumerable, JSWindowEventListener] attribute EventListener onafterprint;
-    // [NotEnumerable, JSWindowEventListener] attribute EventListener onbeforeprint;
-    // [NotEnumerable, JSWindowEventListener] attribute EventListener onredo;
-    // [NotEnumerable, JSWindowEventListener] attribute EventListener onundo;
-#endif
</del><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -697,9 +697,6 @@
</span><span class="cx">         m_inputType-&gt;srcAttributeChanged();
</span><span class="cx">     else if (name == usemapAttr || name == accesskeyAttr) {
</span><span class="cx">         // FIXME: ignore for the moment
</span><del>-    } else if (name == onsearchAttr) {
-        // Search field and slider attributes all just cause updateFromElement to be called through style recalcing.
-        setAttributeEventListener(eventNames().searchEvent, name, value);
</del><span class="cx">     } else if (name == resultsAttr) {
</span><span class="cx">         m_maxResults = !value.isNull() ? std::min(value.toInt(), maxSavedResults) : -1;
</span><span class="cx">         m_inputType-&gt;maxResultsAttributeChanged();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -545,62 +545,6 @@
</span><span class="cx"> 
</span><span class="cx">     } else if (name == mediagroupAttr)
</span><span class="cx">         setMediaGroup(value);
</span><del>-    else if (name == onabortAttr)
-        setAttributeEventListener(eventNames().abortEvent, name, value);
-    else if (name == onbeforeloadAttr)
-        setAttributeEventListener(eventNames().beforeloadEvent, name, value);
-    else if (name == oncanplayAttr)
-        setAttributeEventListener(eventNames().canplayEvent, name, value);
-    else if (name == oncanplaythroughAttr)
-        setAttributeEventListener(eventNames().canplaythroughEvent, name, value);
-    else if (name == ondurationchangeAttr)
-        setAttributeEventListener(eventNames().durationchangeEvent, name, value);
-    else if (name == onemptiedAttr)
-        setAttributeEventListener(eventNames().emptiedEvent, name, value);
-    else if (name == onendedAttr)
-        setAttributeEventListener(eventNames().endedEvent, name, value);
-    else if (name == onerrorAttr)
-        setAttributeEventListener(eventNames().errorEvent, name, value);
-    else if (name == onloadeddataAttr)
-        setAttributeEventListener(eventNames().loadeddataEvent, name, value);
-    else if (name == onloadedmetadataAttr)
-        setAttributeEventListener(eventNames().loadedmetadataEvent, name, value);
-    else if (name == onloadstartAttr)
-        setAttributeEventListener(eventNames().loadstartEvent, name, value);
-    else if (name == onpauseAttr)
-        setAttributeEventListener(eventNames().pauseEvent, name, value);
-    else if (name == onplayAttr)
-        setAttributeEventListener(eventNames().playEvent, name, value);
-    else if (name == onplayingAttr)
-        setAttributeEventListener(eventNames().playingEvent, name, value);
-    else if (name == onprogressAttr)
-        setAttributeEventListener(eventNames().progressEvent, name, value);
-    else if (name == onratechangeAttr)
-        setAttributeEventListener(eventNames().ratechangeEvent, name, value);
-    else if (name == onseekedAttr)
-        setAttributeEventListener(eventNames().seekedEvent, name, value);
-    else if (name == onseekingAttr)
-        setAttributeEventListener(eventNames().seekingEvent, name, value);
-    else if (name == onstalledAttr)
-        setAttributeEventListener(eventNames().stalledEvent, name, value);
-    else if (name == onsuspendAttr)
-        setAttributeEventListener(eventNames().suspendEvent, name, value);
-    else if (name == ontimeupdateAttr)
-        setAttributeEventListener(eventNames().timeupdateEvent, name, value);
-    else if (name == onvolumechangeAttr)
-        setAttributeEventListener(eventNames().volumechangeEvent, name, value);
-    else if (name == onwaitingAttr)
-        setAttributeEventListener(eventNames().waitingEvent, name, value);
-    else if (name == onwebkitbeginfullscreenAttr)
-        setAttributeEventListener(eventNames().webkitbeginfullscreenEvent, name, value);
-    else if (name == onwebkitendfullscreenAttr)
-        setAttributeEventListener(eventNames().webkitendfullscreenEvent, name, value);
-#if ENABLE(WIRELESS_PLAYBACK_TARGET)
-    else if (name == onwebkitcurrentplaybacktargetiswirelesschangedAttr)
-        setAttributeEventListener(eventNames().webkitcurrentplaybacktargetiswirelesschangedEvent, name, value);
-    else if (name == onwebkitplaybacktargetavailabilitychangedAttr)
-        setAttributeEventListener(eventNames().webkitplaybacktargetavailabilitychangedEvent, name, value);
-#endif
</del><span class="cx">     else
</span><span class="cx">         HTMLElement::parseAttribute(name, value);
</span><span class="cx"> }
</span><span class="lines">@@ -3769,9 +3713,7 @@
</span><span class="cx"> 
</span><span class="cx">     JSC::MarkedArgumentBuffer noArguments;
</span><span class="cx">     JSC::call(exec, methodObject, callType, callData, controllerObject, noArguments);
</span><del>-
-    if (exec-&gt;hadException())
-        exec-&gt;clearException();
</del><ins>+    exec-&gt;clearException();
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx">     
</span><span class="lines">@@ -5967,6 +5909,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     JSC::JSValue controllerValue = JSC::call(exec, function, callType, callData, globalObject, argList);
</span><ins>+    exec-&gt;clearException();
</ins><span class="cx">     JSC::JSObject* controllerObject = JSC::jsDynamicCast&lt;JSC::JSObject*&gt;(controllerValue);
</span><span class="cx">     if (!controllerObject)
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.idl (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.idl        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/html/HTMLMediaElement.idl        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -83,21 +83,6 @@
</span><span class="cx">     attribute boolean muted;
</span><span class="cx">     [Reflect=muted] attribute boolean defaultMuted;
</span><span class="cx"> 
</span><del>-    attribute EventListener onemptied;
-    attribute EventListener onloadedmetadata;
-    attribute EventListener onloadeddata;
-    attribute EventListener oncanplay;
-    attribute EventListener oncanplaythrough;
-    attribute EventListener onplaying;
-    attribute EventListener onended;
-    attribute EventListener onwaiting;
-    attribute EventListener ondurationchange;
-    attribute EventListener ontimeupdate;
-    attribute EventListener onplay;
-    attribute EventListener onpause;
-    attribute EventListener onratechange;
-    attribute EventListener onvolumechange;
-
</del><span class="cx">     // WebKit extensions
</span><span class="cx">     attribute boolean webkitPreservesPitch;
</span><span class="cx"> 
</span><span class="lines">@@ -108,26 +93,18 @@
</span><span class="cx">     [Conditional=MEDIA_STATISTICS] readonly attribute unsigned long webkitAudioDecodedByteCount;
</span><span class="cx">     [Conditional=MEDIA_STATISTICS] readonly attribute unsigned long webkitVideoDecodedByteCount;
</span><span class="cx"> 
</span><del>-#if defined(ENABLE_ENCRYPTED_MEDIA) &amp;&amp; ENABLE_ENCRYPTED_MEDIA
-    [RaisesException] void webkitGenerateKeyRequest([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, optional Uint8Array initData);
-    [RaisesException] void webkitAddKey([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, Uint8Array key, optional Uint8Array initData, [Default=NullString] optional DOMString sessionId);
-    [RaisesException] void webkitCancelKeyRequest([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, [Default=NullString] optional DOMString sessionId);
</del><ins>+#if !defined(LANGUAGE_GOBJECT) || !LANGUAGE_GOBJECT // Work around shortcomings in the gobject binding generator handling of conditional features by turning these off for gobject.
+    [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitGenerateKeyRequest([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, optional Uint8Array initData);
+    [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitAddKey([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, Uint8Array key, optional Uint8Array initData, [Default=NullString] optional DOMString sessionId);
+    [Conditional=ENCRYPTED_MEDIA, RaisesException] void webkitCancelKeyRequest([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString keySystem, [Default=NullString] optional DOMString sessionId);
</ins><span class="cx"> 
</span><del>-    attribute EventListener onwebkitkeyadded;
-    attribute EventListener onwebkitkeyerror;
-    attribute EventListener onwebkitkeymessage;
-#endif
-    [Conditional=ENCRYPTED_MEDIA|ENCRYPTED_MEDIA_V2] attribute EventListener onwebkitneedkey;
-#if defined(ENABLE_ENCRYPTED_MEDIA_V2) &amp;&amp; ENABLE_ENCRYPTED_MEDIA_V2
-    [ImplementedAs=keys] readonly attribute MediaKeys webkitKeys;
-    [ImplementedAs=setMediaKeys] void webkitSetMediaKeys(MediaKeys mediaKeys);
-#endif
</del><ins>+    [Conditional=ENCRYPTED_MEDIA_V2, ImplementedAs=keys] readonly attribute MediaKeys webkitKeys;
+    [Conditional=ENCRYPTED_MEDIA_V2, ImplementedAs=setMediaKeys] void webkitSetMediaKeys(MediaKeys mediaKeys);
</ins><span class="cx"> 
</span><del>-#if defined(ENABLE_VIDEO_TRACK) &amp;&amp; ENABLE_VIDEO_TRACK
-    [RaisesException] TextTrack addTextTrack(DOMString kind, optional DOMString label, optional DOMString language);
-    readonly attribute AudioTrackList audioTracks;
-    readonly attribute TextTrackList textTracks;
-    readonly attribute VideoTrackList videoTracks;
</del><ins>+    [Conditional=VIDEO_TRACK, RaisesException] TextTrack addTextTrack(DOMString kind, optional DOMString label, optional DOMString language);
+    [Conditional=VIDEO_TRACK] readonly attribute AudioTrackList audioTracks;
+    [Conditional=VIDEO_TRACK] readonly attribute TextTrackList textTracks;
+    [Conditional=VIDEO_TRACK] readonly attribute VideoTrackList videoTracks;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     [Reflect, TreatNullAs=NullString] attribute DOMString mediaGroup;
</span><span class="lines">@@ -139,6 +116,4 @@
</span><span class="cx"> 
</span><span class="cx">     [Conditional=WIRELESS_PLAYBACK_TARGET] void webkitShowPlaybackTargetPicker();
</span><span class="cx">     [Conditional=WIRELESS_PLAYBACK_TARGET] readonly attribute boolean webkitCurrentPlaybackTargetIsWireless;
</span><del>-    [Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventListener onwebkitcurrentplaybacktargetiswirelesschanged;
-    [Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventListener onwebkitplaybacktargetavailabilitychanged;
</del><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLPlugInImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -402,6 +402,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     JSC::call(exec, overlay, callType, callData, globalObject, argList);
</span><ins>+    exec-&gt;clearException();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLPlugInImageElement::partOfSnapshotOverlay(const Node* node) const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -125,10 +125,6 @@
</span><span class="cx">     else if (name == webkitwirelessvideoplaybackdisabledAttr)
</span><span class="cx">         mediaSession().setWirelessVideoPlaybackDisabled(*this, webkitWirelessVideoPlaybackDisabled());
</span><span class="cx"> #endif
</span><del>-#if ENABLE(VIDEO_PRESENTATION_MODE)
-    else if (name == onwebkitpresentationmodechangedAttr)
-        setAttributeEventListener(eventNames().webkitpresentationmodechangedEvent, name, value);
-#endif
</del><span class="cx">     else {
</span><span class="cx">         HTMLMediaElement::parseAttribute(name, value);    
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.idl (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.idl        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/html/HTMLVideoElement.idl        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -23,13 +23,8 @@
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#if defined(ENABLE_VIDEO_PRESENTATION_MODE) &amp;&amp; ENABLE_VIDEO_PRESENTATION_MODE
-enum VideoPresentationMode {
-    &quot;fullscreen&quot;,
-    &quot;optimized&quot;,
-    &quot;inline&quot;
-};
-#endif
</del><ins>+// FIXME: This should be Conditional=VIDEO_PRESENTATION_MODE.
+enum VideoPresentationMode { &quot;fullscreen&quot;, &quot;optimized&quot;, &quot;inline&quot; };
</ins><span class="cx"> 
</span><span class="cx"> [
</span><span class="cx">     Conditional=VIDEO,
</span><span class="lines">@@ -53,20 +48,13 @@
</span><span class="cx"> 
</span><span class="cx">     [Conditional=WIRELESS_PLAYBACK_TARGET] attribute boolean webkitWirelessVideoPlaybackDisabled;
</span><span class="cx"> 
</span><del>-    // The number of frames that have been decoded and made available for
-    // playback.
</del><ins>+    // The number of frames that have been decoded and made available for playback.
</ins><span class="cx">     [Conditional=MEDIA_STATISTICS] readonly attribute unsigned long webkitDecodedFrameCount;
</span><span class="cx"> 
</span><del>-    // The number of decoded frames that have been dropped by the player
-    // for performance reasons during playback.
</del><ins>+    // The number of decoded frames that have been dropped by the player for performance reasons during playback.
</ins><span class="cx">     [Conditional=MEDIA_STATISTICS] readonly attribute unsigned long webkitDroppedFrameCount;
</span><span class="cx"> 
</span><del>-#if defined(ENABLE_VIDEO_PRESENTATION_MODE) &amp;&amp; ENABLE_VIDEO_PRESENTATION_MODE
-    boolean webkitSupportsPresentationMode(VideoPresentationMode mode);
-
-    readonly attribute VideoPresentationMode webkitPresentationMode;
-    void webkitSetPresentationMode(VideoPresentationMode mode);
-
-    attribute EventListener onwebkitpresentationmodechanged;
-#endif
</del><ins>+    [Conditional=VIDEO_PRESENTATION_MODE] boolean webkitSupportsPresentationMode(VideoPresentationMode mode);
+    [Conditional=VIDEO_PRESENTATION_MODE] readonly attribute VideoPresentationMode webkitPresentationMode;
+    [Conditional=VIDEO_PRESENTATION_MODE] void webkitSetPresentationMode(VideoPresentationMode mode);
</ins><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindow.idl (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.idl        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/page/DOMWindow.idl        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -163,12 +163,10 @@
</span><span class="cx">     [GetterRaisesException] readonly attribute Storage sessionStorage;
</span><span class="cx">     [GetterRaisesException] readonly attribute Storage localStorage;
</span><span class="cx"> 
</span><del>-#if defined(ENABLE_ORIENTATION_EVENTS) &amp;&amp; ENABLE_ORIENTATION_EVENTS
</del><span class="cx">     // This is the interface orientation in degrees. Some examples are:
</span><span class="cx">     //  0 is straight up; -90 is when the device is rotated 90 clockwise;
</span><span class="cx">     //  90 is when rotated counter clockwise.
</span><del>-    readonly attribute long orientation;
-#endif
</del><ins>+    [Conditional=ORIENTATION_EVENTS] readonly attribute long orientation;
</ins><span class="cx"> 
</span><span class="cx">     // cross-document messaging
</span><span class="cx"> #if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
</span><span class="lines">@@ -178,22 +176,20 @@
</span><span class="cx">     [DoNotCheckSecurity, Custom, RaisesException, ForwardDeclareInHeader] void postMessage(SerializedScriptValue message, optional MessagePort messagePort, DOMString targetOrigin);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if defined(ENABLE_WEB_TIMING) &amp;&amp; ENABLE_WEB_TIMING
-    [Replaceable] readonly attribute Performance performance;
-#endif
</del><ins>+    [Conditional=WEB_TIMING, Replaceable] readonly attribute Performance performance;
</ins><span class="cx"> 
</span><del>-#if defined(ENABLE_REQUEST_ANIMATION_FRAME) &amp;&amp; ENABLE_REQUEST_ANIMATION_FRAME
-    long requestAnimationFrame(RequestAnimationFrameCallback callback);
-    void cancelAnimationFrame(long id);
-    long webkitRequestAnimationFrame(RequestAnimationFrameCallback callback);
-    [ImplementedAs=cancelAnimationFrame] void webkitCancelAnimationFrame(long id);
-    [ImplementedAs=cancelAnimationFrame] void webkitCancelRequestAnimationFrame(long id); // This is a deprecated alias for webkitCancelAnimationFrame(). Remove this when removing vendor prefix.
-#endif
</del><ins>+    [Conditional=REQUEST_ANIMATION_FRAME] long requestAnimationFrame(RequestAnimationFrameCallback callback);
+    [Conditional=REQUEST_ANIMATION_FRAME] void cancelAnimationFrame(long id);
+    [Conditional=REQUEST_ANIMATION_FRAME] long webkitRequestAnimationFrame(RequestAnimationFrameCallback callback);
+    [Conditional=REQUEST_ANIMATION_FRAME, ImplementedAs=cancelAnimationFrame] void webkitCancelAnimationFrame(long id);
+    [Conditional=REQUEST_ANIMATION_FRAME, ImplementedAs=cancelAnimationFrame] void webkitCancelRequestAnimationFrame(long id); // This is a deprecated alias for webkitCancelAnimationFrame(). Remove this when removing vendor prefix.
</ins><span class="cx"> 
</span><span class="cx">     [Replaceable] readonly attribute DOMWindowCSS CSS;
</span><span class="cx"> 
</span><del>-    // Events
</del><span class="cx">     attribute EventListener onabort;
</span><ins>+    attribute EventListener onanimationend;
+    attribute EventListener onanimationiteration;
+    attribute EventListener onanimationstart;
</ins><span class="cx">     attribute EventListener onbeforeunload;
</span><span class="cx">     attribute EventListener onblur;
</span><span class="cx">     attribute EventListener oncanplay;
</span><span class="lines">@@ -243,8 +239,10 @@
</span><span class="cx">     attribute EventListener onpopstate;
</span><span class="cx">     attribute EventListener onprogress;
</span><span class="cx">     attribute EventListener onratechange;
</span><ins>+    attribute EventListener onreset;
</ins><span class="cx">     attribute EventListener onresize;
</span><span class="cx">     attribute EventListener onscroll;
</span><ins>+    attribute EventListener onsearch;
</ins><span class="cx">     attribute EventListener onseeked;
</span><span class="cx">     attribute EventListener onseeking;
</span><span class="cx">     attribute EventListener onselect;
</span><span class="lines">@@ -253,45 +251,30 @@
</span><span class="cx">     attribute EventListener onsubmit;
</span><span class="cx">     attribute EventListener onsuspend;
</span><span class="cx">     attribute EventListener ontimeupdate;
</span><ins>+    attribute EventListener ontransitionend;
</ins><span class="cx">     attribute EventListener onunload;
</span><span class="cx">     attribute EventListener onvolumechange;
</span><span class="cx">     attribute EventListener onwaiting;
</span><del>-    attribute EventListener onwheel;
-
-    // Not implemented yet.
-    // attribute EventListener onafterprint;
-    // attribute EventListener onbeforeprint;
-    // attribute EventListener onreadystatechange;
-    // attribute EventListener onredo;
-    // attribute EventListener onshow;
-    // attribute EventListener onundo;
-
-    // Webkit extensions
-    attribute EventListener onreset;
-    attribute EventListener onsearch;
</del><span class="cx">     attribute EventListener onwebkitanimationend;
</span><span class="cx">     attribute EventListener onwebkitanimationiteration;
</span><span class="cx">     attribute EventListener onwebkitanimationstart;
</span><del>-    attribute EventListener onanimationend;
-    attribute EventListener onanimationiteration;
-    attribute EventListener onanimationstart;
</del><span class="cx">     attribute EventListener onwebkittransitionend;
</span><del>-    attribute EventListener ontransitionend;
-#if defined(ENABLE_ORIENTATION_EVENTS) &amp;&amp; ENABLE_ORIENTATION_EVENTS
-    attribute EventListener onorientationchange;
-#endif
-    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchstart;
-    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchmove;
-    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchend;
-    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchcancel;
</del><ins>+    attribute EventListener onwheel;
</ins><span class="cx"> 
</span><ins>+    [Conditional=DEVICE_ORIENTATION] attribute EventListener ondevicemotion;
+    [Conditional=DEVICE_ORIENTATION] attribute EventListener ondeviceorientation;
+
</ins><span class="cx">     [Conditional=IOS_GESTURE_EVENTS] attribute EventListener ongesturestart;
</span><span class="cx">     [Conditional=IOS_GESTURE_EVENTS] attribute EventListener ongesturechange;
</span><span class="cx">     [Conditional=IOS_GESTURE_EVENTS] attribute EventListener ongestureend;
</span><span class="cx"> 
</span><del>-    [Conditional=DEVICE_ORIENTATION] attribute EventListener ondevicemotion;
-    [Conditional=DEVICE_ORIENTATION] attribute EventListener ondeviceorientation;
</del><ins>+    [Conditional=ORIENTATION_EVENTS] attribute EventListener onorientationchange;
</ins><span class="cx"> 
</span><ins>+    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchstart;
+    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchmove;
+    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchend;
+    [Conditional=TOUCH_EVENTS] attribute EventListener ontouchcancel;
+
</ins><span class="cx">     [Conditional=PROXIMITY_EVENTS] attribute EventListener onwebkitdeviceproximity;
</span><span class="cx"> 
</span><span class="cx">     [Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealbottom;
</span><span class="lines">@@ -300,13 +283,9 @@
</span><span class="cx">     [Conditional=WILL_REVEAL_EDGE_EVENTS] attribute EventListener onwebkitwillrevealtop;
</span><span class="cx"> 
</span><span class="cx">     // EventTarget interface
</span><del>-    [Custom] void addEventListener(DOMString type,
-                                  EventListener listener,
-                                  optional boolean useCapture);
-    [Custom] void removeEventListener(DOMString type,
-                                      EventListener listener,
-                                      optional boolean useCapture);
-    [RaisesException] boolean dispatchEvent(Event evt);
</del><ins>+    [Custom] void addEventListener(DOMString type, EventListener listener, optional boolean useCapture);
+    [Custom] void removeEventListener(DOMString type, EventListener listener, optional boolean useCapture);
+    [RaisesException] boolean dispatchEvent(Event event);
</ins><span class="cx"> 
</span><span class="cx">     void captureEvents(/*in long eventFlags*/);
</span><span class="cx">     void releaseEvents(/*in long eventFlags*/);
</span></span></pre></div>
<a id="trunkSourceWebCoresvgsvgattrsin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/svgattrs.in (181357 => 181358)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/svgattrs.in        2015-03-11 01:01:36 UTC (rev 181357)
+++ trunk/Source/WebCore/svg/svgattrs.in        2015-03-11 02:21:20 UTC (rev 181358)
</span><span class="lines">@@ -128,12 +128,6 @@
</span><span class="cx"> name
</span><span class="cx"> numOctaves
</span><span class="cx"> offset
</span><del>-onactivate
-onbegin
-onend
-onfocusin
-onfocusout
-onrepeat
</del><span class="cx"> onzoom
</span><span class="cx"> opacity
</span><span class="cx"> operator
</span></span></pre>
</div>
</div>

</body>
</html>