[iOS Debug] ASSERTION FAILED: !m_originalNode in WebCore::JSLazyEventListener::checkV...
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 May 2019 01:34:05 +0000 (01:34 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 May 2019 01:34:05 +0000 (01:34 +0000)
https://bugs.webkit.org/show_bug.cgi?id=197696
<rdar://problem/50586956>

Reviewed by Simon Fraser.

Source/WebCore:

Setting the onorientationchange / onresize event handler on the body should set the event handler on the
window object, as per the HTML specification. However, calling body.addEventListener() with 'orientationchange'
or 'resize' should not set the event listener on the window object, only the body. Blink and Gecko seem to
behave as per specification but WebKit had a quirk for the addEventListener case. The quirk's implementation
is slightly wrong (because it is unsafe to take a JSLazyEventListener from a body element and add it to the
window, given that the JSLazyEventListener keeps a raw pointer to its element) and was causing crashes such
as <rdar://problem/24314027>. As a result, this patch simply drops the WebKit quirk, which will align our
behavior with other browsers and fix the crashes altogether.

Test: fast/events/ios/rotation/orientationchange-event-listener-on.body.html

* dom/Node.cpp:
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):

LayoutTests:

Add layout test coverage.

* fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt: Added.
* fast/events/ios/rotation/orientationchange-event-listener-on.body.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245086 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt [new file with mode: 0644]
LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body.html [new file with mode: 0644]
LayoutTests/platform/ios/fast/dom/event-handler-attributes-expected.txt [deleted file]
LayoutTests/platform/ios/legacy-animation-engine/fast/dom/event-handler-attributes-expected.txt [deleted file]
Source/WebCore/ChangeLog
Source/WebCore/dom/Node.cpp

index fd69580..e875ba8 100644 (file)
@@ -1,3 +1,16 @@
+2019-05-08  Chris Dumez  <cdumez@apple.com>
+
+        [iOS Debug] ASSERTION FAILED: !m_originalNode in WebCore::JSLazyEventListener::checkValidityForEventTarget(WebCore::EventTarget &)
+        https://bugs.webkit.org/show_bug.cgi?id=197696
+        <rdar://problem/50586956>
+
+        Reviewed by Simon Fraser.
+
+        Add layout test coverage.
+
+        * fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt: Added.
+        * fast/events/ios/rotation/orientationchange-event-listener-on.body.html: Added.
+
 2019-05-08  Ryan Haddad  <ryanhaddad@apple.com>
 
         Unreviewed, rolling out r245058.
diff --git a/LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt b/LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt
new file mode 100644 (file)
index 0000000..85c5edb
--- /dev/null
@@ -0,0 +1,15 @@
+Tests the behavior of the resize / orientationchange event listeners on both the body and the window.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+Before rotation
+PASS In body's onorientationchange event handler
+PASS In window's orientationchange event listener
+PASS In body's onresize event handler
+PASS In window's resize event listener
+After rotation
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Rotation test.
diff --git a/LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body.html b/LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body.html
new file mode 100644 (file)
index 0000000..f5b2d66
--- /dev/null
@@ -0,0 +1,67 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
+
+<html>
+<head>
+    <meta name="viewport" content="initial-scale=1.0">
+    <script src="../../../../resources/js-test.js"></script>
+</head>
+<body onorientationchange="bodyOrientationChange()" onresize="bodyResize()">
+    <script>
+        description("Tests the behavior of the resize / orientationchange event listeners on both the body and the window.");
+        jsTestIsAsync = true;
+
+        function getRotationUIScript()
+        {
+            return `
+            (function() {
+                uiController.simulateRotation('landscape-right', function() {
+                    uiController.doAfterVisibleContentRectUpdate(function () {
+                        uiController.uiScriptComplete();
+                    })
+                });
+            })();`
+        }
+
+        function doTest()
+        {
+            debug('Before rotation');
+            if (!window.testRunner)
+                return;
+
+            testRunner.runUIScript(getRotationUIScript(), function(result) {
+                debug('After rotation');
+
+                finishJSTest();
+            });
+        }
+        window.addEventListener('resize', function() {
+            testPassed("In window's resize event listener");
+        }, false);
+
+        window.addEventListener('orientationchange', function() {
+            testPassed("In window's orientationchange event listener");
+        }, false);
+
+        document.body.addEventListener('resize', function() {
+            testFailed("In body's resize event listener");
+        }, false);
+
+        document.body.addEventListener('orientationchange', function() {
+            testFailed("In body's orientationchange event listener");
+        }, false);
+
+        function bodyOrientationChange()
+        {
+            testPassed("In body's onorientationchange event handler");
+        }
+
+        function bodyResize()
+        {
+            testPassed("In body's onresize event handler");
+        }
+
+        window.addEventListener('load', doTest, false);
+    </script>
+    Rotation test.
+</body>
+</html>
diff --git a/LayoutTests/platform/ios/fast/dom/event-handler-attributes-expected.txt b/LayoutTests/platform/ios/fast/dom/event-handler-attributes-expected.txt
deleted file mode 100644 (file)
index 0f39c42..0000000
+++ /dev/null
@@ -1,948 +0,0 @@
-Test which event listeners are set up by event handler attributes (the ones with names like onclick).
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Event names we expect to be able to set on the window object
-
-PASS testScriptAttribute(window, "abort") is "window"
-PASS testScriptAttribute(window, "animationend") is "window"
-PASS testScriptAttribute(window, "animationiteration") is "window"
-PASS testScriptAttribute(window, "animationstart") is "window"
-PASS testScriptAttribute(window, "beforeunload") is "window"
-PASS testScriptAttribute(window, "blur") is "window"
-PASS testScriptAttribute(window, "canplay") is "window"
-PASS testScriptAttribute(window, "canplaythrough") is "window"
-PASS testScriptAttribute(window, "change") is "window"
-PASS testScriptAttribute(window, "click") is "window"
-PASS testScriptAttribute(window, "contextmenu") is "window"
-PASS testScriptAttribute(window, "dblclick") is "window"
-PASS testScriptAttribute(window, "drag") is "window"
-PASS testScriptAttribute(window, "dragend") is "window"
-PASS testScriptAttribute(window, "dragenter") is "window"
-PASS testScriptAttribute(window, "dragleave") is "window"
-PASS testScriptAttribute(window, "dragover") is "window"
-PASS testScriptAttribute(window, "dragstart") is "window"
-PASS testScriptAttribute(window, "drop") is "window"
-PASS testScriptAttribute(window, "durationchange") is "window"
-PASS testScriptAttribute(window, "emptied") is "window"
-PASS testScriptAttribute(window, "ended") is "window"
-PASS testScriptAttribute(window, "error") is "window"
-PASS testScriptAttribute(window, "focus") is "window"
-PASS testScriptAttribute(window, "hashchange") is "window"
-PASS testScriptAttribute(window, "input") is "window"
-PASS testScriptAttribute(window, "invalid") is "window"
-PASS testScriptAttribute(window, "keydown") is "window"
-PASS testScriptAttribute(window, "keypress") is "window"
-PASS testScriptAttribute(window, "keyup") is "window"
-PASS testScriptAttribute(window, "load") is "window"
-PASS testScriptAttribute(window, "loadeddata") is "window"
-PASS testScriptAttribute(window, "loadedmetadata") is "window"
-PASS testScriptAttribute(window, "loadstart") is "window"
-PASS testScriptAttribute(window, "message") is "window"
-PASS testScriptAttribute(window, "mousedown") is "window"
-PASS testScriptAttribute(window, "mouseenter") is "window"
-PASS testScriptAttribute(window, "mouseleave") is "window"
-PASS testScriptAttribute(window, "mousemove") is "window"
-PASS testScriptAttribute(window, "mouseout") is "window"
-PASS testScriptAttribute(window, "mouseover") is "window"
-PASS testScriptAttribute(window, "mouseup") is "window"
-PASS testScriptAttribute(window, "mousewheel") is "window"
-PASS testScriptAttribute(window, "offline") is "window"
-PASS testScriptAttribute(window, "online") is "window"
-PASS testScriptAttribute(window, "pagehide") is "window"
-PASS testScriptAttribute(window, "pageshow") is "window"
-PASS testScriptAttribute(window, "pause") is "window"
-PASS testScriptAttribute(window, "play") is "window"
-PASS testScriptAttribute(window, "playing") is "window"
-PASS testScriptAttribute(window, "popstate") is "window"
-PASS testScriptAttribute(window, "progress") is "window"
-PASS testScriptAttribute(window, "ratechange") is "window"
-PASS testScriptAttribute(window, "reset") is "window"
-PASS testScriptAttribute(window, "resize") is "window"
-PASS testScriptAttribute(window, "scroll") is "window"
-PASS testScriptAttribute(window, "search") is "window"
-PASS testScriptAttribute(window, "seeked") is "window"
-PASS testScriptAttribute(window, "seeking") is "window"
-PASS testScriptAttribute(window, "select") is "window"
-PASS testScriptAttribute(window, "stalled") is "window"
-PASS testScriptAttribute(window, "storage") is "window"
-PASS testScriptAttribute(window, "submit") is "window"
-PASS testScriptAttribute(window, "suspend") is "window"
-PASS testScriptAttribute(window, "timeupdate") is "window"
-PASS testScriptAttribute(window, "transitionend") is "window"
-PASS testScriptAttribute(window, "unload") is "window"
-PASS testScriptAttribute(window, "volumechange") is "window"
-PASS testScriptAttribute(window, "waiting") is "window"
-PASS testScriptAttribute(window, "webkitanimationend") is "window"
-PASS testScriptAttribute(window, "webkitanimationiteration") is "window"
-PASS testScriptAttribute(window, "webkitanimationstart") is "window"
-PASS testScriptAttribute(window, "webkittransitionend") is "window"
-PASS testScriptAttribute(window, "wheel") is "window"
-
-Event names we expect not to be able to set on the window object
-
-PASS testScriptAttribute(window, "beforecopy") is "none"
-PASS testScriptAttribute(window, "beforecut") is "none"
-PASS testScriptAttribute(window, "beforeload") is "none"
-PASS testScriptAttribute(window, "beforepaste") is "none"
-PASS testScriptAttribute(window, "copy") is "none"
-PASS testScriptAttribute(window, "cut") is "none"
-PASS testScriptAttribute(window, "focusin") is "none"
-PASS testScriptAttribute(window, "focusout") is "none"
-PASS testScriptAttribute(window, "noneventname") is "none"
-PASS testScriptAttribute(window, "paste") is "none"
-PASS testScriptAttribute(window, "readystatechange") is "none"
-PASS testScriptAttribute(window, "selectionchange") is "none"
-PASS testScriptAttribute(window, "selectstart") is "none"
-
-Event names we expect to be able to set on the document
-
-PASS testScriptAttribute(document, "abort") is "document"
-PASS testScriptAttribute(document, "animationend") is "document"
-PASS testScriptAttribute(document, "animationiteration") is "document"
-PASS testScriptAttribute(document, "animationstart") is "document"
-PASS testScriptAttribute(document, "beforecopy") is "document"
-PASS testScriptAttribute(document, "beforecut") is "document"
-PASS testScriptAttribute(document, "beforepaste") is "document"
-PASS testScriptAttribute(document, "blur") is "document"
-PASS testScriptAttribute(document, "canplay") is "document"
-PASS testScriptAttribute(document, "canplaythrough") is "document"
-PASS testScriptAttribute(document, "change") is "document"
-PASS testScriptAttribute(document, "click") is "document"
-PASS testScriptAttribute(document, "contextmenu") is "document"
-PASS testScriptAttribute(document, "copy") is "document"
-PASS testScriptAttribute(document, "cut") is "document"
-PASS testScriptAttribute(document, "dblclick") is "document"
-PASS testScriptAttribute(document, "drag") is "document"
-PASS testScriptAttribute(document, "dragend") is "document"
-PASS testScriptAttribute(document, "dragenter") is "document"
-PASS testScriptAttribute(document, "dragleave") is "document"
-PASS testScriptAttribute(document, "dragover") is "document"
-PASS testScriptAttribute(document, "dragstart") is "document"
-PASS testScriptAttribute(document, "drop") is "document"
-PASS testScriptAttribute(document, "durationchange") is "document"
-PASS testScriptAttribute(document, "emptied") is "document"
-PASS testScriptAttribute(document, "ended") is "document"
-PASS testScriptAttribute(document, "error") is "document"
-PASS testScriptAttribute(document, "focus") is "document"
-PASS testScriptAttribute(document, "input") is "document"
-PASS testScriptAttribute(document, "invalid") is "document"
-PASS testScriptAttribute(document, "keydown") is "document"
-PASS testScriptAttribute(document, "keypress") is "document"
-PASS testScriptAttribute(document, "keyup") is "document"
-PASS testScriptAttribute(document, "load") is "document"
-PASS testScriptAttribute(document, "loadeddata") is "document"
-PASS testScriptAttribute(document, "loadedmetadata") is "document"
-PASS testScriptAttribute(document, "loadstart") is "document"
-PASS testScriptAttribute(document, "mousedown") is "document"
-PASS testScriptAttribute(document, "mouseenter") is "document"
-PASS testScriptAttribute(document, "mouseleave") is "document"
-PASS testScriptAttribute(document, "mousemove") is "document"
-PASS testScriptAttribute(document, "mouseout") is "document"
-PASS testScriptAttribute(document, "mouseover") is "document"
-PASS testScriptAttribute(document, "mouseup") is "document"
-PASS testScriptAttribute(document, "mousewheel") is "document"
-PASS testScriptAttribute(document, "paste") is "document"
-PASS testScriptAttribute(document, "pause") is "document"
-PASS testScriptAttribute(document, "play") is "document"
-PASS testScriptAttribute(document, "playing") is "document"
-PASS testScriptAttribute(document, "progress") is "document"
-PASS testScriptAttribute(document, "ratechange") is "document"
-PASS testScriptAttribute(document, "readystatechange") is "document"
-PASS testScriptAttribute(document, "reset") is "document"
-FAIL testScriptAttribute(document, "resize") should be document. Was window, document.
-PASS testScriptAttribute(document, "scroll") is "document"
-PASS testScriptAttribute(document, "search") is "document"
-PASS testScriptAttribute(document, "seeked") is "document"
-PASS testScriptAttribute(document, "seeking") is "document"
-PASS testScriptAttribute(document, "select") is "document"
-PASS testScriptAttribute(document, "selectionchange") is "document"
-PASS testScriptAttribute(document, "selectstart") is "document"
-PASS testScriptAttribute(document, "stalled") is "document"
-PASS testScriptAttribute(document, "submit") is "document"
-PASS testScriptAttribute(document, "suspend") is "document"
-PASS testScriptAttribute(document, "timeupdate") is "document"
-PASS testScriptAttribute(document, "transitionend") is "document"
-PASS testScriptAttribute(document, "volumechange") is "document"
-PASS testScriptAttribute(document, "waiting") is "document"
-PASS testScriptAttribute(document, "wheel") is "document"
-
-Event names we expect not to be able to set on the document
-
-PASS testScriptAttribute(document, "beforeload") is "none"
-PASS testScriptAttribute(document, "beforeunload") is "none"
-PASS testScriptAttribute(document, "focusin") is "none"
-PASS testScriptAttribute(document, "focusout") is "none"
-PASS testScriptAttribute(document, "hashchange") is "none"
-PASS testScriptAttribute(document, "message") is "none"
-PASS testScriptAttribute(document, "noneventname") is "none"
-PASS testScriptAttribute(document, "offline") is "none"
-PASS testScriptAttribute(document, "online") is "none"
-PASS testScriptAttribute(document, "pagehide") is "none"
-PASS testScriptAttribute(document, "pageshow") is "none"
-PASS testScriptAttribute(document, "popstate") is "none"
-PASS testScriptAttribute(document, "storage") is "none"
-PASS testScriptAttribute(document, "unload") is "none"
-PASS testScriptAttribute(document, "webkitanimationend") is "none"
-PASS testScriptAttribute(document, "webkitanimationiteration") is "none"
-PASS testScriptAttribute(document, "webkitanimationstart") is "none"
-PASS testScriptAttribute(document, "webkittransitionend") is "none"
-
-Event names we expect to be able to set on an element (tested on the <html> element)
-
-PASS testElementAttribute(element, "abort") is "target"
-PASS testElementAttribute(element, "animationend") is "target"
-PASS testElementAttribute(element, "animationiteration") is "target"
-PASS testElementAttribute(element, "animationstart") is "target"
-PASS testElementAttribute(element, "beforecopy") is "target"
-PASS testElementAttribute(element, "beforecut") is "target"
-PASS testElementAttribute(element, "beforeload") is "target"
-PASS testElementAttribute(element, "beforepaste") is "target"
-PASS testElementAttribute(element, "blur") is "target"
-PASS testElementAttribute(element, "canplay") is "target"
-PASS testElementAttribute(element, "canplaythrough") is "target"
-PASS testElementAttribute(element, "change") is "target"
-PASS testElementAttribute(element, "click") is "target"
-PASS testElementAttribute(element, "contextmenu") is "target"
-PASS testElementAttribute(element, "copy") is "target"
-PASS testElementAttribute(element, "cut") is "target"
-PASS testElementAttribute(element, "dblclick") is "target"
-PASS testElementAttribute(element, "drag") is "target"
-PASS testElementAttribute(element, "dragend") is "target"
-PASS testElementAttribute(element, "dragenter") is "target"
-PASS testElementAttribute(element, "dragleave") is "target"
-PASS testElementAttribute(element, "dragover") is "target"
-PASS testElementAttribute(element, "dragstart") is "target"
-PASS testElementAttribute(element, "drop") is "target"
-PASS testElementAttribute(element, "durationchange") is "target"
-PASS testElementAttribute(element, "emptied") is "target"
-PASS testElementAttribute(element, "ended") is "target"
-PASS testElementAttribute(element, "error") is "target"
-PASS testElementAttribute(element, "focus") is "target"
-PASS testElementAttribute(element, "focusin") is "target"
-PASS testElementAttribute(element, "focusout") is "target"
-PASS testElementAttribute(element, "input") is "target"
-PASS testElementAttribute(element, "invalid") is "target"
-PASS testElementAttribute(element, "keydown") is "target"
-PASS testElementAttribute(element, "keypress") is "target"
-PASS testElementAttribute(element, "keyup") is "target"
-PASS testElementAttribute(element, "load") is "target"
-PASS testElementAttribute(element, "loadeddata") is "target"
-PASS testElementAttribute(element, "loadedmetadata") is "target"
-PASS testElementAttribute(element, "loadstart") is "target"
-PASS testElementAttribute(element, "mousedown") is "target"
-PASS testElementAttribute(element, "mouseenter") is "target"
-PASS testElementAttribute(element, "mouseleave") is "target"
-PASS testElementAttribute(element, "mousemove") is "target"
-PASS testElementAttribute(element, "mouseout") is "target"
-PASS testElementAttribute(element, "mouseover") is "target"
-PASS testElementAttribute(element, "mouseup") is "target"
-PASS testElementAttribute(element, "mousewheel") is "target"
-PASS testElementAttribute(element, "paste") is "target"
-PASS testElementAttribute(element, "pause") is "target"
-PASS testElementAttribute(element, "play") is "target"
-PASS testElementAttribute(element, "playing") is "target"
-PASS testElementAttribute(element, "progress") is "target"
-PASS testElementAttribute(element, "ratechange") is "target"
-PASS testElementAttribute(element, "reset") is "target"
-FAIL testElementAttribute(element, "resize") should be target. Was target, window.
-PASS testElementAttribute(element, "scroll") is "target"
-PASS testElementAttribute(element, "search") is "target"
-PASS testElementAttribute(element, "seeked") is "target"
-PASS testElementAttribute(element, "seeking") is "target"
-PASS testElementAttribute(element, "select") is "target"
-PASS testElementAttribute(element, "selectstart") is "target"
-PASS testElementAttribute(element, "stalled") is "target"
-PASS testElementAttribute(element, "submit") is "target"
-PASS testElementAttribute(element, "suspend") is "target"
-PASS testElementAttribute(element, "timeupdate") is "target"
-PASS testElementAttribute(element, "transitionend") is "target"
-PASS testElementAttribute(element, "volumechange") is "target"
-PASS testElementAttribute(element, "waiting") is "target"
-PASS testElementAttribute(element, "webkitanimationend") is "target"
-PASS testElementAttribute(element, "webkitanimationiteration") is "target"
-PASS testElementAttribute(element, "webkitanimationstart") is "target"
-PASS testElementAttribute(element, "webkittransitionend") is "target"
-PASS testElementAttribute(element, "wheel") is "target"
-
-Event names we expect not to be able to set on an element (tested on the <html> element)
-
-PASS testElementAttribute(element, "beforeunload") is "none"
-PASS testElementAttribute(element, "hashchange") is "none"
-PASS testElementAttribute(element, "message") is "none"
-PASS testElementAttribute(element, "noneventname") is "none"
-PASS testElementAttribute(element, "offline") is "none"
-PASS testElementAttribute(element, "online") is "none"
-PASS testElementAttribute(element, "pagehide") is "none"
-PASS testElementAttribute(element, "pageshow") is "none"
-PASS testElementAttribute(element, "popstate") is "none"
-PASS testElementAttribute(element, "readystatechange") is "none"
-PASS testElementAttribute(element, "selectionchange") is "none"
-PASS testElementAttribute(element, "storage") is "none"
-PASS testElementAttribute(element, "unload") is "none"
-
-Event names we expect to be able to set on an element (tested on the <input> element)
-
-PASS testElementAttribute(inputElement, "abort") is "target"
-PASS testElementAttribute(inputElement, "animationend") is "target"
-PASS testElementAttribute(inputElement, "animationiteration") is "target"
-PASS testElementAttribute(inputElement, "animationstart") is "target"
-PASS testElementAttribute(inputElement, "beforecopy") is "target"
-PASS testElementAttribute(inputElement, "beforecut") is "target"
-PASS testElementAttribute(inputElement, "beforeload") is "target"
-PASS testElementAttribute(inputElement, "beforepaste") is "target"
-PASS testElementAttribute(inputElement, "blur") is "target"
-PASS testElementAttribute(inputElement, "canplay") is "target"
-PASS testElementAttribute(inputElement, "canplaythrough") is "target"
-PASS testElementAttribute(inputElement, "change") is "target"
-PASS testElementAttribute(inputElement, "click") is "target"
-PASS testElementAttribute(inputElement, "contextmenu") is "target"
-PASS testElementAttribute(inputElement, "copy") is "target"
-PASS testElementAttribute(inputElement, "cut") is "target"
-PASS testElementAttribute(inputElement, "dblclick") is "target"
-PASS testElementAttribute(inputElement, "drag") is "target"
-PASS testElementAttribute(inputElement, "dragend") is "target"
-PASS testElementAttribute(inputElement, "dragenter") is "target"
-PASS testElementAttribute(inputElement, "dragleave") is "target"
-PASS testElementAttribute(inputElement, "dragover") is "target"
-PASS testElementAttribute(inputElement, "dragstart") is "target"
-PASS testElementAttribute(inputElement, "drop") is "target"
-PASS testElementAttribute(inputElement, "durationchange") is "target"
-PASS testElementAttribute(inputElement, "emptied") is "target"
-PASS testElementAttribute(inputElement, "ended") is "target"
-PASS testElementAttribute(inputElement, "error") is "target"
-PASS testElementAttribute(inputElement, "focus") is "target"
-PASS testElementAttribute(inputElement, "focusin") is "target"
-PASS testElementAttribute(inputElement, "focusout") is "target"
-PASS testElementAttribute(inputElement, "input") is "target"
-PASS testElementAttribute(inputElement, "invalid") is "target"
-PASS testElementAttribute(inputElement, "keydown") is "target"
-PASS testElementAttribute(inputElement, "keypress") is "target"
-PASS testElementAttribute(inputElement, "keyup") is "target"
-PASS testElementAttribute(inputElement, "load") is "target"
-PASS testElementAttribute(inputElement, "loadeddata") is "target"
-PASS testElementAttribute(inputElement, "loadedmetadata") is "target"
-PASS testElementAttribute(inputElement, "loadstart") is "target"
-PASS testElementAttribute(inputElement, "mousedown") is "target"
-PASS testElementAttribute(inputElement, "mouseenter") is "target"
-PASS testElementAttribute(inputElement, "mouseleave") is "target"
-PASS testElementAttribute(inputElement, "mousemove") is "target"
-PASS testElementAttribute(inputElement, "mouseout") is "target"
-PASS testElementAttribute(inputElement, "mouseover") is "target"
-PASS testElementAttribute(inputElement, "mouseup") is "target"
-PASS testElementAttribute(inputElement, "mousewheel") is "target"
-PASS testElementAttribute(inputElement, "paste") is "target"
-PASS testElementAttribute(inputElement, "pause") is "target"
-PASS testElementAttribute(inputElement, "play") is "target"
-PASS testElementAttribute(inputElement, "playing") is "target"
-PASS testElementAttribute(inputElement, "progress") is "target"
-PASS testElementAttribute(inputElement, "ratechange") is "target"
-PASS testElementAttribute(inputElement, "reset") is "target"
-FAIL testElementAttribute(inputElement, "resize") should be target. Was target, window.
-PASS testElementAttribute(inputElement, "scroll") is "target"
-PASS testElementAttribute(inputElement, "search") is "target"
-PASS testElementAttribute(inputElement, "seeked") is "target"
-PASS testElementAttribute(inputElement, "seeking") is "target"
-PASS testElementAttribute(inputElement, "select") is "target"
-PASS testElementAttribute(inputElement, "selectstart") is "target"
-PASS testElementAttribute(inputElement, "stalled") is "target"
-PASS testElementAttribute(inputElement, "submit") is "target"
-PASS testElementAttribute(inputElement, "suspend") is "target"
-PASS testElementAttribute(inputElement, "timeupdate") is "target"
-PASS testElementAttribute(inputElement, "transitionend") is "target"
-PASS testElementAttribute(inputElement, "volumechange") is "target"
-PASS testElementAttribute(inputElement, "waiting") is "target"
-PASS testElementAttribute(inputElement, "webkitanimationend") is "target"
-PASS testElementAttribute(inputElement, "webkitanimationiteration") is "target"
-PASS testElementAttribute(inputElement, "webkitanimationstart") is "target"
-PASS testElementAttribute(inputElement, "webkittransitionend") is "target"
-PASS testElementAttribute(inputElement, "wheel") is "target"
-
-Event names we expect not to be able to set on an element (tested on the <input> element)
-
-PASS testElementAttribute(inputElement, "beforeunload") is "none"
-PASS testElementAttribute(inputElement, "hashchange") is "none"
-PASS testElementAttribute(inputElement, "message") is "none"
-PASS testElementAttribute(inputElement, "noneventname") is "none"
-PASS testElementAttribute(inputElement, "offline") is "none"
-PASS testElementAttribute(inputElement, "online") is "none"
-PASS testElementAttribute(inputElement, "pagehide") is "none"
-PASS testElementAttribute(inputElement, "pageshow") is "none"
-PASS testElementAttribute(inputElement, "popstate") is "none"
-PASS testElementAttribute(inputElement, "readystatechange") is "none"
-PASS testElementAttribute(inputElement, "selectionchange") is "none"
-PASS testElementAttribute(inputElement, "storage") is "none"
-PASS testElementAttribute(inputElement, "unload") is "none"
-
-Event names we expect to be able to set on an element (tested on the <audio> element)
-
-PASS testElementAttribute(audioElement, "abort") is "target"
-PASS testElementAttribute(audioElement, "animationend") is "target"
-PASS testElementAttribute(audioElement, "animationiteration") is "target"
-PASS testElementAttribute(audioElement, "animationstart") is "target"
-PASS testElementAttribute(audioElement, "beforecopy") is "target"
-PASS testElementAttribute(audioElement, "beforecut") is "target"
-PASS testElementAttribute(audioElement, "beforeload") is "target"
-PASS testElementAttribute(audioElement, "beforepaste") is "target"
-PASS testElementAttribute(audioElement, "blur") is "target"
-PASS testElementAttribute(audioElement, "canplay") is "target"
-PASS testElementAttribute(audioElement, "canplaythrough") is "target"
-PASS testElementAttribute(audioElement, "change") is "target"
-PASS testElementAttribute(audioElement, "click") is "target"
-PASS testElementAttribute(audioElement, "contextmenu") is "target"
-PASS testElementAttribute(audioElement, "copy") is "target"
-PASS testElementAttribute(audioElement, "cut") is "target"
-PASS testElementAttribute(audioElement, "dblclick") is "target"
-PASS testElementAttribute(audioElement, "drag") is "target"
-PASS testElementAttribute(audioElement, "dragend") is "target"
-PASS testElementAttribute(audioElement, "dragenter") is "target"
-PASS testElementAttribute(audioElement, "dragleave") is "target"
-PASS testElementAttribute(audioElement, "dragover") is "target"
-PASS testElementAttribute(audioElement, "dragstart") is "target"
-PASS testElementAttribute(audioElement, "drop") is "target"
-PASS testElementAttribute(audioElement, "durationchange") is "target"
-PASS testElementAttribute(audioElement, "emptied") is "target"
-PASS testElementAttribute(audioElement, "ended") is "target"
-PASS testElementAttribute(audioElement, "error") is "target"
-PASS testElementAttribute(audioElement, "focus") is "target"
-PASS testElementAttribute(audioElement, "focusin") is "target"
-PASS testElementAttribute(audioElement, "focusout") is "target"
-PASS testElementAttribute(audioElement, "input") is "target"
-PASS testElementAttribute(audioElement, "invalid") is "target"
-PASS testElementAttribute(audioElement, "keydown") is "target"
-PASS testElementAttribute(audioElement, "keypress") is "target"
-PASS testElementAttribute(audioElement, "keyup") is "target"
-PASS testElementAttribute(audioElement, "load") is "target"
-PASS testElementAttribute(audioElement, "loadeddata") is "target"
-PASS testElementAttribute(audioElement, "loadedmetadata") is "target"
-PASS testElementAttribute(audioElement, "loadstart") is "target"
-PASS testElementAttribute(audioElement, "mousedown") is "target"
-PASS testElementAttribute(audioElement, "mouseenter") is "target"
-PASS testElementAttribute(audioElement, "mouseleave") is "target"
-PASS testElementAttribute(audioElement, "mousemove") is "target"
-PASS testElementAttribute(audioElement, "mouseout") is "target"
-PASS testElementAttribute(audioElement, "mouseover") is "target"
-PASS testElementAttribute(audioElement, "mouseup") is "target"
-PASS testElementAttribute(audioElement, "mousewheel") is "target"
-PASS testElementAttribute(audioElement, "paste") is "target"
-PASS testElementAttribute(audioElement, "pause") is "target"
-PASS testElementAttribute(audioElement, "play") is "target"
-PASS testElementAttribute(audioElement, "playing") is "target"
-PASS testElementAttribute(audioElement, "progress") is "target"
-PASS testElementAttribute(audioElement, "ratechange") is "target"
-PASS testElementAttribute(audioElement, "reset") is "target"
-FAIL testElementAttribute(audioElement, "resize") should be target. Was target, window.
-PASS testElementAttribute(audioElement, "scroll") is "target"
-PASS testElementAttribute(audioElement, "search") is "target"
-PASS testElementAttribute(audioElement, "seeked") is "target"
-PASS testElementAttribute(audioElement, "seeking") is "target"
-PASS testElementAttribute(audioElement, "select") is "target"
-PASS testElementAttribute(audioElement, "selectstart") is "target"
-PASS testElementAttribute(audioElement, "stalled") is "target"
-PASS testElementAttribute(audioElement, "submit") is "target"
-PASS testElementAttribute(audioElement, "suspend") is "target"
-PASS testElementAttribute(audioElement, "timeupdate") is "target"
-PASS testElementAttribute(audioElement, "transitionend") is "target"
-PASS testElementAttribute(audioElement, "volumechange") is "target"
-PASS testElementAttribute(audioElement, "waiting") is "target"
-PASS testElementAttribute(audioElement, "webkitanimationend") is "target"
-PASS testElementAttribute(audioElement, "webkitanimationiteration") is "target"
-PASS testElementAttribute(audioElement, "webkitanimationstart") is "target"
-PASS testElementAttribute(audioElement, "webkittransitionend") is "target"
-PASS testElementAttribute(audioElement, "wheel") is "target"
-
-Event names we expect not to be able to set on an element (tested on the <audio> element)
-
-PASS testElementAttribute(audioElement, "beforeunload") is "none"
-PASS testElementAttribute(audioElement, "hashchange") is "none"
-PASS testElementAttribute(audioElement, "message") is "none"
-PASS testElementAttribute(audioElement, "noneventname") is "none"
-PASS testElementAttribute(audioElement, "offline") is "none"
-PASS testElementAttribute(audioElement, "online") is "none"
-PASS testElementAttribute(audioElement, "pagehide") is "none"
-PASS testElementAttribute(audioElement, "pageshow") is "none"
-PASS testElementAttribute(audioElement, "popstate") is "none"
-PASS testElementAttribute(audioElement, "readystatechange") is "none"
-PASS testElementAttribute(audioElement, "selectionchange") is "none"
-PASS testElementAttribute(audioElement, "storage") is "none"
-PASS testElementAttribute(audioElement, "unload") is "none"
-
-Event names we expect to be able to set on an element (tested on the <video> element)
-
-PASS testElementAttribute(videoElement, "abort") is "target"
-PASS testElementAttribute(videoElement, "animationend") is "target"
-PASS testElementAttribute(videoElement, "animationiteration") is "target"
-PASS testElementAttribute(videoElement, "animationstart") is "target"
-PASS testElementAttribute(videoElement, "beforecopy") is "target"
-PASS testElementAttribute(videoElement, "beforecut") is "target"
-PASS testElementAttribute(videoElement, "beforeload") is "target"
-PASS testElementAttribute(videoElement, "beforepaste") is "target"
-PASS testElementAttribute(videoElement, "blur") is "target"
-PASS testElementAttribute(videoElement, "canplay") is "target"
-PASS testElementAttribute(videoElement, "canplaythrough") is "target"
-PASS testElementAttribute(videoElement, "change") is "target"
-PASS testElementAttribute(videoElement, "click") is "target"
-PASS testElementAttribute(videoElement, "contextmenu") is "target"
-PASS testElementAttribute(videoElement, "copy") is "target"
-PASS testElementAttribute(videoElement, "cut") is "target"
-PASS testElementAttribute(videoElement, "dblclick") is "target"
-PASS testElementAttribute(videoElement, "drag") is "target"
-PASS testElementAttribute(videoElement, "dragend") is "target"
-PASS testElementAttribute(videoElement, "dragenter") is "target"
-PASS testElementAttribute(videoElement, "dragleave") is "target"
-PASS testElementAttribute(videoElement, "dragover") is "target"
-PASS testElementAttribute(videoElement, "dragstart") is "target"
-PASS testElementAttribute(videoElement, "drop") is "target"
-PASS testElementAttribute(videoElement, "durationchange") is "target"
-PASS testElementAttribute(videoElement, "emptied") is "target"
-PASS testElementAttribute(videoElement, "ended") is "target"
-PASS testElementAttribute(videoElement, "error") is "target"
-PASS testElementAttribute(videoElement, "focus") is "target"
-PASS testElementAttribute(videoElement, "focusin") is "target"
-PASS testElementAttribute(videoElement, "focusout") is "target"
-PASS testElementAttribute(videoElement, "input") is "target"
-PASS testElementAttribute(videoElement, "invalid") is "target"
-PASS testElementAttribute(videoElement, "keydown") is "target"
-PASS testElementAttribute(videoElement, "keypress") is "target"
-PASS testElementAttribute(videoElement, "keyup") is "target"
-PASS testElementAttribute(videoElement, "load") is "target"
-PASS testElementAttribute(videoElement, "loadeddata") is "target"
-PASS testElementAttribute(videoElement, "loadedmetadata") is "target"
-PASS testElementAttribute(videoElement, "loadstart") is "target"
-PASS testElementAttribute(videoElement, "mousedown") is "target"
-PASS testElementAttribute(videoElement, "mouseenter") is "target"
-PASS testElementAttribute(videoElement, "mouseleave") is "target"
-PASS testElementAttribute(videoElement, "mousemove") is "target"
-PASS testElementAttribute(videoElement, "mouseout") is "target"
-PASS testElementAttribute(videoElement, "mouseover") is "target"
-PASS testElementAttribute(videoElement, "mouseup") is "target"
-PASS testElementAttribute(videoElement, "mousewheel") is "target"
-PASS testElementAttribute(videoElement, "paste") is "target"
-PASS testElementAttribute(videoElement, "pause") is "target"
-PASS testElementAttribute(videoElement, "play") is "target"
-PASS testElementAttribute(videoElement, "playing") is "target"
-PASS testElementAttribute(videoElement, "progress") is "target"
-PASS testElementAttribute(videoElement, "ratechange") is "target"
-PASS testElementAttribute(videoElement, "reset") is "target"
-FAIL testElementAttribute(videoElement, "resize") should be target. Was target, window.
-PASS testElementAttribute(videoElement, "scroll") is "target"
-PASS testElementAttribute(videoElement, "search") is "target"
-PASS testElementAttribute(videoElement, "seeked") is "target"
-PASS testElementAttribute(videoElement, "seeking") is "target"
-PASS testElementAttribute(videoElement, "select") is "target"
-PASS testElementAttribute(videoElement, "selectstart") is "target"
-PASS testElementAttribute(videoElement, "stalled") is "target"
-PASS testElementAttribute(videoElement, "submit") is "target"
-PASS testElementAttribute(videoElement, "suspend") is "target"
-PASS testElementAttribute(videoElement, "timeupdate") is "target"
-PASS testElementAttribute(videoElement, "transitionend") is "target"
-PASS testElementAttribute(videoElement, "volumechange") is "target"
-PASS testElementAttribute(videoElement, "waiting") is "target"
-PASS testElementAttribute(videoElement, "webkitanimationend") is "target"
-PASS testElementAttribute(videoElement, "webkitanimationiteration") is "target"
-PASS testElementAttribute(videoElement, "webkitanimationstart") is "target"
-PASS testElementAttribute(videoElement, "webkittransitionend") is "target"
-PASS testElementAttribute(videoElement, "wheel") is "target"
-
-Event names we expect not to be able to set on an element (tested on the <video> element)
-
-PASS testElementAttribute(videoElement, "beforeunload") is "none"
-PASS testElementAttribute(videoElement, "hashchange") is "none"
-PASS testElementAttribute(videoElement, "message") is "none"
-PASS testElementAttribute(videoElement, "noneventname") is "none"
-PASS testElementAttribute(videoElement, "offline") is "none"
-PASS testElementAttribute(videoElement, "online") is "none"
-PASS testElementAttribute(videoElement, "pagehide") is "none"
-PASS testElementAttribute(videoElement, "pageshow") is "none"
-PASS testElementAttribute(videoElement, "popstate") is "none"
-PASS testElementAttribute(videoElement, "readystatechange") is "none"
-PASS testElementAttribute(videoElement, "selectionchange") is "none"
-PASS testElementAttribute(videoElement, "storage") is "none"
-PASS testElementAttribute(videoElement, "unload") is "none"
-
-Event names we expect to be forwarded from <body> element to window object)
-
-PASS testElementAttribute(bodyElement, "beforeunload") is "window"
-PASS testElementAttribute(bodyElement, "blur") is "window"
-PASS testElementAttribute(bodyElement, "error") is "window"
-PASS testElementAttribute(bodyElement, "focus") is "window"
-PASS testElementAttribute(bodyElement, "focusin") is "window"
-PASS testElementAttribute(bodyElement, "focusout") is "window"
-PASS testElementAttribute(bodyElement, "hashchange") is "window"
-PASS testElementAttribute(bodyElement, "load") is "window"
-PASS testElementAttribute(bodyElement, "message") is "window"
-PASS testElementAttribute(bodyElement, "offline") is "window"
-PASS testElementAttribute(bodyElement, "online") is "window"
-PASS testElementAttribute(bodyElement, "pagehide") is "window"
-PASS testElementAttribute(bodyElement, "pageshow") is "window"
-PASS testElementAttribute(bodyElement, "popstate") is "window"
-PASS testElementAttribute(bodyElement, "resize") is "window"
-PASS testElementAttribute(bodyElement, "storage") is "window"
-PASS testElementAttribute(bodyElement, "unload") is "window"
-
-Event names we expect to be forwarded from <body> element to document)
-
-PASS testElementAttribute(bodyElement, "selectionchange") is "document"
-
-Non-forwarded event names on <body> element
-
-PASS testElementAttribute(bodyElement, "abort") is "target"
-PASS testElementAttribute(bodyElement, "animationend") is "target"
-PASS testElementAttribute(bodyElement, "animationiteration") is "target"
-PASS testElementAttribute(bodyElement, "animationstart") is "target"
-PASS testElementAttribute(bodyElement, "beforecopy") is "target"
-PASS testElementAttribute(bodyElement, "beforecut") is "target"
-PASS testElementAttribute(bodyElement, "beforeload") is "target"
-PASS testElementAttribute(bodyElement, "beforepaste") is "target"
-PASS testElementAttribute(bodyElement, "canplay") is "target"
-PASS testElementAttribute(bodyElement, "canplaythrough") is "target"
-PASS testElementAttribute(bodyElement, "change") is "target"
-PASS testElementAttribute(bodyElement, "click") is "target"
-PASS testElementAttribute(bodyElement, "contextmenu") is "target"
-PASS testElementAttribute(bodyElement, "copy") is "target"
-PASS testElementAttribute(bodyElement, "cut") is "target"
-PASS testElementAttribute(bodyElement, "dblclick") is "target"
-PASS testElementAttribute(bodyElement, "drag") is "target"
-PASS testElementAttribute(bodyElement, "dragend") is "target"
-PASS testElementAttribute(bodyElement, "dragenter") is "target"
-PASS testElementAttribute(bodyElement, "dragleave") is "target"
-PASS testElementAttribute(bodyElement, "dragover") is "target"
-PASS testElementAttribute(bodyElement, "dragstart") is "target"
-PASS testElementAttribute(bodyElement, "drop") is "target"
-PASS testElementAttribute(bodyElement, "durationchange") is "target"
-PASS testElementAttribute(bodyElement, "emptied") is "target"
-PASS testElementAttribute(bodyElement, "ended") is "target"
-PASS testElementAttribute(bodyElement, "input") is "target"
-PASS testElementAttribute(bodyElement, "invalid") is "target"
-PASS testElementAttribute(bodyElement, "keydown") is "target"
-PASS testElementAttribute(bodyElement, "keypress") is "target"
-PASS testElementAttribute(bodyElement, "keyup") is "target"
-PASS testElementAttribute(bodyElement, "loadeddata") is "target"
-PASS testElementAttribute(bodyElement, "loadedmetadata") is "target"
-PASS testElementAttribute(bodyElement, "loadstart") is "target"
-PASS testElementAttribute(bodyElement, "mousedown") is "target"
-PASS testElementAttribute(bodyElement, "mouseenter") is "target"
-PASS testElementAttribute(bodyElement, "mouseleave") is "target"
-PASS testElementAttribute(bodyElement, "mousemove") is "target"
-PASS testElementAttribute(bodyElement, "mouseout") is "target"
-PASS testElementAttribute(bodyElement, "mouseover") is "target"
-PASS testElementAttribute(bodyElement, "mouseup") is "target"
-PASS testElementAttribute(bodyElement, "mousewheel") is "target"
-PASS testElementAttribute(bodyElement, "paste") is "target"
-PASS testElementAttribute(bodyElement, "pause") is "target"
-PASS testElementAttribute(bodyElement, "play") is "target"
-PASS testElementAttribute(bodyElement, "playing") is "target"
-PASS testElementAttribute(bodyElement, "progress") is "target"
-PASS testElementAttribute(bodyElement, "ratechange") is "target"
-PASS testElementAttribute(bodyElement, "reset") is "target"
-FAIL testElementAttribute(bodyElement, "scroll") should be target. Was window.
-PASS testElementAttribute(bodyElement, "search") is "target"
-PASS testElementAttribute(bodyElement, "seeked") is "target"
-PASS testElementAttribute(bodyElement, "seeking") is "target"
-PASS testElementAttribute(bodyElement, "select") is "target"
-PASS testElementAttribute(bodyElement, "selectstart") is "target"
-PASS testElementAttribute(bodyElement, "stalled") is "target"
-PASS testElementAttribute(bodyElement, "submit") is "target"
-PASS testElementAttribute(bodyElement, "suspend") is "target"
-PASS testElementAttribute(bodyElement, "timeupdate") is "target"
-PASS testElementAttribute(bodyElement, "transitionend") is "target"
-PASS testElementAttribute(bodyElement, "volumechange") is "target"
-PASS testElementAttribute(bodyElement, "waiting") is "target"
-PASS testElementAttribute(bodyElement, "webkitanimationend") is "target"
-PASS testElementAttribute(bodyElement, "webkitanimationiteration") is "target"
-PASS testElementAttribute(bodyElement, "webkitanimationstart") is "target"
-PASS testElementAttribute(bodyElement, "webkittransitionend") is "target"
-PASS testElementAttribute(bodyElement, "wheel") is "target"
-
-Event names we expect to not be able to set on <body> element
-
-PASS testElementAttribute(bodyElement, "noneventname") is "none"
-PASS testElementAttribute(bodyElement, "readystatechange") is "none"
-
-Event names we expect to be forwarded from <frameset> element to window object)
-
-PASS testElementAttribute(framesetElement, "beforeunload") is "window"
-PASS testElementAttribute(framesetElement, "blur") is "window"
-PASS testElementAttribute(framesetElement, "error") is "window"
-PASS testElementAttribute(framesetElement, "focus") is "window"
-PASS testElementAttribute(framesetElement, "focusin") is "window"
-PASS testElementAttribute(framesetElement, "focusout") is "window"
-PASS testElementAttribute(framesetElement, "hashchange") is "window"
-PASS testElementAttribute(framesetElement, "load") is "window"
-PASS testElementAttribute(framesetElement, "message") is "window"
-PASS testElementAttribute(framesetElement, "offline") is "window"
-PASS testElementAttribute(framesetElement, "online") is "window"
-PASS testElementAttribute(framesetElement, "pagehide") is "window"
-PASS testElementAttribute(framesetElement, "pageshow") is "window"
-PASS testElementAttribute(framesetElement, "popstate") is "window"
-PASS testElementAttribute(framesetElement, "resize") is "window"
-PASS testElementAttribute(framesetElement, "storage") is "window"
-PASS testElementAttribute(framesetElement, "unload") is "window"
-
-Event names we expect to be forwarded from <frameset> element to document)
-
-FAIL testElementAttribute(framesetElement, "selectionchange") should be document. Was none.
-
-Non-forwarded event names on <frameset> element
-
-PASS testElementAttribute(framesetElement, "abort") is "target"
-PASS testElementAttribute(framesetElement, "animationend") is "target"
-PASS testElementAttribute(framesetElement, "animationiteration") is "target"
-PASS testElementAttribute(framesetElement, "animationstart") is "target"
-PASS testElementAttribute(framesetElement, "beforecopy") is "target"
-PASS testElementAttribute(framesetElement, "beforecut") is "target"
-PASS testElementAttribute(framesetElement, "beforeload") is "target"
-PASS testElementAttribute(framesetElement, "beforepaste") is "target"
-PASS testElementAttribute(framesetElement, "canplay") is "target"
-PASS testElementAttribute(framesetElement, "canplaythrough") is "target"
-PASS testElementAttribute(framesetElement, "change") is "target"
-PASS testElementAttribute(framesetElement, "click") is "target"
-PASS testElementAttribute(framesetElement, "contextmenu") is "target"
-PASS testElementAttribute(framesetElement, "copy") is "target"
-PASS testElementAttribute(framesetElement, "cut") is "target"
-PASS testElementAttribute(framesetElement, "dblclick") is "target"
-PASS testElementAttribute(framesetElement, "drag") is "target"
-PASS testElementAttribute(framesetElement, "dragend") is "target"
-PASS testElementAttribute(framesetElement, "dragenter") is "target"
-PASS testElementAttribute(framesetElement, "dragleave") is "target"
-PASS testElementAttribute(framesetElement, "dragover") is "target"
-PASS testElementAttribute(framesetElement, "dragstart") is "target"
-PASS testElementAttribute(framesetElement, "drop") is "target"
-PASS testElementAttribute(framesetElement, "durationchange") is "target"
-PASS testElementAttribute(framesetElement, "emptied") is "target"
-PASS testElementAttribute(framesetElement, "ended") is "target"
-PASS testElementAttribute(framesetElement, "input") is "target"
-PASS testElementAttribute(framesetElement, "invalid") is "target"
-PASS testElementAttribute(framesetElement, "keydown") is "target"
-PASS testElementAttribute(framesetElement, "keypress") is "target"
-PASS testElementAttribute(framesetElement, "keyup") is "target"
-PASS testElementAttribute(framesetElement, "loadeddata") is "target"
-PASS testElementAttribute(framesetElement, "loadedmetadata") is "target"
-PASS testElementAttribute(framesetElement, "loadstart") is "target"
-PASS testElementAttribute(framesetElement, "mousedown") is "target"
-PASS testElementAttribute(framesetElement, "mouseenter") is "target"
-PASS testElementAttribute(framesetElement, "mouseleave") is "target"
-PASS testElementAttribute(framesetElement, "mousemove") is "target"
-PASS testElementAttribute(framesetElement, "mouseout") is "target"
-PASS testElementAttribute(framesetElement, "mouseover") is "target"
-PASS testElementAttribute(framesetElement, "mouseup") is "target"
-PASS testElementAttribute(framesetElement, "mousewheel") is "target"
-PASS testElementAttribute(framesetElement, "paste") is "target"
-PASS testElementAttribute(framesetElement, "pause") is "target"
-PASS testElementAttribute(framesetElement, "play") is "target"
-PASS testElementAttribute(framesetElement, "playing") is "target"
-PASS testElementAttribute(framesetElement, "progress") is "target"
-PASS testElementAttribute(framesetElement, "ratechange") is "target"
-PASS testElementAttribute(framesetElement, "reset") is "target"
-FAIL testElementAttribute(framesetElement, "scroll") should be target. Was window.
-PASS testElementAttribute(framesetElement, "search") is "target"
-PASS testElementAttribute(framesetElement, "seeked") is "target"
-PASS testElementAttribute(framesetElement, "seeking") is "target"
-PASS testElementAttribute(framesetElement, "select") is "target"
-PASS testElementAttribute(framesetElement, "selectstart") is "target"
-PASS testElementAttribute(framesetElement, "stalled") is "target"
-PASS testElementAttribute(framesetElement, "submit") is "target"
-PASS testElementAttribute(framesetElement, "suspend") is "target"
-PASS testElementAttribute(framesetElement, "timeupdate") is "target"
-PASS testElementAttribute(framesetElement, "transitionend") is "target"
-PASS testElementAttribute(framesetElement, "volumechange") is "target"
-PASS testElementAttribute(framesetElement, "waiting") is "target"
-PASS testElementAttribute(framesetElement, "webkitanimationend") is "target"
-PASS testElementAttribute(framesetElement, "webkitanimationiteration") is "target"
-PASS testElementAttribute(framesetElement, "webkitanimationstart") is "target"
-PASS testElementAttribute(framesetElement, "webkittransitionend") is "target"
-PASS testElementAttribute(framesetElement, "wheel") is "target"
-
-Event names we expect to not be able to set on <frameset> element
-
-PASS testElementAttribute(framesetElement, "noneventname") is "none"
-PASS testElementAttribute(framesetElement, "readystatechange") is "none"
-
-Event names we expect to be able to set on an element (tested on the SVG <rect> element)
-
-PASS testElementAttribute(rectElement, "abort") is "target"
-PASS testElementAttribute(rectElement, "animationend") is "target"
-PASS testElementAttribute(rectElement, "animationiteration") is "target"
-PASS testElementAttribute(rectElement, "animationstart") is "target"
-PASS testElementAttribute(rectElement, "beforecopy") is "target"
-PASS testElementAttribute(rectElement, "beforecut") is "target"
-PASS testElementAttribute(rectElement, "beforeload") is "target"
-PASS testElementAttribute(rectElement, "beforepaste") is "target"
-PASS testElementAttribute(rectElement, "blur") is "target"
-PASS testElementAttribute(rectElement, "canplay") is "target"
-PASS testElementAttribute(rectElement, "canplaythrough") is "target"
-PASS testElementAttribute(rectElement, "change") is "target"
-PASS testElementAttribute(rectElement, "click") is "target"
-PASS testElementAttribute(rectElement, "contextmenu") is "target"
-PASS testElementAttribute(rectElement, "copy") is "target"
-PASS testElementAttribute(rectElement, "cut") is "target"
-PASS testElementAttribute(rectElement, "dblclick") is "target"
-PASS testElementAttribute(rectElement, "drag") is "target"
-PASS testElementAttribute(rectElement, "dragend") is "target"
-PASS testElementAttribute(rectElement, "dragenter") is "target"
-PASS testElementAttribute(rectElement, "dragleave") is "target"
-PASS testElementAttribute(rectElement, "dragover") is "target"
-PASS testElementAttribute(rectElement, "dragstart") is "target"
-PASS testElementAttribute(rectElement, "drop") is "target"
-PASS testElementAttribute(rectElement, "durationchange") is "target"
-PASS testElementAttribute(rectElement, "emptied") is "target"
-PASS testElementAttribute(rectElement, "ended") is "target"
-PASS testElementAttribute(rectElement, "error") is "target"
-PASS testElementAttribute(rectElement, "focus") is "target"
-PASS testElementAttribute(rectElement, "focusin") is "target"
-PASS testElementAttribute(rectElement, "focusout") is "target"
-PASS testElementAttribute(rectElement, "input") is "target"
-PASS testElementAttribute(rectElement, "invalid") is "target"
-PASS testElementAttribute(rectElement, "keydown") is "target"
-PASS testElementAttribute(rectElement, "keypress") is "target"
-PASS testElementAttribute(rectElement, "keyup") is "target"
-PASS testElementAttribute(rectElement, "load") is "target"
-PASS testElementAttribute(rectElement, "loadeddata") is "target"
-PASS testElementAttribute(rectElement, "loadedmetadata") is "target"
-PASS testElementAttribute(rectElement, "loadstart") is "target"
-PASS testElementAttribute(rectElement, "mousedown") is "target"
-PASS testElementAttribute(rectElement, "mouseenter") is "target"
-PASS testElementAttribute(rectElement, "mouseleave") is "target"
-PASS testElementAttribute(rectElement, "mousemove") is "target"
-PASS testElementAttribute(rectElement, "mouseout") is "target"
-PASS testElementAttribute(rectElement, "mouseover") is "target"
-PASS testElementAttribute(rectElement, "mouseup") is "target"
-PASS testElementAttribute(rectElement, "mousewheel") is "target"
-PASS testElementAttribute(rectElement, "paste") is "target"
-PASS testElementAttribute(rectElement, "pause") is "target"
-PASS testElementAttribute(rectElement, "play") is "target"
-PASS testElementAttribute(rectElement, "playing") is "target"
-PASS testElementAttribute(rectElement, "progress") is "target"
-PASS testElementAttribute(rectElement, "ratechange") is "target"
-PASS testElementAttribute(rectElement, "reset") is "target"
-FAIL testElementAttribute(rectElement, "resize") should be target. Was target, window.
-PASS testElementAttribute(rectElement, "scroll") is "target"
-PASS testElementAttribute(rectElement, "search") is "target"
-PASS testElementAttribute(rectElement, "seeked") is "target"
-PASS testElementAttribute(rectElement, "seeking") is "target"
-PASS testElementAttribute(rectElement, "select") is "target"
-PASS testElementAttribute(rectElement, "selectstart") is "target"
-PASS testElementAttribute(rectElement, "stalled") is "target"
-PASS testElementAttribute(rectElement, "submit") is "target"
-PASS testElementAttribute(rectElement, "suspend") is "target"
-PASS testElementAttribute(rectElement, "timeupdate") is "target"
-PASS testElementAttribute(rectElement, "transitionend") is "target"
-PASS testElementAttribute(rectElement, "volumechange") is "target"
-PASS testElementAttribute(rectElement, "waiting") is "target"
-PASS testElementAttribute(rectElement, "webkitanimationend") is "target"
-PASS testElementAttribute(rectElement, "webkitanimationiteration") is "target"
-PASS testElementAttribute(rectElement, "webkitanimationstart") is "target"
-PASS testElementAttribute(rectElement, "webkittransitionend") is "target"
-PASS testElementAttribute(rectElement, "wheel") is "target"
-
-Event names we expect not to be able to set on an element (tested on the SVG <rect> element)
-
-PASS testElementAttribute(rectElement, "beforeunload") is "none"
-PASS testElementAttribute(rectElement, "hashchange") is "none"
-PASS testElementAttribute(rectElement, "message") is "none"
-PASS testElementAttribute(rectElement, "noneventname") is "none"
-PASS testElementAttribute(rectElement, "offline") is "none"
-PASS testElementAttribute(rectElement, "online") is "none"
-PASS testElementAttribute(rectElement, "pagehide") is "none"
-PASS testElementAttribute(rectElement, "pageshow") is "none"
-PASS testElementAttribute(rectElement, "popstate") is "none"
-PASS testElementAttribute(rectElement, "readystatechange") is "none"
-PASS testElementAttribute(rectElement, "selectionchange") is "none"
-PASS testElementAttribute(rectElement, "storage") is "none"
-PASS testElementAttribute(rectElement, "unload") is "none"
-
-Event names on a non-HTML element
-
-PASS testElementAttribute(nonHTMLElement, "abort") is "none"
-PASS testElementAttribute(nonHTMLElement, "animationend") is "none"
-PASS testElementAttribute(nonHTMLElement, "animationiteration") is "none"
-PASS testElementAttribute(nonHTMLElement, "animationstart") is "none"
-FAIL testElementAttribute(nonHTMLElement, "beforecopy") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "beforecut") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "beforeload") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "beforepaste") should be none. Was script: target; content: none.
-PASS testElementAttribute(nonHTMLElement, "beforeunload") is "none"
-PASS testElementAttribute(nonHTMLElement, "blur") is "none"
-PASS testElementAttribute(nonHTMLElement, "canplay") is "none"
-PASS testElementAttribute(nonHTMLElement, "canplaythrough") is "none"
-PASS testElementAttribute(nonHTMLElement, "change") is "none"
-PASS testElementAttribute(nonHTMLElement, "click") is "none"
-PASS testElementAttribute(nonHTMLElement, "contextmenu") is "none"
-FAIL testElementAttribute(nonHTMLElement, "copy") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "cut") should be none. Was script: target; content: none.
-PASS testElementAttribute(nonHTMLElement, "dblclick") is "none"
-PASS testElementAttribute(nonHTMLElement, "drag") is "none"
-PASS testElementAttribute(nonHTMLElement, "dragend") is "none"
-PASS testElementAttribute(nonHTMLElement, "dragenter") is "none"
-PASS testElementAttribute(nonHTMLElement, "dragleave") is "none"
-PASS testElementAttribute(nonHTMLElement, "dragover") is "none"
-PASS testElementAttribute(nonHTMLElement, "dragstart") is "none"
-PASS testElementAttribute(nonHTMLElement, "drop") is "none"
-PASS testElementAttribute(nonHTMLElement, "durationchange") is "none"
-PASS testElementAttribute(nonHTMLElement, "emptied") is "none"
-PASS testElementAttribute(nonHTMLElement, "ended") is "none"
-PASS testElementAttribute(nonHTMLElement, "error") is "none"
-PASS testElementAttribute(nonHTMLElement, "focus") is "none"
-FAIL testElementAttribute(nonHTMLElement, "focusin") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "focusout") should be none. Was script: target; content: none.
-PASS testElementAttribute(nonHTMLElement, "hashchange") is "none"
-PASS testElementAttribute(nonHTMLElement, "input") is "none"
-PASS testElementAttribute(nonHTMLElement, "invalid") is "none"
-PASS testElementAttribute(nonHTMLElement, "keydown") is "none"
-PASS testElementAttribute(nonHTMLElement, "keypress") is "none"
-PASS testElementAttribute(nonHTMLElement, "keyup") is "none"
-PASS testElementAttribute(nonHTMLElement, "load") is "none"
-PASS testElementAttribute(nonHTMLElement, "loadeddata") is "none"
-PASS testElementAttribute(nonHTMLElement, "loadedmetadata") is "none"
-PASS testElementAttribute(nonHTMLElement, "loadstart") is "none"
-PASS testElementAttribute(nonHTMLElement, "message") is "none"
-PASS testElementAttribute(nonHTMLElement, "mousedown") is "none"
-PASS testElementAttribute(nonHTMLElement, "mouseenter") is "none"
-PASS testElementAttribute(nonHTMLElement, "mouseleave") is "none"
-PASS testElementAttribute(nonHTMLElement, "mousemove") is "none"
-PASS testElementAttribute(nonHTMLElement, "mouseout") is "none"
-PASS testElementAttribute(nonHTMLElement, "mouseover") is "none"
-PASS testElementAttribute(nonHTMLElement, "mouseup") is "none"
-PASS testElementAttribute(nonHTMLElement, "mousewheel") is "none"
-PASS testElementAttribute(nonHTMLElement, "noneventname") is "none"
-PASS testElementAttribute(nonHTMLElement, "offline") is "none"
-PASS testElementAttribute(nonHTMLElement, "online") is "none"
-PASS testElementAttribute(nonHTMLElement, "pagehide") is "none"
-PASS testElementAttribute(nonHTMLElement, "pageshow") is "none"
-FAIL testElementAttribute(nonHTMLElement, "paste") should be none. Was script: target; content: none.
-PASS testElementAttribute(nonHTMLElement, "pause") is "none"
-PASS testElementAttribute(nonHTMLElement, "play") is "none"
-PASS testElementAttribute(nonHTMLElement, "playing") is "none"
-PASS testElementAttribute(nonHTMLElement, "popstate") is "none"
-PASS testElementAttribute(nonHTMLElement, "progress") is "none"
-PASS testElementAttribute(nonHTMLElement, "ratechange") is "none"
-PASS testElementAttribute(nonHTMLElement, "readystatechange") is "none"
-PASS testElementAttribute(nonHTMLElement, "reset") is "none"
-PASS testElementAttribute(nonHTMLElement, "resize") is "none"
-PASS testElementAttribute(nonHTMLElement, "scroll") is "none"
-PASS testElementAttribute(nonHTMLElement, "search") is "none"
-PASS testElementAttribute(nonHTMLElement, "seeked") is "none"
-PASS testElementAttribute(nonHTMLElement, "seeking") is "none"
-PASS testElementAttribute(nonHTMLElement, "select") is "none"
-PASS testElementAttribute(nonHTMLElement, "selectionchange") is "none"
-FAIL testElementAttribute(nonHTMLElement, "selectstart") should be none. Was script: target; content: none.
-PASS testElementAttribute(nonHTMLElement, "stalled") is "none"
-PASS testElementAttribute(nonHTMLElement, "storage") is "none"
-PASS testElementAttribute(nonHTMLElement, "submit") is "none"
-PASS testElementAttribute(nonHTMLElement, "suspend") is "none"
-PASS testElementAttribute(nonHTMLElement, "timeupdate") is "none"
-PASS testElementAttribute(nonHTMLElement, "transitionend") is "none"
-PASS testElementAttribute(nonHTMLElement, "unload") is "none"
-PASS testElementAttribute(nonHTMLElement, "volumechange") is "none"
-PASS testElementAttribute(nonHTMLElement, "waiting") is "none"
-FAIL testElementAttribute(nonHTMLElement, "webkitanimationend") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "webkitanimationiteration") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "webkitanimationstart") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "webkittransitionend") should be none. Was script: target; content: none.
-PASS testElementAttribute(nonHTMLElement, "wheel") is "none"
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/platform/ios/legacy-animation-engine/fast/dom/event-handler-attributes-expected.txt b/LayoutTests/platform/ios/legacy-animation-engine/fast/dom/event-handler-attributes-expected.txt
deleted file mode 100644 (file)
index 0f39c42..0000000
+++ /dev/null
@@ -1,948 +0,0 @@
-Test which event listeners are set up by event handler attributes (the ones with names like onclick).
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Event names we expect to be able to set on the window object
-
-PASS testScriptAttribute(window, "abort") is "window"
-PASS testScriptAttribute(window, "animationend") is "window"
-PASS testScriptAttribute(window, "animationiteration") is "window"
-PASS testScriptAttribute(window, "animationstart") is "window"
-PASS testScriptAttribute(window, "beforeunload") is "window"
-PASS testScriptAttribute(window, "blur") is "window"
-PASS testScriptAttribute(window, "canplay") is "window"
-PASS testScriptAttribute(window, "canplaythrough") is "window"
-PASS testScriptAttribute(window, "change") is "window"
-PASS testScriptAttribute(window, "click") is "window"
-PASS testScriptAttribute(window, "contextmenu") is "window"
-PASS testScriptAttribute(window, "dblclick") is "window"
-PASS testScriptAttribute(window, "drag") is "window"
-PASS testScriptAttribute(window, "dragend") is "window"
-PASS testScriptAttribute(window, "dragenter") is "window"
-PASS testScriptAttribute(window, "dragleave") is "window"
-PASS testScriptAttribute(window, "dragover") is "window"
-PASS testScriptAttribute(window, "dragstart") is "window"
-PASS testScriptAttribute(window, "drop") is "window"
-PASS testScriptAttribute(window, "durationchange") is "window"
-PASS testScriptAttribute(window, "emptied") is "window"
-PASS testScriptAttribute(window, "ended") is "window"
-PASS testScriptAttribute(window, "error") is "window"
-PASS testScriptAttribute(window, "focus") is "window"
-PASS testScriptAttribute(window, "hashchange") is "window"
-PASS testScriptAttribute(window, "input") is "window"
-PASS testScriptAttribute(window, "invalid") is "window"
-PASS testScriptAttribute(window, "keydown") is "window"
-PASS testScriptAttribute(window, "keypress") is "window"
-PASS testScriptAttribute(window, "keyup") is "window"
-PASS testScriptAttribute(window, "load") is "window"
-PASS testScriptAttribute(window, "loadeddata") is "window"
-PASS testScriptAttribute(window, "loadedmetadata") is "window"
-PASS testScriptAttribute(window, "loadstart") is "window"
-PASS testScriptAttribute(window, "message") is "window"
-PASS testScriptAttribute(window, "mousedown") is "window"
-PASS testScriptAttribute(window, "mouseenter") is "window"
-PASS testScriptAttribute(window, "mouseleave") is "window"
-PASS testScriptAttribute(window, "mousemove") is "window"
-PASS testScriptAttribute(window, "mouseout") is "window"
-PASS testScriptAttribute(window, "mouseover") is "window"
-PASS testScriptAttribute(window, "mouseup") is "window"
-PASS testScriptAttribute(window, "mousewheel") is "window"
-PASS testScriptAttribute(window, "offline") is "window"
-PASS testScriptAttribute(window, "online") is "window"
-PASS testScriptAttribute(window, "pagehide") is "window"
-PASS testScriptAttribute(window, "pageshow") is "window"
-PASS testScriptAttribute(window, "pause") is "window"
-PASS testScriptAttribute(window, "play") is "window"
-PASS testScriptAttribute(window, "playing") is "window"
-PASS testScriptAttribute(window, "popstate") is "window"
-PASS testScriptAttribute(window, "progress") is "window"
-PASS testScriptAttribute(window, "ratechange") is "window"
-PASS testScriptAttribute(window, "reset") is "window"
-PASS testScriptAttribute(window, "resize") is "window"
-PASS testScriptAttribute(window, "scroll") is "window"
-PASS testScriptAttribute(window, "search") is "window"
-PASS testScriptAttribute(window, "seeked") is "window"
-PASS testScriptAttribute(window, "seeking") is "window"
-PASS testScriptAttribute(window, "select") is "window"
-PASS testScriptAttribute(window, "stalled") is "window"
-PASS testScriptAttribute(window, "storage") is "window"
-PASS testScriptAttribute(window, "submit") is "window"
-PASS testScriptAttribute(window, "suspend") is "window"
-PASS testScriptAttribute(window, "timeupdate") is "window"
-PASS testScriptAttribute(window, "transitionend") is "window"
-PASS testScriptAttribute(window, "unload") is "window"
-PASS testScriptAttribute(window, "volumechange") is "window"
-PASS testScriptAttribute(window, "waiting") is "window"
-PASS testScriptAttribute(window, "webkitanimationend") is "window"
-PASS testScriptAttribute(window, "webkitanimationiteration") is "window"
-PASS testScriptAttribute(window, "webkitanimationstart") is "window"
-PASS testScriptAttribute(window, "webkittransitionend") is "window"
-PASS testScriptAttribute(window, "wheel") is "window"
-
-Event names we expect not to be able to set on the window object
-
-PASS testScriptAttribute(window, "beforecopy") is "none"
-PASS testScriptAttribute(window, "beforecut") is "none"
-PASS testScriptAttribute(window, "beforeload") is "none"
-PASS testScriptAttribute(window, "beforepaste") is "none"
-PASS testScriptAttribute(window, "copy") is "none"
-PASS testScriptAttribute(window, "cut") is "none"
-PASS testScriptAttribute(window, "focusin") is "none"
-PASS testScriptAttribute(window, "focusout") is "none"
-PASS testScriptAttribute(window, "noneventname") is "none"
-PASS testScriptAttribute(window, "paste") is "none"
-PASS testScriptAttribute(window, "readystatechange") is "none"
-PASS testScriptAttribute(window, "selectionchange") is "none"
-PASS testScriptAttribute(window, "selectstart") is "none"
-
-Event names we expect to be able to set on the document
-
-PASS testScriptAttribute(document, "abort") is "document"
-PASS testScriptAttribute(document, "animationend") is "document"
-PASS testScriptAttribute(document, "animationiteration") is "document"
-PASS testScriptAttribute(document, "animationstart") is "document"
-PASS testScriptAttribute(document, "beforecopy") is "document"
-PASS testScriptAttribute(document, "beforecut") is "document"
-PASS testScriptAttribute(document, "beforepaste") is "document"
-PASS testScriptAttribute(document, "blur") is "document"
-PASS testScriptAttribute(document, "canplay") is "document"
-PASS testScriptAttribute(document, "canplaythrough") is "document"
-PASS testScriptAttribute(document, "change") is "document"
-PASS testScriptAttribute(document, "click") is "document"
-PASS testScriptAttribute(document, "contextmenu") is "document"
-PASS testScriptAttribute(document, "copy") is "document"
-PASS testScriptAttribute(document, "cut") is "document"
-PASS testScriptAttribute(document, "dblclick") is "document"
-PASS testScriptAttribute(document, "drag") is "document"
-PASS testScriptAttribute(document, "dragend") is "document"
-PASS testScriptAttribute(document, "dragenter") is "document"
-PASS testScriptAttribute(document, "dragleave") is "document"
-PASS testScriptAttribute(document, "dragover") is "document"
-PASS testScriptAttribute(document, "dragstart") is "document"
-PASS testScriptAttribute(document, "drop") is "document"
-PASS testScriptAttribute(document, "durationchange") is "document"
-PASS testScriptAttribute(document, "emptied") is "document"
-PASS testScriptAttribute(document, "ended") is "document"
-PASS testScriptAttribute(document, "error") is "document"
-PASS testScriptAttribute(document, "focus") is "document"
-PASS testScriptAttribute(document, "input") is "document"
-PASS testScriptAttribute(document, "invalid") is "document"
-PASS testScriptAttribute(document, "keydown") is "document"
-PASS testScriptAttribute(document, "keypress") is "document"
-PASS testScriptAttribute(document, "keyup") is "document"
-PASS testScriptAttribute(document, "load") is "document"
-PASS testScriptAttribute(document, "loadeddata") is "document"
-PASS testScriptAttribute(document, "loadedmetadata") is "document"
-PASS testScriptAttribute(document, "loadstart") is "document"
-PASS testScriptAttribute(document, "mousedown") is "document"
-PASS testScriptAttribute(document, "mouseenter") is "document"
-PASS testScriptAttribute(document, "mouseleave") is "document"
-PASS testScriptAttribute(document, "mousemove") is "document"
-PASS testScriptAttribute(document, "mouseout") is "document"
-PASS testScriptAttribute(document, "mouseover") is "document"
-PASS testScriptAttribute(document, "mouseup") is "document"
-PASS testScriptAttribute(document, "mousewheel") is "document"
-PASS testScriptAttribute(document, "paste") is "document"
-PASS testScriptAttribute(document, "pause") is "document"
-PASS testScriptAttribute(document, "play") is "document"
-PASS testScriptAttribute(document, "playing") is "document"
-PASS testScriptAttribute(document, "progress") is "document"
-PASS testScriptAttribute(document, "ratechange") is "document"
-PASS testScriptAttribute(document, "readystatechange") is "document"
-PASS testScriptAttribute(document, "reset") is "document"
-FAIL testScriptAttribute(document, "resize") should be document. Was window, document.
-PASS testScriptAttribute(document, "scroll") is "document"
-PASS testScriptAttribute(document, "search") is "document"
-PASS testScriptAttribute(document, "seeked") is "document"
-PASS testScriptAttribute(document, "seeking") is "document"
-PASS testScriptAttribute(document, "select") is "document"
-PASS testScriptAttribute(document, "selectionchange") is "document"
-PASS testScriptAttribute(document, "selectstart") is "document"
-PASS testScriptAttribute(document, "stalled") is "document"
-PASS testScriptAttribute(document, "submit") is "document"
-PASS testScriptAttribute(document, "suspend") is "document"
-PASS testScriptAttribute(document, "timeupdate") is "document"
-PASS testScriptAttribute(document, "transitionend") is "document"
-PASS testScriptAttribute(document, "volumechange") is "document"
-PASS testScriptAttribute(document, "waiting") is "document"
-PASS testScriptAttribute(document, "wheel") is "document"
-
-Event names we expect not to be able to set on the document
-
-PASS testScriptAttribute(document, "beforeload") is "none"
-PASS testScriptAttribute(document, "beforeunload") is "none"
-PASS testScriptAttribute(document, "focusin") is "none"
-PASS testScriptAttribute(document, "focusout") is "none"
-PASS testScriptAttribute(document, "hashchange") is "none"
-PASS testScriptAttribute(document, "message") is "none"
-PASS testScriptAttribute(document, "noneventname") is "none"
-PASS testScriptAttribute(document, "offline") is "none"
-PASS testScriptAttribute(document, "online") is "none"
-PASS testScriptAttribute(document, "pagehide") is "none"
-PASS testScriptAttribute(document, "pageshow") is "none"
-PASS testScriptAttribute(document, "popstate") is "none"
-PASS testScriptAttribute(document, "storage") is "none"
-PASS testScriptAttribute(document, "unload") is "none"
-PASS testScriptAttribute(document, "webkitanimationend") is "none"
-PASS testScriptAttribute(document, "webkitanimationiteration") is "none"
-PASS testScriptAttribute(document, "webkitanimationstart") is "none"
-PASS testScriptAttribute(document, "webkittransitionend") is "none"
-
-Event names we expect to be able to set on an element (tested on the <html> element)
-
-PASS testElementAttribute(element, "abort") is "target"
-PASS testElementAttribute(element, "animationend") is "target"
-PASS testElementAttribute(element, "animationiteration") is "target"
-PASS testElementAttribute(element, "animationstart") is "target"
-PASS testElementAttribute(element, "beforecopy") is "target"
-PASS testElementAttribute(element, "beforecut") is "target"
-PASS testElementAttribute(element, "beforeload") is "target"
-PASS testElementAttribute(element, "beforepaste") is "target"
-PASS testElementAttribute(element, "blur") is "target"
-PASS testElementAttribute(element, "canplay") is "target"
-PASS testElementAttribute(element, "canplaythrough") is "target"
-PASS testElementAttribute(element, "change") is "target"
-PASS testElementAttribute(element, "click") is "target"
-PASS testElementAttribute(element, "contextmenu") is "target"
-PASS testElementAttribute(element, "copy") is "target"
-PASS testElementAttribute(element, "cut") is "target"
-PASS testElementAttribute(element, "dblclick") is "target"
-PASS testElementAttribute(element, "drag") is "target"
-PASS testElementAttribute(element, "dragend") is "target"
-PASS testElementAttribute(element, "dragenter") is "target"
-PASS testElementAttribute(element, "dragleave") is "target"
-PASS testElementAttribute(element, "dragover") is "target"
-PASS testElementAttribute(element, "dragstart") is "target"
-PASS testElementAttribute(element, "drop") is "target"
-PASS testElementAttribute(element, "durationchange") is "target"
-PASS testElementAttribute(element, "emptied") is "target"
-PASS testElementAttribute(element, "ended") is "target"
-PASS testElementAttribute(element, "error") is "target"
-PASS testElementAttribute(element, "focus") is "target"
-PASS testElementAttribute(element, "focusin") is "target"
-PASS testElementAttribute(element, "focusout") is "target"
-PASS testElementAttribute(element, "input") is "target"
-PASS testElementAttribute(element, "invalid") is "target"
-PASS testElementAttribute(element, "keydown") is "target"
-PASS testElementAttribute(element, "keypress") is "target"
-PASS testElementAttribute(element, "keyup") is "target"
-PASS testElementAttribute(element, "load") is "target"
-PASS testElementAttribute(element, "loadeddata") is "target"
-PASS testElementAttribute(element, "loadedmetadata") is "target"
-PASS testElementAttribute(element, "loadstart") is "target"
-PASS testElementAttribute(element, "mousedown") is "target"
-PASS testElementAttribute(element, "mouseenter") is "target"
-PASS testElementAttribute(element, "mouseleave") is "target"
-PASS testElementAttribute(element, "mousemove") is "target"
-PASS testElementAttribute(element, "mouseout") is "target"
-PASS testElementAttribute(element, "mouseover") is "target"
-PASS testElementAttribute(element, "mouseup") is "target"
-PASS testElementAttribute(element, "mousewheel") is "target"
-PASS testElementAttribute(element, "paste") is "target"
-PASS testElementAttribute(element, "pause") is "target"
-PASS testElementAttribute(element, "play") is "target"
-PASS testElementAttribute(element, "playing") is "target"
-PASS testElementAttribute(element, "progress") is "target"
-PASS testElementAttribute(element, "ratechange") is "target"
-PASS testElementAttribute(element, "reset") is "target"
-FAIL testElementAttribute(element, "resize") should be target. Was target, window.
-PASS testElementAttribute(element, "scroll") is "target"
-PASS testElementAttribute(element, "search") is "target"
-PASS testElementAttribute(element, "seeked") is "target"
-PASS testElementAttribute(element, "seeking") is "target"
-PASS testElementAttribute(element, "select") is "target"
-PASS testElementAttribute(element, "selectstart") is "target"
-PASS testElementAttribute(element, "stalled") is "target"
-PASS testElementAttribute(element, "submit") is "target"
-PASS testElementAttribute(element, "suspend") is "target"
-PASS testElementAttribute(element, "timeupdate") is "target"
-PASS testElementAttribute(element, "transitionend") is "target"
-PASS testElementAttribute(element, "volumechange") is "target"
-PASS testElementAttribute(element, "waiting") is "target"
-PASS testElementAttribute(element, "webkitanimationend") is "target"
-PASS testElementAttribute(element, "webkitanimationiteration") is "target"
-PASS testElementAttribute(element, "webkitanimationstart") is "target"
-PASS testElementAttribute(element, "webkittransitionend") is "target"
-PASS testElementAttribute(element, "wheel") is "target"
-
-Event names we expect not to be able to set on an element (tested on the <html> element)
-
-PASS testElementAttribute(element, "beforeunload") is "none"
-PASS testElementAttribute(element, "hashchange") is "none"
-PASS testElementAttribute(element, "message") is "none"
-PASS testElementAttribute(element, "noneventname") is "none"
-PASS testElementAttribute(element, "offline") is "none"
-PASS testElementAttribute(element, "online") is "none"
-PASS testElementAttribute(element, "pagehide") is "none"
-PASS testElementAttribute(element, "pageshow") is "none"
-PASS testElementAttribute(element, "popstate") is "none"
-PASS testElementAttribute(element, "readystatechange") is "none"
-PASS testElementAttribute(element, "selectionchange") is "none"
-PASS testElementAttribute(element, "storage") is "none"
-PASS testElementAttribute(element, "unload") is "none"
-
-Event names we expect to be able to set on an element (tested on the <input> element)
-
-PASS testElementAttribute(inputElement, "abort") is "target"
-PASS testElementAttribute(inputElement, "animationend") is "target"
-PASS testElementAttribute(inputElement, "animationiteration") is "target"
-PASS testElementAttribute(inputElement, "animationstart") is "target"
-PASS testElementAttribute(inputElement, "beforecopy") is "target"
-PASS testElementAttribute(inputElement, "beforecut") is "target"
-PASS testElementAttribute(inputElement, "beforeload") is "target"
-PASS testElementAttribute(inputElement, "beforepaste") is "target"
-PASS testElementAttribute(inputElement, "blur") is "target"
-PASS testElementAttribute(inputElement, "canplay") is "target"
-PASS testElementAttribute(inputElement, "canplaythrough") is "target"
-PASS testElementAttribute(inputElement, "change") is "target"
-PASS testElementAttribute(inputElement, "click") is "target"
-PASS testElementAttribute(inputElement, "contextmenu") is "target"
-PASS testElementAttribute(inputElement, "copy") is "target"
-PASS testElementAttribute(inputElement, "cut") is "target"
-PASS testElementAttribute(inputElement, "dblclick") is "target"
-PASS testElementAttribute(inputElement, "drag") is "target"
-PASS testElementAttribute(inputElement, "dragend") is "target"
-PASS testElementAttribute(inputElement, "dragenter") is "target"
-PASS testElementAttribute(inputElement, "dragleave") is "target"
-PASS testElementAttribute(inputElement, "dragover") is "target"
-PASS testElementAttribute(inputElement, "dragstart") is "target"
-PASS testElementAttribute(inputElement, "drop") is "target"
-PASS testElementAttribute(inputElement, "durationchange") is "target"
-PASS testElementAttribute(inputElement, "emptied") is "target"
-PASS testElementAttribute(inputElement, "ended") is "target"
-PASS testElementAttribute(inputElement, "error") is "target"
-PASS testElementAttribute(inputElement, "focus") is "target"
-PASS testElementAttribute(inputElement, "focusin") is "target"
-PASS testElementAttribute(inputElement, "focusout") is "target"
-PASS testElementAttribute(inputElement, "input") is "target"
-PASS testElementAttribute(inputElement, "invalid") is "target"
-PASS testElementAttribute(inputElement, "keydown") is "target"
-PASS testElementAttribute(inputElement, "keypress") is "target"
-PASS testElementAttribute(inputElement, "keyup") is "target"
-PASS testElementAttribute(inputElement, "load") is "target"
-PASS testElementAttribute(inputElement, "loadeddata") is "target"
-PASS testElementAttribute(inputElement, "loadedmetadata") is "target"
-PASS testElementAttribute(inputElement, "loadstart") is "target"
-PASS testElementAttribute(inputElement, "mousedown") is "target"
-PASS testElementAttribute(inputElement, "mouseenter") is "target"
-PASS testElementAttribute(inputElement, "mouseleave") is "target"
-PASS testElementAttribute(inputElement, "mousemove") is "target"
-PASS testElementAttribute(inputElement, "mouseout") is "target"
-PASS testElementAttribute(inputElement, "mouseover") is "target"
-PASS testElementAttribute(inputElement, "mouseup") is "target"
-PASS testElementAttribute(inputElement, "mousewheel") is "target"
-PASS testElementAttribute(inputElement, "paste") is "target"
-PASS testElementAttribute(inputElement, "pause") is "target"
-PASS testElementAttribute(inputElement, "play") is "target"
-PASS testElementAttribute(inputElement, "playing") is "target"
-PASS testElementAttribute(inputElement, "progress") is "target"
-PASS testElementAttribute(inputElement, "ratechange") is "target"
-PASS testElementAttribute(inputElement, "reset") is "target"
-FAIL testElementAttribute(inputElement, "resize") should be target. Was target, window.
-PASS testElementAttribute(inputElement, "scroll") is "target"
-PASS testElementAttribute(inputElement, "search") is "target"
-PASS testElementAttribute(inputElement, "seeked") is "target"
-PASS testElementAttribute(inputElement, "seeking") is "target"
-PASS testElementAttribute(inputElement, "select") is "target"
-PASS testElementAttribute(inputElement, "selectstart") is "target"
-PASS testElementAttribute(inputElement, "stalled") is "target"
-PASS testElementAttribute(inputElement, "submit") is "target"
-PASS testElementAttribute(inputElement, "suspend") is "target"
-PASS testElementAttribute(inputElement, "timeupdate") is "target"
-PASS testElementAttribute(inputElement, "transitionend") is "target"
-PASS testElementAttribute(inputElement, "volumechange") is "target"
-PASS testElementAttribute(inputElement, "waiting") is "target"
-PASS testElementAttribute(inputElement, "webkitanimationend") is "target"
-PASS testElementAttribute(inputElement, "webkitanimationiteration") is "target"
-PASS testElementAttribute(inputElement, "webkitanimationstart") is "target"
-PASS testElementAttribute(inputElement, "webkittransitionend") is "target"
-PASS testElementAttribute(inputElement, "wheel") is "target"
-
-Event names we expect not to be able to set on an element (tested on the <input> element)
-
-PASS testElementAttribute(inputElement, "beforeunload") is "none"
-PASS testElementAttribute(inputElement, "hashchange") is "none"
-PASS testElementAttribute(inputElement, "message") is "none"
-PASS testElementAttribute(inputElement, "noneventname") is "none"
-PASS testElementAttribute(inputElement, "offline") is "none"
-PASS testElementAttribute(inputElement, "online") is "none"
-PASS testElementAttribute(inputElement, "pagehide") is "none"
-PASS testElementAttribute(inputElement, "pageshow") is "none"
-PASS testElementAttribute(inputElement, "popstate") is "none"
-PASS testElementAttribute(inputElement, "readystatechange") is "none"
-PASS testElementAttribute(inputElement, "selectionchange") is "none"
-PASS testElementAttribute(inputElement, "storage") is "none"
-PASS testElementAttribute(inputElement, "unload") is "none"
-
-Event names we expect to be able to set on an element (tested on the <audio> element)
-
-PASS testElementAttribute(audioElement, "abort") is "target"
-PASS testElementAttribute(audioElement, "animationend") is "target"
-PASS testElementAttribute(audioElement, "animationiteration") is "target"
-PASS testElementAttribute(audioElement, "animationstart") is "target"
-PASS testElementAttribute(audioElement, "beforecopy") is "target"
-PASS testElementAttribute(audioElement, "beforecut") is "target"
-PASS testElementAttribute(audioElement, "beforeload") is "target"
-PASS testElementAttribute(audioElement, "beforepaste") is "target"
-PASS testElementAttribute(audioElement, "blur") is "target"
-PASS testElementAttribute(audioElement, "canplay") is "target"
-PASS testElementAttribute(audioElement, "canplaythrough") is "target"
-PASS testElementAttribute(audioElement, "change") is "target"
-PASS testElementAttribute(audioElement, "click") is "target"
-PASS testElementAttribute(audioElement, "contextmenu") is "target"
-PASS testElementAttribute(audioElement, "copy") is "target"
-PASS testElementAttribute(audioElement, "cut") is "target"
-PASS testElementAttribute(audioElement, "dblclick") is "target"
-PASS testElementAttribute(audioElement, "drag") is "target"
-PASS testElementAttribute(audioElement, "dragend") is "target"
-PASS testElementAttribute(audioElement, "dragenter") is "target"
-PASS testElementAttribute(audioElement, "dragleave") is "target"
-PASS testElementAttribute(audioElement, "dragover") is "target"
-PASS testElementAttribute(audioElement, "dragstart") is "target"
-PASS testElementAttribute(audioElement, "drop") is "target"
-PASS testElementAttribute(audioElement, "durationchange") is "target"
-PASS testElementAttribute(audioElement, "emptied") is "target"
-PASS testElementAttribute(audioElement, "ended") is "target"
-PASS testElementAttribute(audioElement, "error") is "target"
-PASS testElementAttribute(audioElement, "focus") is "target"
-PASS testElementAttribute(audioElement, "focusin") is "target"
-PASS testElementAttribute(audioElement, "focusout") is "target"
-PASS testElementAttribute(audioElement, "input") is "target"
-PASS testElementAttribute(audioElement, "invalid") is "target"
-PASS testElementAttribute(audioElement, "keydown") is "target"
-PASS testElementAttribute(audioElement, "keypress") is "target"
-PASS testElementAttribute(audioElement, "keyup") is "target"
-PASS testElementAttribute(audioElement, "load") is "target"
-PASS testElementAttribute(audioElement, "loadeddata") is "target"
-PASS testElementAttribute(audioElement, "loadedmetadata") is "target"
-PASS testElementAttribute(audioElement, "loadstart") is "target"
-PASS testElementAttribute(audioElement, "mousedown") is "target"
-PASS testElementAttribute(audioElement, "mouseenter") is "target"
-PASS testElementAttribute(audioElement, "mouseleave") is "target"
-PASS testElementAttribute(audioElement, "mousemove") is "target"
-PASS testElementAttribute(audioElement, "mouseout") is "target"
-PASS testElementAttribute(audioElement, "mouseover") is "target"
-PASS testElementAttribute(audioElement, "mouseup") is "target"
-PASS testElementAttribute(audioElement, "mousewheel") is "target"
-PASS testElementAttribute(audioElement, "paste") is "target"
-PASS testElementAttribute(audioElement, "pause") is "target"
-PASS testElementAttribute(audioElement, "play") is "target"
-PASS testElementAttribute(audioElement, "playing") is "target"
-PASS testElementAttribute(audioElement, "progress") is "target"
-PASS testElementAttribute(audioElement, "ratechange") is "target"
-PASS testElementAttribute(audioElement, "reset") is "target"
-FAIL testElementAttribute(audioElement, "resize") should be target. Was target, window.
-PASS testElementAttribute(audioElement, "scroll") is "target"
-PASS testElementAttribute(audioElement, "search") is "target"
-PASS testElementAttribute(audioElement, "seeked") is "target"
-PASS testElementAttribute(audioElement, "seeking") is "target"
-PASS testElementAttribute(audioElement, "select") is "target"
-PASS testElementAttribute(audioElement, "selectstart") is "target"
-PASS testElementAttribute(audioElement, "stalled") is "target"
-PASS testElementAttribute(audioElement, "submit") is "target"
-PASS testElementAttribute(audioElement, "suspend") is "target"
-PASS testElementAttribute(audioElement, "timeupdate") is "target"
-PASS testElementAttribute(audioElement, "transitionend") is "target"
-PASS testElementAttribute(audioElement, "volumechange") is "target"
-PASS testElementAttribute(audioElement, "waiting") is "target"
-PASS testElementAttribute(audioElement, "webkitanimationend") is "target"
-PASS testElementAttribute(audioElement, "webkitanimationiteration") is "target"
-PASS testElementAttribute(audioElement, "webkitanimationstart") is "target"
-PASS testElementAttribute(audioElement, "webkittransitionend") is "target"
-PASS testElementAttribute(audioElement, "wheel") is "target"
-
-Event names we expect not to be able to set on an element (tested on the <audio> element)
-
-PASS testElementAttribute(audioElement, "beforeunload") is "none"
-PASS testElementAttribute(audioElement, "hashchange") is "none"
-PASS testElementAttribute(audioElement, "message") is "none"
-PASS testElementAttribute(audioElement, "noneventname") is "none"
-PASS testElementAttribute(audioElement, "offline") is "none"
-PASS testElementAttribute(audioElement, "online") is "none"
-PASS testElementAttribute(audioElement, "pagehide") is "none"
-PASS testElementAttribute(audioElement, "pageshow") is "none"
-PASS testElementAttribute(audioElement, "popstate") is "none"
-PASS testElementAttribute(audioElement, "readystatechange") is "none"
-PASS testElementAttribute(audioElement, "selectionchange") is "none"
-PASS testElementAttribute(audioElement, "storage") is "none"
-PASS testElementAttribute(audioElement, "unload") is "none"
-
-Event names we expect to be able to set on an element (tested on the <video> element)
-
-PASS testElementAttribute(videoElement, "abort") is "target"
-PASS testElementAttribute(videoElement, "animationend") is "target"
-PASS testElementAttribute(videoElement, "animationiteration") is "target"
-PASS testElementAttribute(videoElement, "animationstart") is "target"
-PASS testElementAttribute(videoElement, "beforecopy") is "target"
-PASS testElementAttribute(videoElement, "beforecut") is "target"
-PASS testElementAttribute(videoElement, "beforeload") is "target"
-PASS testElementAttribute(videoElement, "beforepaste") is "target"
-PASS testElementAttribute(videoElement, "blur") is "target"
-PASS testElementAttribute(videoElement, "canplay") is "target"
-PASS testElementAttribute(videoElement, "canplaythrough") is "target"
-PASS testElementAttribute(videoElement, "change") is "target"
-PASS testElementAttribute(videoElement, "click") is "target"
-PASS testElementAttribute(videoElement, "contextmenu") is "target"
-PASS testElementAttribute(videoElement, "copy") is "target"
-PASS testElementAttribute(videoElement, "cut") is "target"
-PASS testElementAttribute(videoElement, "dblclick") is "target"
-PASS testElementAttribute(videoElement, "drag") is "target"
-PASS testElementAttribute(videoElement, "dragend") is "target"
-PASS testElementAttribute(videoElement, "dragenter") is "target"
-PASS testElementAttribute(videoElement, "dragleave") is "target"
-PASS testElementAttribute(videoElement, "dragover") is "target"
-PASS testElementAttribute(videoElement, "dragstart") is "target"
-PASS testElementAttribute(videoElement, "drop") is "target"
-PASS testElementAttribute(videoElement, "durationchange") is "target"
-PASS testElementAttribute(videoElement, "emptied") is "target"
-PASS testElementAttribute(videoElement, "ended") is "target"
-PASS testElementAttribute(videoElement, "error") is "target"
-PASS testElementAttribute(videoElement, "focus") is "target"
-PASS testElementAttribute(videoElement, "focusin") is "target"
-PASS testElementAttribute(videoElement, "focusout") is "target"
-PASS testElementAttribute(videoElement, "input") is "target"
-PASS testElementAttribute(videoElement, "invalid") is "target"
-PASS testElementAttribute(videoElement, "keydown") is "target"
-PASS testElementAttribute(videoElement, "keypress") is "target"
-PASS testElementAttribute(videoElement, "keyup") is "target"
-PASS testElementAttribute(videoElement, "load") is "target"
-PASS testElementAttribute(videoElement, "loadeddata") is "target"
-PASS testElementAttribute(videoElement, "loadedmetadata") is "target"
-PASS testElementAttribute(videoElement, "loadstart") is "target"
-PASS testElementAttribute(videoElement, "mousedown") is "target"
-PASS testElementAttribute(videoElement, "mouseenter") is "target"
-PASS testElementAttribute(videoElement, "mouseleave") is "target"
-PASS testElementAttribute(videoElement, "mousemove") is "target"
-PASS testElementAttribute(videoElement, "mouseout") is "target"
-PASS testElementAttribute(videoElement, "mouseover") is "target"
-PASS testElementAttribute(videoElement, "mouseup") is "target"
-PASS testElementAttribute(videoElement, "mousewheel") is "target"
-PASS testElementAttribute(videoElement, "paste") is "target"
-PASS testElementAttribute(videoElement, "pause") is "target"
-PASS testElementAttribute(videoElement, "play") is "target"
-PASS testElementAttribute(videoElement, "playing") is "target"
-PASS testElementAttribute(videoElement, "progress") is "target"
-PASS testElementAttribute(videoElement, "ratechange") is "target"
-PASS testElementAttribute(videoElement, "reset") is "target"
-FAIL testElementAttribute(videoElement, "resize") should be target. Was target, window.
-PASS testElementAttribute(videoElement, "scroll") is "target"
-PASS testElementAttribute(videoElement, "search") is "target"
-PASS testElementAttribute(videoElement, "seeked") is "target"
-PASS testElementAttribute(videoElement, "seeking") is "target"
-PASS testElementAttribute(videoElement, "select") is "target"
-PASS testElementAttribute(videoElement, "selectstart") is "target"
-PASS testElementAttribute(videoElement, "stalled") is "target"
-PASS testElementAttribute(videoElement, "submit") is "target"
-PASS testElementAttribute(videoElement, "suspend") is "target"
-PASS testElementAttribute(videoElement, "timeupdate") is "target"
-PASS testElementAttribute(videoElement, "transitionend") is "target"
-PASS testElementAttribute(videoElement, "volumechange") is "target"
-PASS testElementAttribute(videoElement, "waiting") is "target"
-PASS testElementAttribute(videoElement, "webkitanimationend") is "target"
-PASS testElementAttribute(videoElement, "webkitanimationiteration") is "target"
-PASS testElementAttribute(videoElement, "webkitanimationstart") is "target"
-PASS testElementAttribute(videoElement, "webkittransitionend") is "target"
-PASS testElementAttribute(videoElement, "wheel") is "target"
-
-Event names we expect not to be able to set on an element (tested on the <video> element)
-
-PASS testElementAttribute(videoElement, "beforeunload") is "none"
-PASS testElementAttribute(videoElement, "hashchange") is "none"
-PASS testElementAttribute(videoElement, "message") is "none"
-PASS testElementAttribute(videoElement, "noneventname") is "none"
-PASS testElementAttribute(videoElement, "offline") is "none"
-PASS testElementAttribute(videoElement, "online") is "none"
-PASS testElementAttribute(videoElement, "pagehide") is "none"
-PASS testElementAttribute(videoElement, "pageshow") is "none"
-PASS testElementAttribute(videoElement, "popstate") is "none"
-PASS testElementAttribute(videoElement, "readystatechange") is "none"
-PASS testElementAttribute(videoElement, "selectionchange") is "none"
-PASS testElementAttribute(videoElement, "storage") is "none"
-PASS testElementAttribute(videoElement, "unload") is "none"
-
-Event names we expect to be forwarded from <body> element to window object)
-
-PASS testElementAttribute(bodyElement, "beforeunload") is "window"
-PASS testElementAttribute(bodyElement, "blur") is "window"
-PASS testElementAttribute(bodyElement, "error") is "window"
-PASS testElementAttribute(bodyElement, "focus") is "window"
-PASS testElementAttribute(bodyElement, "focusin") is "window"
-PASS testElementAttribute(bodyElement, "focusout") is "window"
-PASS testElementAttribute(bodyElement, "hashchange") is "window"
-PASS testElementAttribute(bodyElement, "load") is "window"
-PASS testElementAttribute(bodyElement, "message") is "window"
-PASS testElementAttribute(bodyElement, "offline") is "window"
-PASS testElementAttribute(bodyElement, "online") is "window"
-PASS testElementAttribute(bodyElement, "pagehide") is "window"
-PASS testElementAttribute(bodyElement, "pageshow") is "window"
-PASS testElementAttribute(bodyElement, "popstate") is "window"
-PASS testElementAttribute(bodyElement, "resize") is "window"
-PASS testElementAttribute(bodyElement, "storage") is "window"
-PASS testElementAttribute(bodyElement, "unload") is "window"
-
-Event names we expect to be forwarded from <body> element to document)
-
-PASS testElementAttribute(bodyElement, "selectionchange") is "document"
-
-Non-forwarded event names on <body> element
-
-PASS testElementAttribute(bodyElement, "abort") is "target"
-PASS testElementAttribute(bodyElement, "animationend") is "target"
-PASS testElementAttribute(bodyElement, "animationiteration") is "target"
-PASS testElementAttribute(bodyElement, "animationstart") is "target"
-PASS testElementAttribute(bodyElement, "beforecopy") is "target"
-PASS testElementAttribute(bodyElement, "beforecut") is "target"
-PASS testElementAttribute(bodyElement, "beforeload") is "target"
-PASS testElementAttribute(bodyElement, "beforepaste") is "target"
-PASS testElementAttribute(bodyElement, "canplay") is "target"
-PASS testElementAttribute(bodyElement, "canplaythrough") is "target"
-PASS testElementAttribute(bodyElement, "change") is "target"
-PASS testElementAttribute(bodyElement, "click") is "target"
-PASS testElementAttribute(bodyElement, "contextmenu") is "target"
-PASS testElementAttribute(bodyElement, "copy") is "target"
-PASS testElementAttribute(bodyElement, "cut") is "target"
-PASS testElementAttribute(bodyElement, "dblclick") is "target"
-PASS testElementAttribute(bodyElement, "drag") is "target"
-PASS testElementAttribute(bodyElement, "dragend") is "target"
-PASS testElementAttribute(bodyElement, "dragenter") is "target"
-PASS testElementAttribute(bodyElement, "dragleave") is "target"
-PASS testElementAttribute(bodyElement, "dragover") is "target"
-PASS testElementAttribute(bodyElement, "dragstart") is "target"
-PASS testElementAttribute(bodyElement, "drop") is "target"
-PASS testElementAttribute(bodyElement, "durationchange") is "target"
-PASS testElementAttribute(bodyElement, "emptied") is "target"
-PASS testElementAttribute(bodyElement, "ended") is "target"
-PASS testElementAttribute(bodyElement, "input") is "target"
-PASS testElementAttribute(bodyElement, "invalid") is "target"
-PASS testElementAttribute(bodyElement, "keydown") is "target"
-PASS testElementAttribute(bodyElement, "keypress") is "target"
-PASS testElementAttribute(bodyElement, "keyup") is "target"
-PASS testElementAttribute(bodyElement, "loadeddata") is "target"
-PASS testElementAttribute(bodyElement, "loadedmetadata") is "target"
-PASS testElementAttribute(bodyElement, "loadstart") is "target"
-PASS testElementAttribute(bodyElement, "mousedown") is "target"
-PASS testElementAttribute(bodyElement, "mouseenter") is "target"
-PASS testElementAttribute(bodyElement, "mouseleave") is "target"
-PASS testElementAttribute(bodyElement, "mousemove") is "target"
-PASS testElementAttribute(bodyElement, "mouseout") is "target"
-PASS testElementAttribute(bodyElement, "mouseover") is "target"
-PASS testElementAttribute(bodyElement, "mouseup") is "target"
-PASS testElementAttribute(bodyElement, "mousewheel") is "target"
-PASS testElementAttribute(bodyElement, "paste") is "target"
-PASS testElementAttribute(bodyElement, "pause") is "target"
-PASS testElementAttribute(bodyElement, "play") is "target"
-PASS testElementAttribute(bodyElement, "playing") is "target"
-PASS testElementAttribute(bodyElement, "progress") is "target"
-PASS testElementAttribute(bodyElement, "ratechange") is "target"
-PASS testElementAttribute(bodyElement, "reset") is "target"
-FAIL testElementAttribute(bodyElement, "scroll") should be target. Was window.
-PASS testElementAttribute(bodyElement, "search") is "target"
-PASS testElementAttribute(bodyElement, "seeked") is "target"
-PASS testElementAttribute(bodyElement, "seeking") is "target"
-PASS testElementAttribute(bodyElement, "select") is "target"
-PASS testElementAttribute(bodyElement, "selectstart") is "target"
-PASS testElementAttribute(bodyElement, "stalled") is "target"
-PASS testElementAttribute(bodyElement, "submit") is "target"
-PASS testElementAttribute(bodyElement, "suspend") is "target"
-PASS testElementAttribute(bodyElement, "timeupdate") is "target"
-PASS testElementAttribute(bodyElement, "transitionend") is "target"
-PASS testElementAttribute(bodyElement, "volumechange") is "target"
-PASS testElementAttribute(bodyElement, "waiting") is "target"
-PASS testElementAttribute(bodyElement, "webkitanimationend") is "target"
-PASS testElementAttribute(bodyElement, "webkitanimationiteration") is "target"
-PASS testElementAttribute(bodyElement, "webkitanimationstart") is "target"
-PASS testElementAttribute(bodyElement, "webkittransitionend") is "target"
-PASS testElementAttribute(bodyElement, "wheel") is "target"
-
-Event names we expect to not be able to set on <body> element
-
-PASS testElementAttribute(bodyElement, "noneventname") is "none"
-PASS testElementAttribute(bodyElement, "readystatechange") is "none"
-
-Event names we expect to be forwarded from <frameset> element to window object)
-
-PASS testElementAttribute(framesetElement, "beforeunload") is "window"
-PASS testElementAttribute(framesetElement, "blur") is "window"
-PASS testElementAttribute(framesetElement, "error") is "window"
-PASS testElementAttribute(framesetElement, "focus") is "window"
-PASS testElementAttribute(framesetElement, "focusin") is "window"
-PASS testElementAttribute(framesetElement, "focusout") is "window"
-PASS testElementAttribute(framesetElement, "hashchange") is "window"
-PASS testElementAttribute(framesetElement, "load") is "window"
-PASS testElementAttribute(framesetElement, "message") is "window"
-PASS testElementAttribute(framesetElement, "offline") is "window"
-PASS testElementAttribute(framesetElement, "online") is "window"
-PASS testElementAttribute(framesetElement, "pagehide") is "window"
-PASS testElementAttribute(framesetElement, "pageshow") is "window"
-PASS testElementAttribute(framesetElement, "popstate") is "window"
-PASS testElementAttribute(framesetElement, "resize") is "window"
-PASS testElementAttribute(framesetElement, "storage") is "window"
-PASS testElementAttribute(framesetElement, "unload") is "window"
-
-Event names we expect to be forwarded from <frameset> element to document)
-
-FAIL testElementAttribute(framesetElement, "selectionchange") should be document. Was none.
-
-Non-forwarded event names on <frameset> element
-
-PASS testElementAttribute(framesetElement, "abort") is "target"
-PASS testElementAttribute(framesetElement, "animationend") is "target"
-PASS testElementAttribute(framesetElement, "animationiteration") is "target"
-PASS testElementAttribute(framesetElement, "animationstart") is "target"
-PASS testElementAttribute(framesetElement, "beforecopy") is "target"
-PASS testElementAttribute(framesetElement, "beforecut") is "target"
-PASS testElementAttribute(framesetElement, "beforeload") is "target"
-PASS testElementAttribute(framesetElement, "beforepaste") is "target"
-PASS testElementAttribute(framesetElement, "canplay") is "target"
-PASS testElementAttribute(framesetElement, "canplaythrough") is "target"
-PASS testElementAttribute(framesetElement, "change") is "target"
-PASS testElementAttribute(framesetElement, "click") is "target"
-PASS testElementAttribute(framesetElement, "contextmenu") is "target"
-PASS testElementAttribute(framesetElement, "copy") is "target"
-PASS testElementAttribute(framesetElement, "cut") is "target"
-PASS testElementAttribute(framesetElement, "dblclick") is "target"
-PASS testElementAttribute(framesetElement, "drag") is "target"
-PASS testElementAttribute(framesetElement, "dragend") is "target"
-PASS testElementAttribute(framesetElement, "dragenter") is "target"
-PASS testElementAttribute(framesetElement, "dragleave") is "target"
-PASS testElementAttribute(framesetElement, "dragover") is "target"
-PASS testElementAttribute(framesetElement, "dragstart") is "target"
-PASS testElementAttribute(framesetElement, "drop") is "target"
-PASS testElementAttribute(framesetElement, "durationchange") is "target"
-PASS testElementAttribute(framesetElement, "emptied") is "target"
-PASS testElementAttribute(framesetElement, "ended") is "target"
-PASS testElementAttribute(framesetElement, "input") is "target"
-PASS testElementAttribute(framesetElement, "invalid") is "target"
-PASS testElementAttribute(framesetElement, "keydown") is "target"
-PASS testElementAttribute(framesetElement, "keypress") is "target"
-PASS testElementAttribute(framesetElement, "keyup") is "target"
-PASS testElementAttribute(framesetElement, "loadeddata") is "target"
-PASS testElementAttribute(framesetElement, "loadedmetadata") is "target"
-PASS testElementAttribute(framesetElement, "loadstart") is "target"
-PASS testElementAttribute(framesetElement, "mousedown") is "target"
-PASS testElementAttribute(framesetElement, "mouseenter") is "target"
-PASS testElementAttribute(framesetElement, "mouseleave") is "target"
-PASS testElementAttribute(framesetElement, "mousemove") is "target"
-PASS testElementAttribute(framesetElement, "mouseout") is "target"
-PASS testElementAttribute(framesetElement, "mouseover") is "target"
-PASS testElementAttribute(framesetElement, "mouseup") is "target"
-PASS testElementAttribute(framesetElement, "mousewheel") is "target"
-PASS testElementAttribute(framesetElement, "paste") is "target"
-PASS testElementAttribute(framesetElement, "pause") is "target"
-PASS testElementAttribute(framesetElement, "play") is "target"
-PASS testElementAttribute(framesetElement, "playing") is "target"
-PASS testElementAttribute(framesetElement, "progress") is "target"
-PASS testElementAttribute(framesetElement, "ratechange") is "target"
-PASS testElementAttribute(framesetElement, "reset") is "target"
-FAIL testElementAttribute(framesetElement, "scroll") should be target. Was window.
-PASS testElementAttribute(framesetElement, "search") is "target"
-PASS testElementAttribute(framesetElement, "seeked") is "target"
-PASS testElementAttribute(framesetElement, "seeking") is "target"
-PASS testElementAttribute(framesetElement, "select") is "target"
-PASS testElementAttribute(framesetElement, "selectstart") is "target"
-PASS testElementAttribute(framesetElement, "stalled") is "target"
-PASS testElementAttribute(framesetElement, "submit") is "target"
-PASS testElementAttribute(framesetElement, "suspend") is "target"
-PASS testElementAttribute(framesetElement, "timeupdate") is "target"
-PASS testElementAttribute(framesetElement, "transitionend") is "target"
-PASS testElementAttribute(framesetElement, "volumechange") is "target"
-PASS testElementAttribute(framesetElement, "waiting") is "target"
-PASS testElementAttribute(framesetElement, "webkitanimationend") is "target"
-PASS testElementAttribute(framesetElement, "webkitanimationiteration") is "target"
-PASS testElementAttribute(framesetElement, "webkitanimationstart") is "target"
-PASS testElementAttribute(framesetElement, "webkittransitionend") is "target"
-PASS testElementAttribute(framesetElement, "wheel") is "target"
-
-Event names we expect to not be able to set on <frameset> element
-
-PASS testElementAttribute(framesetElement, "noneventname") is "none"
-PASS testElementAttribute(framesetElement, "readystatechange") is "none"
-
-Event names we expect to be able to set on an element (tested on the SVG <rect> element)
-
-PASS testElementAttribute(rectElement, "abort") is "target"
-PASS testElementAttribute(rectElement, "animationend") is "target"
-PASS testElementAttribute(rectElement, "animationiteration") is "target"
-PASS testElementAttribute(rectElement, "animationstart") is "target"
-PASS testElementAttribute(rectElement, "beforecopy") is "target"
-PASS testElementAttribute(rectElement, "beforecut") is "target"
-PASS testElementAttribute(rectElement, "beforeload") is "target"
-PASS testElementAttribute(rectElement, "beforepaste") is "target"
-PASS testElementAttribute(rectElement, "blur") is "target"
-PASS testElementAttribute(rectElement, "canplay") is "target"
-PASS testElementAttribute(rectElement, "canplaythrough") is "target"
-PASS testElementAttribute(rectElement, "change") is "target"
-PASS testElementAttribute(rectElement, "click") is "target"
-PASS testElementAttribute(rectElement, "contextmenu") is "target"
-PASS testElementAttribute(rectElement, "copy") is "target"
-PASS testElementAttribute(rectElement, "cut") is "target"
-PASS testElementAttribute(rectElement, "dblclick") is "target"
-PASS testElementAttribute(rectElement, "drag") is "target"
-PASS testElementAttribute(rectElement, "dragend") is "target"
-PASS testElementAttribute(rectElement, "dragenter") is "target"
-PASS testElementAttribute(rectElement, "dragleave") is "target"
-PASS testElementAttribute(rectElement, "dragover") is "target"
-PASS testElementAttribute(rectElement, "dragstart") is "target"
-PASS testElementAttribute(rectElement, "drop") is "target"
-PASS testElementAttribute(rectElement, "durationchange") is "target"
-PASS testElementAttribute(rectElement, "emptied") is "target"
-PASS testElementAttribute(rectElement, "ended") is "target"
-PASS testElementAttribute(rectElement, "error") is "target"
-PASS testElementAttribute(rectElement, "focus") is "target"
-PASS testElementAttribute(rectElement, "focusin") is "target"
-PASS testElementAttribute(rectElement, "focusout") is "target"
-PASS testElementAttribute(rectElement, "input") is "target"
-PASS testElementAttribute(rectElement, "invalid") is "target"
-PASS testElementAttribute(rectElement, "keydown") is "target"
-PASS testElementAttribute(rectElement, "keypress") is "target"
-PASS testElementAttribute(rectElement, "keyup") is "target"
-PASS testElementAttribute(rectElement, "load") is "target"
-PASS testElementAttribute(rectElement, "loadeddata") is "target"
-PASS testElementAttribute(rectElement, "loadedmetadata") is "target"
-PASS testElementAttribute(rectElement, "loadstart") is "target"
-PASS testElementAttribute(rectElement, "mousedown") is "target"
-PASS testElementAttribute(rectElement, "mouseenter") is "target"
-PASS testElementAttribute(rectElement, "mouseleave") is "target"
-PASS testElementAttribute(rectElement, "mousemove") is "target"
-PASS testElementAttribute(rectElement, "mouseout") is "target"
-PASS testElementAttribute(rectElement, "mouseover") is "target"
-PASS testElementAttribute(rectElement, "mouseup") is "target"
-PASS testElementAttribute(rectElement, "mousewheel") is "target"
-PASS testElementAttribute(rectElement, "paste") is "target"
-PASS testElementAttribute(rectElement, "pause") is "target"
-PASS testElementAttribute(rectElement, "play") is "target"
-PASS testElementAttribute(rectElement, "playing") is "target"
-PASS testElementAttribute(rectElement, "progress") is "target"
-PASS testElementAttribute(rectElement, "ratechange") is "target"
-PASS testElementAttribute(rectElement, "reset") is "target"
-FAIL testElementAttribute(rectElement, "resize") should be target. Was target, window.
-PASS testElementAttribute(rectElement, "scroll") is "target"
-PASS testElementAttribute(rectElement, "search") is "target"
-PASS testElementAttribute(rectElement, "seeked") is "target"
-PASS testElementAttribute(rectElement, "seeking") is "target"
-PASS testElementAttribute(rectElement, "select") is "target"
-PASS testElementAttribute(rectElement, "selectstart") is "target"
-PASS testElementAttribute(rectElement, "stalled") is "target"
-PASS testElementAttribute(rectElement, "submit") is "target"
-PASS testElementAttribute(rectElement, "suspend") is "target"
-PASS testElementAttribute(rectElement, "timeupdate") is "target"
-PASS testElementAttribute(rectElement, "transitionend") is "target"
-PASS testElementAttribute(rectElement, "volumechange") is "target"
-PASS testElementAttribute(rectElement, "waiting") is "target"
-PASS testElementAttribute(rectElement, "webkitanimationend") is "target"
-PASS testElementAttribute(rectElement, "webkitanimationiteration") is "target"
-PASS testElementAttribute(rectElement, "webkitanimationstart") is "target"
-PASS testElementAttribute(rectElement, "webkittransitionend") is "target"
-PASS testElementAttribute(rectElement, "wheel") is "target"
-
-Event names we expect not to be able to set on an element (tested on the SVG <rect> element)
-
-PASS testElementAttribute(rectElement, "beforeunload") is "none"
-PASS testElementAttribute(rectElement, "hashchange") is "none"
-PASS testElementAttribute(rectElement, "message") is "none"
-PASS testElementAttribute(rectElement, "noneventname") is "none"
-PASS testElementAttribute(rectElement, "offline") is "none"
-PASS testElementAttribute(rectElement, "online") is "none"
-PASS testElementAttribute(rectElement, "pagehide") is "none"
-PASS testElementAttribute(rectElement, "pageshow") is "none"
-PASS testElementAttribute(rectElement, "popstate") is "none"
-PASS testElementAttribute(rectElement, "readystatechange") is "none"
-PASS testElementAttribute(rectElement, "selectionchange") is "none"
-PASS testElementAttribute(rectElement, "storage") is "none"
-PASS testElementAttribute(rectElement, "unload") is "none"
-
-Event names on a non-HTML element
-
-PASS testElementAttribute(nonHTMLElement, "abort") is "none"
-PASS testElementAttribute(nonHTMLElement, "animationend") is "none"
-PASS testElementAttribute(nonHTMLElement, "animationiteration") is "none"
-PASS testElementAttribute(nonHTMLElement, "animationstart") is "none"
-FAIL testElementAttribute(nonHTMLElement, "beforecopy") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "beforecut") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "beforeload") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "beforepaste") should be none. Was script: target; content: none.
-PASS testElementAttribute(nonHTMLElement, "beforeunload") is "none"
-PASS testElementAttribute(nonHTMLElement, "blur") is "none"
-PASS testElementAttribute(nonHTMLElement, "canplay") is "none"
-PASS testElementAttribute(nonHTMLElement, "canplaythrough") is "none"
-PASS testElementAttribute(nonHTMLElement, "change") is "none"
-PASS testElementAttribute(nonHTMLElement, "click") is "none"
-PASS testElementAttribute(nonHTMLElement, "contextmenu") is "none"
-FAIL testElementAttribute(nonHTMLElement, "copy") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "cut") should be none. Was script: target; content: none.
-PASS testElementAttribute(nonHTMLElement, "dblclick") is "none"
-PASS testElementAttribute(nonHTMLElement, "drag") is "none"
-PASS testElementAttribute(nonHTMLElement, "dragend") is "none"
-PASS testElementAttribute(nonHTMLElement, "dragenter") is "none"
-PASS testElementAttribute(nonHTMLElement, "dragleave") is "none"
-PASS testElementAttribute(nonHTMLElement, "dragover") is "none"
-PASS testElementAttribute(nonHTMLElement, "dragstart") is "none"
-PASS testElementAttribute(nonHTMLElement, "drop") is "none"
-PASS testElementAttribute(nonHTMLElement, "durationchange") is "none"
-PASS testElementAttribute(nonHTMLElement, "emptied") is "none"
-PASS testElementAttribute(nonHTMLElement, "ended") is "none"
-PASS testElementAttribute(nonHTMLElement, "error") is "none"
-PASS testElementAttribute(nonHTMLElement, "focus") is "none"
-FAIL testElementAttribute(nonHTMLElement, "focusin") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "focusout") should be none. Was script: target; content: none.
-PASS testElementAttribute(nonHTMLElement, "hashchange") is "none"
-PASS testElementAttribute(nonHTMLElement, "input") is "none"
-PASS testElementAttribute(nonHTMLElement, "invalid") is "none"
-PASS testElementAttribute(nonHTMLElement, "keydown") is "none"
-PASS testElementAttribute(nonHTMLElement, "keypress") is "none"
-PASS testElementAttribute(nonHTMLElement, "keyup") is "none"
-PASS testElementAttribute(nonHTMLElement, "load") is "none"
-PASS testElementAttribute(nonHTMLElement, "loadeddata") is "none"
-PASS testElementAttribute(nonHTMLElement, "loadedmetadata") is "none"
-PASS testElementAttribute(nonHTMLElement, "loadstart") is "none"
-PASS testElementAttribute(nonHTMLElement, "message") is "none"
-PASS testElementAttribute(nonHTMLElement, "mousedown") is "none"
-PASS testElementAttribute(nonHTMLElement, "mouseenter") is "none"
-PASS testElementAttribute(nonHTMLElement, "mouseleave") is "none"
-PASS testElementAttribute(nonHTMLElement, "mousemove") is "none"
-PASS testElementAttribute(nonHTMLElement, "mouseout") is "none"
-PASS testElementAttribute(nonHTMLElement, "mouseover") is "none"
-PASS testElementAttribute(nonHTMLElement, "mouseup") is "none"
-PASS testElementAttribute(nonHTMLElement, "mousewheel") is "none"
-PASS testElementAttribute(nonHTMLElement, "noneventname") is "none"
-PASS testElementAttribute(nonHTMLElement, "offline") is "none"
-PASS testElementAttribute(nonHTMLElement, "online") is "none"
-PASS testElementAttribute(nonHTMLElement, "pagehide") is "none"
-PASS testElementAttribute(nonHTMLElement, "pageshow") is "none"
-FAIL testElementAttribute(nonHTMLElement, "paste") should be none. Was script: target; content: none.
-PASS testElementAttribute(nonHTMLElement, "pause") is "none"
-PASS testElementAttribute(nonHTMLElement, "play") is "none"
-PASS testElementAttribute(nonHTMLElement, "playing") is "none"
-PASS testElementAttribute(nonHTMLElement, "popstate") is "none"
-PASS testElementAttribute(nonHTMLElement, "progress") is "none"
-PASS testElementAttribute(nonHTMLElement, "ratechange") is "none"
-PASS testElementAttribute(nonHTMLElement, "readystatechange") is "none"
-PASS testElementAttribute(nonHTMLElement, "reset") is "none"
-PASS testElementAttribute(nonHTMLElement, "resize") is "none"
-PASS testElementAttribute(nonHTMLElement, "scroll") is "none"
-PASS testElementAttribute(nonHTMLElement, "search") is "none"
-PASS testElementAttribute(nonHTMLElement, "seeked") is "none"
-PASS testElementAttribute(nonHTMLElement, "seeking") is "none"
-PASS testElementAttribute(nonHTMLElement, "select") is "none"
-PASS testElementAttribute(nonHTMLElement, "selectionchange") is "none"
-FAIL testElementAttribute(nonHTMLElement, "selectstart") should be none. Was script: target; content: none.
-PASS testElementAttribute(nonHTMLElement, "stalled") is "none"
-PASS testElementAttribute(nonHTMLElement, "storage") is "none"
-PASS testElementAttribute(nonHTMLElement, "submit") is "none"
-PASS testElementAttribute(nonHTMLElement, "suspend") is "none"
-PASS testElementAttribute(nonHTMLElement, "timeupdate") is "none"
-PASS testElementAttribute(nonHTMLElement, "transitionend") is "none"
-PASS testElementAttribute(nonHTMLElement, "unload") is "none"
-PASS testElementAttribute(nonHTMLElement, "volumechange") is "none"
-PASS testElementAttribute(nonHTMLElement, "waiting") is "none"
-FAIL testElementAttribute(nonHTMLElement, "webkitanimationend") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "webkitanimationiteration") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "webkitanimationstart") should be none. Was script: target; content: none.
-FAIL testElementAttribute(nonHTMLElement, "webkittransitionend") should be none. Was script: target; content: none.
-PASS testElementAttribute(nonHTMLElement, "wheel") is "none"
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
index b9209f6..5d3e527 100644 (file)
@@ -1,3 +1,26 @@
+2019-05-08  Chris Dumez  <cdumez@apple.com>
+
+        [iOS Debug] ASSERTION FAILED: !m_originalNode in WebCore::JSLazyEventListener::checkValidityForEventTarget(WebCore::EventTarget &)
+        https://bugs.webkit.org/show_bug.cgi?id=197696
+        <rdar://problem/50586956>
+
+        Reviewed by Simon Fraser.
+
+        Setting the onorientationchange / onresize event handler on the body should set the event handler on the
+        window object, as per the HTML specification. However, calling body.addEventListener() with 'orientationchange'
+        or 'resize' should not set the event listener on the window object, only the body. Blink and Gecko seem to
+        behave as per specification but WebKit had a quirk for the addEventListener case. The quirk's implementation
+        is slightly wrong (because it is unsafe to take a JSLazyEventListener from a body element and add it to the
+        window, given that the JSLazyEventListener keeps a raw pointer to its element) and was causing crashes such
+        as <rdar://problem/24314027>. As a result, this patch simply drops the WebKit quirk, which will align our
+        behavior with other browsers and fix the crashes altogether.
+
+        Test: fast/events/ios/rotation/orientationchange-event-listener-on.body.html
+
+        * dom/Node.cpp:
+        (WebCore::tryAddEventListener):
+        (WebCore::tryRemoveEventListener):
+
 2019-05-08  Ryan Haddad  <ryanhaddad@apple.com>
 
         Unreviewed, rolling out r245058.
index 4aa02cf..d6f434b 100644 (file)
@@ -2118,13 +2118,6 @@ static inline bool tryAddEventListener(Node* targetNode, const AtomicString& eve
     if (targetNode == &targetNode->document() && eventType == eventNames().scrollEvent)
         targetNode->document().domWindow()->incrementScrollEventListenersCount();
 
-    // FIXME: Would it be sufficient to special-case this code for <body> and <frameset>?
-    //
-    // This code was added to address <rdar://problem/5846492> Onorientationchange event not working for document.body.
-    // Forward this call to addEventListener() to the window since these are window-only events.
-    if (eventType == eventNames().orientationchangeEvent || eventType == eventNames().resizeEvent)
-        targetNode->document().domWindow()->addEventListener(eventType, WTFMove(listener), options);
-
 #if ENABLE(TOUCH_EVENTS)
     if (eventNames().isTouchRelatedEventType(targetNode->document(), eventType))
         targetNode->document().addTouchEventListener(*targetNode);
@@ -2160,12 +2153,6 @@ static inline bool tryRemoveEventListener(Node* targetNode, const AtomicString&
     if (targetNode == &targetNode->document() && eventType == eventNames().scrollEvent)
         targetNode->document().domWindow()->decrementScrollEventListenersCount();
 
-    // FIXME: Would it be sufficient to special-case this code for <body> and <frameset>? See <rdar://problem/15647823>.
-    // This code was added to address <rdar://problem/5846492> Onorientationchange event not working for document.body.
-    // Forward this call to removeEventListener() to the window since these are window-only events.
-    if (eventType == eventNames().orientationchangeEvent || eventType == eventNames().resizeEvent)
-        targetNode->document().domWindow()->removeEventListener(eventType, listener, options);
-
 #if ENABLE(TOUCH_EVENTS)
     if (eventNames().isTouchRelatedEventType(targetNode->document(), eventType))
         targetNode->document().removeTouchEventListener(*targetNode);