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

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

<h3>Log Message</h3>
<pre>Unreviewed, move W3C DOM tests to imported/w3c/web-platform-tests/dom
https://bugs.webkit.org/show_bug.cgi?id=148947

Move W3C DOM tests with other web-platform-tests under:
imported/w3c/web-platform-tests/dom.

LayoutTests/imported/w3c:

* web-platform-tests/dom/*: Added.

LayoutTests:

* TestExpectations:
* http/tests/w3c/dom/collections/w3c-import.log: Removed.
* http/tests/w3c/dom/events/w3c-import.log: Removed.
* http/tests/w3c/dom/lists/w3c-import.log: Removed.
* http/tests/w3c/dom/nodes/Document-URL.sub-expected.txt: Removed.
* http/tests/w3c/dom/nodes/Document-characterSet-normalization-expected.txt: Removed.
* http/tests/w3c/dom/nodes/DocumentType-literal-xhtml-expected.txt: Removed.
* http/tests/w3c/dom/nodes/Element-childElementCount-dynamic-add-xhtml-expected.txt: Removed.
* http/tests/w3c/dom/nodes/Element-childElementCount-nochild-xhtml-expected.txt: Removed.
* http/tests/w3c/dom/nodes/Element-firstElementChild-xhtml-expected.txt: Removed.
* http/tests/w3c/dom/nodes/Element-nextElementSibling-xhtml-expected.txt: Removed.
* http/tests/w3c/dom/nodes/Element-previousElementSibling-xhtml-expected.txt: Removed.
* http/tests/w3c/dom/nodes/Node-isEqualNode-xhtml-expected.txt: Removed.
* http/tests/w3c/dom/nodes/Node-lookupPrefix-xhtml-expected.txt: Removed.
* http/tests/w3c/dom/nodes/ProcessingInstruction-literal-1-xhtml-expected.txt: Removed.
* http/tests/w3c/dom/nodes/ProcessingInstruction-literal-2-xhtml-expected.txt: Removed.
* http/tests/w3c/dom/nodes/getElementsByClassName-10-expected.txt: Removed.
* http/tests/w3c/dom/nodes/getElementsByClassName-11-expected.txt: Removed.
* http/tests/w3c/dom/nodes/getElementsByClassName-31-expected.txt: Removed.
* http/tests/w3c/dom/nodes/w3c-import.log: Removed.
* http/tests/w3c/dom/ranges/w3c-import.log: Removed.
* http/tests/w3c/dom/traversal/w3c-import.log: Removed.
* http/tests/w3c/dom/w3c-import.log: Removed.
* platform/efl/TestExpectations:
* platform/ios-simulator/TestExpectations:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsTestExpectations">trunk/LayoutTests/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cresourceswebplatformtestsmodulesjson">trunk/LayoutTests/imported/w3c/resources/web-platform-tests-modules.json</a></li>
<li><a href="#trunkLayoutTestsplatformeflTestExpectations">trunk/LayoutTests/platform/efl/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorTestExpectations">trunk/LayoutTests/platform/ios-simulator/TestExpectations</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomcollectionsHTMLCollectionemptynameexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-empty-name-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomcollectionsHTMLCollectionemptynamehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-empty-name.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomcollectionsHTMLCollectionsupportedpropertynamesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-supported-property-names-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomcollectionsHTMLCollectionsupportedpropertynameshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomcommonjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/common.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomconstantsjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/constants.js</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventconstantsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constants-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventconstantshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constants.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventconstructorsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constructors-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventconstructorshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constructors.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdefaultPreventedexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-defaultPrevented-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdefaultPreventedhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-defaultPrevented.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchbubblesfalseexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-bubbles-false-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchbubblesfalsehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-bubbles-false.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchhandlerschangedexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-handlers-changed-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchhandlerschangedhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-handlers-changed.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchomittedcaptureexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-omitted-capture-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchomittedcapturehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-omitted-capture.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchredispatchexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchredispatchhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchreenterexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-reenter-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchreenterhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-reenter.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchtargetmovedexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-moved-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchtargetmovedhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-moved.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchtargetremovedexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-removed-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchtargetremovedhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-removed.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventinitEventexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-initEvent-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventinitEventhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-initEvent.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventpropagationexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-propagation-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventpropagationhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-propagation.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventtypeemptyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-empty-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventtypeemptyhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-empty.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventtypeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventtypehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetaddEventListenerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetaddEventListenerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetdispatchEventexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetdispatchEventreturnvalueexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetdispatchEventreturnvaluehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetdispatchEventhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetremoveEventListenerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetremoveEventListenerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsProgressEventexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/ProgressEvent-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsProgressEventhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/ProgressEvent.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomhistoricalexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomhistoricalhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdominterfaceobjectsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interface-objects-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdominterfaceobjectshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interface-objects.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdominterfacesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdominterfaceshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces.html</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomlistsDOMTokenListstringifierexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-stringifier-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomlistsDOMTokenListstringifierhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-stringifier.html</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDataappendDataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-appendData-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDataappendDatahtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-appendData.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatadataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-data-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatadatahtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-data.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatadeleteDataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-deleteData-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatadeleteDatahtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-deleteData.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatainsertDataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-insertData-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatainsertDatahtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-insertData.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDataremoveexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-remove-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDataremovehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-remove.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatareplaceDataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-replaceData-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatareplaceDatahtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-replaceData.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatasubstringDataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-substringData-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatasubstringDatahtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-substringData.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatasurrogatesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-surrogates-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatasurrogateshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-surrogates.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNodeafterexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-after-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNodeafterhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-after.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNodebeforeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-before-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNodebeforehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-before.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNoderemovejs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-remove.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNodereplaceWithexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-replaceWith-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNodereplaceWithhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-replaceWith.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCommentTextconstructorjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Comment-Text-constructor.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCommentconstructorexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Comment-constructor-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCommentconstructorhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Comment-constructor.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationcreateDocumentexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationcreateDocumenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationcreateDocumentTypeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocumentType-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationcreateDocumentTypehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocumentType.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationcreateHTMLDocumentexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationcreateHTMLDocumenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationcreateHTMLDocumentjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationhasFeatureexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-hasFeature-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationhasFeaturehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-hasFeature.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentElementgetElementsByTagNamejs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-Element-getElementsByTagName.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentElementgetElementsByTagNameNSjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-Element-getElementsByTagNameNS.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentURLsubexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-URL.sub-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentURLsubhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-URL.sub.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentadoptNodeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-adoptNode-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentadoptNodehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-adoptNode.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcharacterSetnormalizationexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-characterSet-normalization-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcharacterSetnormalizationhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-characterSet-normalization.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentconstructorexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-constructor-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentconstructorhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-constructor.html</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_bmpexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_bmp-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_bmphtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_bmp.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_cssexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_css-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_csshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_css.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_datauri_01expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_datauri_01html">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_datauri_02expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_datauri_02html">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_gifexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_gif-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_gifhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_gif.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_htmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_html-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_htmlhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_html.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_javascripturiexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_javascripturi-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_javascripturihtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_javascripturi.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_jpgexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_jpg-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_jpghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_jpg.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_mimeheader_01expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_01-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_mimeheader_01html">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_01.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_mimeheader_02expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_02-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_mimeheader_02html">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_02.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_pngexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_png-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_pnghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_png.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_txtexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_txt-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_txthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_txt.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_xmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_xml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecontenttype_xmlhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_xml.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecreateDocumentexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/createDocument-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecreateDocumenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/createDocument.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecreateHTMLDocumentexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/createHTMLDocument-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypecreateHTMLDocumenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/createHTMLDocument.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypexhr_responseType_documentexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/xhr_responseType_document-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypecontentTypexhr_responseType_documenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/contentType/xhr_responseType_document.html</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/resources/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTyperesourcesblobhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/resources/blob.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTyperesourcesblobtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/resources/blob.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTyperesourcesblobxml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/resources/blob.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTyperesourceslibjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/resources/lib.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTyperesourcesstylecss">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/resources/style.css</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTyperesourcestbmp">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/resources/t.bmp</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTyperesourcestgif">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/resources/t.gif</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTyperesourcestjpg">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/resources/t.jpg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTyperesourcestpng">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/resources/t.png</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/support/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcontentTypesupportcontenttype_setterpy">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-contentType/support/contenttype_setter.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateAttributeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createAttribute-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateAttributehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createAttribute.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateCommentcreateTextNodejs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createComment-createTextNode.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateCommentexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createComment-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateCommenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createComment.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateElementexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElement-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateElementnamespaceexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElement-namespace-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateElementnamespacehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElement-namespace.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateElementhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElement.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateElementNSexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateElementNShtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateElementNSjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createElementNS.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateEventexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateEventhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateEventjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateProcessingInstructionexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createProcessingInstruction-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateProcessingInstructionxhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createProcessingInstruction-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateProcessingInstructionxhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createProcessingInstruction-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateProcessingInstructionhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createProcessingInstruction.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateProcessingInstructionjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createProcessingInstruction.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateTextNodeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createTextNode-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateTextNodehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createTextNode.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateTreeWalkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createTreeWalker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentcreateTreeWalkerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createTreeWalker.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentdoctypeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-doctype-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentdoctypehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-doctype.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentgetElementByIdexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-getElementById-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentgetElementByIdhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-getElementById.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentgetElementsByTagNameexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentgetElementsByTagNamexhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentgetElementsByTagNamexhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentgetElementsByTagNamehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-getElementsByTagName.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentgetElementsByTagNameNSexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-getElementsByTagNameNS-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentgetElementsByTagNameNShtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-getElementsByTagNameNS.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentimplementationexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-implementation-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentimplementationhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-implementation.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentimportNodeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-importNode-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentimportNodehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-importNode.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentTypeliteralexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DocumentType-literal-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentTypeliteralhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DocumentType-literal.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentTypeliteralxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DocumentType-literal.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentTyperemoveexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DocumentType-remove-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDocumentTyperemovehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DocumentType-remove.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementnullexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElement-null-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementnullxhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElement-null-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementnullxhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElement-null-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementnullhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElement-null.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountdynamicaddexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountdynamicaddhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountdynamicaddxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountdynamicremoveexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-dynamic-remove-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountdynamicremovexhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-dynamic-remove-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountdynamicremovexhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-dynamic-remove-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountdynamicremovehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-dynamic-remove.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountnochildexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-nochild-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountnochildhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-nochild.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountnochildxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-nochild.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountxhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCountxhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildElementCounthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-childElementCount.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildrenexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-children-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementchildrenhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-children.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementclasslistexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-classlist-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementclasslisthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-classlist.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementclosestexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-closest-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementclosesthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-closest.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementfirstElementChildentityxhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-firstElementChild-entity-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementfirstElementChildentityxhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-firstElementChild-entity-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementfirstElementChildexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-firstElementChild-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementfirstElementChildnamespaceexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-firstElementChild-namespace-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementfirstElementChildnamespacexhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-firstElementChild-namespace-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementfirstElementChildnamespacexhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-firstElementChild-namespace-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementfirstElementChildnamespacehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-firstElementChild-namespace.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementfirstElementChildhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-firstElementChild.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementfirstElementChildxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-firstElementChild.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementgetElementsByClassNameexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-getElementsByClassName-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementgetElementsByClassNamehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-getElementsByClassName.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementgetElementsByTagNameexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-getElementsByTagName-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementgetElementsByTagNamehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-getElementsByTagName.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementgetElementsByTagNameNSexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-getElementsByTagNameNS-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementgetElementsByTagNameNShtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-getElementsByTagNameNS.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementlastElementChildexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-lastElementChild-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementlastElementChildxhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-lastElementChild-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementlastElementChildxhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-lastElementChild-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementlastElementChildhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-lastElementChild.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementmatchesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementmatcheshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementmatchesjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-matches.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementnextElementSiblingexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-nextElementSibling-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementnextElementSiblinghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-nextElementSibling.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementnextElementSiblingxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-nextElementSibling.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementpreviousElementSiblingexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-previousElementSibling-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementpreviousElementSiblinghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-previousElementSibling.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementpreviousElementSiblingxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-previousElementSibling.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementremoveexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-remove-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementremovehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-remove.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementremoveAttributeNSexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-removeAttributeNS-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementremoveAttributeNShtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-removeAttributeNS.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementsiblingElementnullexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-siblingElement-null-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementsiblingElementnullxhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-siblingElement-null-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementsiblingElementnullxhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-siblingElement-null-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementsiblingElementnullhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-siblingElement-null.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementtagNameexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-tagName-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesElementtagNamehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Element-tagName.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObserverattributesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObserverattributeshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-attributes.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObservercharacterDataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-characterData-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObservercharacterDatahtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-characterData.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObserverchildListexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-childList-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObserverchildListhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-childList.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObserverdisconnectexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-disconnect-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObserverdisconnecthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-disconnect.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObserverdocumentexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-document-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObserverdocumenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-document.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObserverinnerouterexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-inner-outer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObserverinnerouterhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-inner-outer.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObservertakeRecordsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-takeRecords-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesMutationObservertakeRecordshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/MutationObserver-takeRecords.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeappendChildexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-appendChild-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeappendChildhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-appendChild.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodebaseURIexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-baseURI-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodebaseURIhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-baseURI.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodechildNodesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-childNodes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodechildNodeshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-childNodes.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodecloneNodeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodecloneNodehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodecompareDocumentPositionexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-compareDocumentPosition-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodecompareDocumentPositionhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-compareDocumentPosition.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeconstantsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-constants-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeconstantshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-constants.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodecontainsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-contains-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodecontainsxhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-contains-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodecontainsxhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-contains-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodecontainshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-contains.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeinsertBeforeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-insertBefore-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeinsertBeforehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-insertBefore.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeisEqualNodeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-isEqualNode-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeisEqualNodexhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-isEqualNode.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodelookupNamespaceURIexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-lookupNamespaceURI-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodelookupNamespaceURIhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-lookupNamespaceURI.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodelookupPrefixexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-lookupPrefix-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodelookupPrefixxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-lookupPrefix.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodenodeNameexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-nodeName-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodenodeNamexhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-nodeName-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodenodeNamexhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-nodeName-xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodenodeNamehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-nodeName.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodenodeValueexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-nodeValue-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodenodeValuehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-nodeValue.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodenormalizeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-normalize-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodenormalizehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-normalize.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeparentElementexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-parentElement-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeparentElementhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-parentElement.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeparentNodeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-parentNode-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeparentNodeiframeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-parentNode-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeparentNodeiframehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-parentNode-iframe.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodeparentNodehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-parentNode.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodepropertiesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-properties-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodepropertieshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-properties.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNoderemoveChildexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-removeChild-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNoderemoveChildhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-removeChild.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodereplaceChildexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-replaceChild-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodereplaceChildhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-replaceChild.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodetextContentexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-textContent-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodetextContenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-textContent.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesParentNodeappendexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-append-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesParentNodeappendhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-append.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesParentNodeprependexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-prepend-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesParentNodeprependhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-prepend.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesParentNodequerySelectorAllexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesParentNodequerySelectorAllxhtmlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xhtml-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesParentNodequerySelectorAllxhtmlxht">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All-xhtml.xht</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesParentNodequerySelectorAllhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesParentNodequerySelectorAlljs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ParentNode-querySelector-All.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesProcessingInstructionliteral1expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ProcessingInstruction-literal-1-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesProcessingInstructionliteral1xhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ProcessingInstruction-literal-1.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesProcessingInstructionliteral2expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ProcessingInstruction-literal-2-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesProcessingInstructionliteral2xhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ProcessingInstruction-literal-2.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesTextconstructorexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Text-constructor-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesTextconstructorhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Text-constructor.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesTextsplitTextexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Text-splitText-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesTextsplitTexthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Text-splitText.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesappendonDocumentexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/append-on-Document-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesappendonDocumenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/append-on-Document.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesattributesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesattributeshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/attributes.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesattributesjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/attributes.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodescaseexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/case-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodescasehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/case.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodescasejs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/case.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodescreatorsjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/creators.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesencodingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/encoding.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName01expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-01-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName01htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-01.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName02expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-02-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName02htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-02.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName03expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-03-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName03htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-03.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName04expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-04-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName04htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-04.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName05expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-05-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName05htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-05.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName06expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-06-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName06htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-06.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName07expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-07-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName07htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-07.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName08expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-08-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName08htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-08.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName09expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-09-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName09htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-09.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName10expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-10-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName10xml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-10.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName11expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-11-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName11xml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-11.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName12expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-12-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName12htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-12.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName13expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-13-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName13htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-13.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName14expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-14-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName14htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-14.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName15expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-15-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName15htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-15.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName16expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-16-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName16htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-16.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName17expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-17-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName17htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-17.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName18expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-18-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName18htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-18.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName19expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-19-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName19htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-19.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName20expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-20-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName20htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-20.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName21expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-21-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName21htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-21.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName22expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-22-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName22htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-22.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName23expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-23-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName23htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-23.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName24expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-24-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName24htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-24.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName25expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-25-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName25htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-25.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName26expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-26-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName26htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-26.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName27expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-27-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName27htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-27.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName28expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-28-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName28htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-28.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName29expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-29-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName29htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-29.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName30expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-30-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName30htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-30.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName31expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-31-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassName31htm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassName-31.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassNameFrameexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassNameFrame-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesgetElementsByClassNameFramehtm">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/getElementsByClassNameFrame.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesmutationobserversjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/mutationobservers.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesprependonDocumentexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/prepend-on-Document-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesprependonDocumenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/prepend-on-Document.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesproductionsjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/productions.js</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsbare_mathmlhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/bare_mathml.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsbare_mathmlsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/bare_mathml.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsbare_mathmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/bare_mathml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsbare_mathmlxml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/bare_mathml.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsbare_svghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/bare_svg.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsbare_svgsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/bare_svg.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsbare_svgxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/bare_svg.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsbare_svgxml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/bare_svg.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsbare_xhtmlhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/bare_xhtml.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsbare_xhtmlsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/bare_xhtml.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsbare_xhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/bare_xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsbare_xhtmlxml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/bare_xhtml.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsemptyhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/empty.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsemptysvg">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/empty.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsemptyxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/empty.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsemptyxml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/empty.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsgeneratepy">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/generate.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsmathmlhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/mathml.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsmathmlsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/mathml.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsmathmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/mathml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsmathmlxml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/mathml.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsminimal_htmlhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/minimal_html.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsminimal_htmlsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/minimal_html.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsminimal_htmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/minimal_html.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsminimal_htmlxml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/minimal_html.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestssvghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/svg.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestssvgsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/svg.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestssvgxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/svg.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestssvgxml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/svg.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsxhtmlhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/xhtml.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsxhtmlsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/xhtml.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsxhtmlxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/xhtml.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsxhtmlxml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/xhtml.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsxhtml_ns_changedhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/xhtml_ns_changed.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsxhtml_ns_changedsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/xhtml_ns_changed.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsxhtml_ns_changedxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/xhtml_ns_changed.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsxhtml_ns_changedxml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/xhtml_ns_changed.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsxhtml_ns_removedhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/xhtml_ns_removed.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsxhtml_ns_removedsvg">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/xhtml_ns_removed.svg</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsxhtml_ns_removedxhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/xhtml_ns_removed.xhtml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesDocumentcreateElementnamespacetestsxhtml_ns_removedxml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/Document-createElement-namespace-tests/xhtml_ns_removed.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesParentNodequerySelectorAllcontenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/ParentNode-querySelector-All-content.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesresourcesParentNodequerySelectorAllcontentxht">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/resources/ParentNode-querySelector-All-content.xht</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesselectorsjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/selectors.js</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeattributesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeattributeshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-attributes.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecloneContentsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-cloneContents-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecloneContentshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-cloneContents.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecloneRangeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-cloneRange-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecloneRangehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-cloneRange.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecollapseexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-collapse-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecollapsehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-collapse.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecommonAncestorContainer2expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-commonAncestorContainer-2-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecommonAncestorContainer2html">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-commonAncestorContainer-2.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecommonAncestorContainerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-commonAncestorContainer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecommonAncestorContainerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-commonAncestorContainer.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecompareBoundaryPointsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-compareBoundaryPoints-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecompareBoundaryPointshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-compareBoundaryPoints.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecomparePoint2expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-comparePoint-2-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecomparePoint2html">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-comparePoint-2.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecomparePointexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-comparePoint-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangecomparePointhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-comparePoint.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangedeleteContentsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-deleteContents-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangedeleteContentshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-deleteContents.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangedetachexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-detach-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangedetachhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-detach.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeextractContentsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-extractContents-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeextractContentshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-extractContents.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeinsertNodeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-insertNode-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeinsertNodehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-insertNode.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeintersectsNodebindingexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-intersectsNode-binding-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeintersectsNodebindinghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-intersectsNode-binding.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeintersectsNodeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-intersectsNode-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeintersectsNodehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-intersectsNode.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeisPointInRangeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-isPointInRange-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeisPointInRangehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-isPointInRange.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeselectNodeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-selectNode-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangeselectNodehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-selectNode.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangesetexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-set-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangesethtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-set.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangesurroundContentsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-surroundContents-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangesurroundContentshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-surroundContents.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangetestiframeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-test-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangetestiframehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-test-iframe.html</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalNodeFilterconstantsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/NodeFilter-constants-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalNodeFilterconstantshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/NodeFilter-constants.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalNodeIteratorexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/NodeIterator-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalNodeIteratorremovalexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/NodeIterator-removal-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalNodeIteratorremovalhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/NodeIterator-removal.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalNodeIteratorhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/NodeIterator.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkeracceptNodefilterexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkeracceptNodefilterhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkerbasicexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-basic-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkerbasichtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-basic.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkercurrentNodeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-currentNode-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkercurrentNodehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-currentNode.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkerpreviousNodeLastChildRejectexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-previousNodeLastChildReject-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkerpreviousNodeLastChildRejecthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-previousNodeLastChildReject.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkerpreviousSiblingLastChildSkipexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-previousSiblingLastChildSkip-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkerpreviousSiblingLastChildSkiphtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-previousSiblingLastChildSkip.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkertraversalrejectexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-traversal-reject-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkertraversalrejecthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-traversal-reject.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkertraversalskipexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-traversal-skip-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkertraversalskipmostexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-traversal-skip-most-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkertraversalskipmosthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-traversal-skip-most.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkertraversalskiphtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-traversal-skip.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkerwalkingoutsideatreeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-walking-outside-a-tree-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkerwalkingoutsideatreehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker-walking-outside-a-tree.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalTreeWalkerhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversaltraversalsupportjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/traversal-support.js</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished001expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/001-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished001xml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/001.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished002expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/002-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished002xml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/002.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished003expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/003-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished003xml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/003.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished004expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/004-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished004xml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/004.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished005expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/005-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished005xml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/005.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished006expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/006-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished006xml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/006.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished007expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/007-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished007xml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/007.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished008expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/008-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished008xml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/008.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished009expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/009-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished009xml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/009.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished010expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/010-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinished010xml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/010.xml</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomtraversalunfinishedTODO">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/unfinished/TODO</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li>trunk/LayoutTests/http/tests/w3c/dom/</li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (189470 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-09-07 23:05:28 UTC (rev 189470)
+++ trunk/LayoutTests/ChangeLog        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -1,3 +1,37 @@
</span><ins>+2015-09-07  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Unreviewed, move W3C DOM tests to imported/w3c/web-platform-tests/dom
+        https://bugs.webkit.org/show_bug.cgi?id=148947
+
+        Move W3C DOM tests with other web-platform-tests under:
+        imported/w3c/web-platform-tests/dom.
+
+        * TestExpectations:
+        * http/tests/w3c/dom/collections/w3c-import.log: Removed.
+        * http/tests/w3c/dom/events/w3c-import.log: Removed.
+        * http/tests/w3c/dom/lists/w3c-import.log: Removed.
+        * http/tests/w3c/dom/nodes/Document-URL.sub-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/Document-characterSet-normalization-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/DocumentType-literal-xhtml-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/Element-childElementCount-dynamic-add-xhtml-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/Element-childElementCount-nochild-xhtml-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/Element-firstElementChild-xhtml-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/Element-nextElementSibling-xhtml-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/Element-previousElementSibling-xhtml-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/Node-isEqualNode-xhtml-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/Node-lookupPrefix-xhtml-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/ProcessingInstruction-literal-1-xhtml-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/ProcessingInstruction-literal-2-xhtml-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/getElementsByClassName-10-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/getElementsByClassName-11-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/getElementsByClassName-31-expected.txt: Removed.
+        * http/tests/w3c/dom/nodes/w3c-import.log: Removed.
+        * http/tests/w3c/dom/ranges/w3c-import.log: Removed.
+        * http/tests/w3c/dom/traversal/w3c-import.log: Removed.
+        * http/tests/w3c/dom/w3c-import.log: Removed.
+        * platform/efl/TestExpectations:
+        * platform/ios-simulator/TestExpectations:
+
</ins><span class="cx"> 2015-09-07  Daniel Bates  &lt;dabates@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         ASSERT_WITH_SECURITY_IMPLICATION in WebCore::DocumentOrderedMap::get(); update form
</span></span></pre></div>
<a id="trunkLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/TestExpectations (189470 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations        2015-09-07 23:05:28 UTC (rev 189470)
+++ trunk/LayoutTests/TestExpectations        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -228,11 +228,11 @@
</span><span class="cx"> webkit.org/b/136878 js/promises-tests/promises-tests-2-3-3.html [ Slow ]
</span><span class="cx"> 
</span><span class="cx"> # Skip W3C tests that are too slow in debug builds.
</span><del>-webkit.org/b/148546 [ Debug ] http/tests/w3c/dom/ranges/Range-compareBoundaryPoints.html [ Skip ]
-webkit.org/b/148546 [ Debug ] http/tests/w3c/dom/ranges/Range-comparePoint.html [ Skip ]
-webkit.org/b/148546 [ Debug ] http/tests/w3c/dom/ranges/Range-isPointInRange.html [ Skip ]
-webkit.org/b/148546 [ Debug ] http/tests/w3c/dom/ranges/Range-mutations.html [ Skip ]
-webkit.org/b/148546 [ Debug ] http/tests/w3c/dom/ranges/Range-set.html [ Skip ]
</del><ins>+webkit.org/b/148546 [ Debug ] imported/w3c/web-platform-tests/dom/ranges/Range-compareBoundaryPoints.html [ Skip ]
+webkit.org/b/148546 [ Debug ] imported/w3c/web-platform-tests/dom/ranges/Range-comparePoint.html [ Skip ]
+webkit.org/b/148546 [ Debug ] imported/w3c/web-platform-tests/dom/ranges/Range-isPointInRange.html [ Skip ]
+webkit.org/b/148546 [ Debug ] imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html [ Skip ]
+webkit.org/b/148546 [ Debug ] imported/w3c/web-platform-tests/dom/ranges/Range-set.html [ Skip ]
</ins><span class="cx"> webkit.org/b/148736 [ Debug ] http/tests/w3c/html/dom/interfaces.html [ Skip ]
</span><span class="cx"> webkit.org/b/148822 [ Debug ] http/tests/w3c/html/semantics/interfaces.html [ Skip ]
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (189470 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2015-09-07 23:05:28 UTC (rev 189470)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2015-09-07  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Unreviewed, move W3C DOM tests to imported/w3c/web-platform-tests/dom
+        https://bugs.webkit.org/show_bug.cgi?id=148947
+
+        Move W3C DOM tests with other web-platform-tests under:
+        imported/w3c/web-platform-tests/dom.
+
+        * web-platform-tests/dom/*: Added.
+
</ins><span class="cx"> 2015-09-04  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Import new multicolumn layout tests from CSS WG testss
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cresourceswebplatformtestsmodulesjson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/resources/web-platform-tests-modules.json (189470 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/resources/web-platform-tests-modules.json        2015-09-07 23:05:28 UTC (rev 189470)
+++ trunk/LayoutTests/imported/w3c/resources/web-platform-tests-modules.json        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -38,5 +38,13 @@
</span><span class="cx">         ], 
</span><span class="cx">         &quot;url&quot;: &quot;https://github.com/jgraham/six/archive/3b6173c833d217ab0186c355804f5925cbcfca47.tar.gz&quot;, 
</span><span class="cx">         &quot;url_subpath&quot;: &quot;six-3b6173c833d217ab0186c355804f5925cbcfca47&quot;
</span><ins>+    },
+    {
+        &quot;name&quot;: &quot;webidl2&quot;,
+        &quot;path&quot;: [
+            &quot;resources&quot;
+        ],
+        &quot;url&quot;: &quot;https://github.com/darobin/webidl2.js/archive/997fb214e02980ef4c27137553857ae6da533590.tar.gz&quot;,
+        &quot;url_subpath&quot;: &quot;webidl2.js-997fb214e02980ef4c27137553857ae6da533590&quot;
</ins><span class="cx">     }
</span><del>-]
</del><span class="cx">\ No newline at end of file
</span><ins>+]
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomcollectionsHTMLCollectionemptynameexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomcollectionsHTMLCollectionemptynameexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-empty-name-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/collections/HTMLCollection-empty-name-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-empty-name-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-empty-name-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+
+PASS Empty string as a name for Document.getElementsByTagName 
+PASS Empty string as a name for Element.getElementsByTagName 
+PASS Empty string as a name for Document.getElementsByTagNameNS 
+PASS Empty string as a name for Element.getElementsByTagNameNS 
+PASS Empty string as a name for Document.getElementsByClassName 
+PASS Empty string as a name for Element.getElementsByClassName 
+PASS Empty string as a name for Element.children 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomcollectionsHTMLCollectionemptynamehtmlfromrev189470trunkLayoutTestshttptestsw3cdomcollectionsHTMLCollectionemptynamehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-empty-name.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/collections/HTMLCollection-empty-name.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-empty-name.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-empty-name.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,65 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;HTMLCollection and empty names&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;div id=test&gt;
+&lt;div class=a id&gt;&lt;/div&gt;
+&lt;div class=a name&gt;&lt;/div&gt;
+&lt;a class=a name&gt;&lt;/a&gt;
+&lt;/div&gt;
+&lt;script&gt;
+test(function() {
+  var c = document.getElementsByTagName(&quot;*&quot;);
+  assert_false(&quot;&quot; in c, &quot;Empty string should not be in the collection.&quot;);
+  assert_equals(c[&quot;&quot;], undefined, &quot;Named getter should return undefined for empty string.&quot;);
+  assert_equals(c.namedItem(&quot;&quot;), null, &quot;namedItem should return null for empty string.&quot;);
+}, &quot;Empty string as a name for Document.getElementsByTagName&quot;);
+
+test(function() {
+  var div = document.getElementById(&quot;test&quot;);
+  var c = div.getElementsByTagName(&quot;*&quot;);
+  assert_false(&quot;&quot; in c, &quot;Empty string should not be in the collection.&quot;);
+  assert_equals(c[&quot;&quot;], undefined, &quot;Named getter should return undefined for empty string.&quot;);
+  assert_equals(c.namedItem(&quot;&quot;), null, &quot;namedItem should return null for empty string.&quot;);
+}, &quot;Empty string as a name for Element.getElementsByTagName&quot;);
+
+test(function() {
+  var c = document.getElementsByTagNameNS(&quot;http://www.w3.org/1999/xhtml&quot;, &quot;a&quot;);
+  assert_false(&quot;&quot; in c, &quot;Empty string should not be in the collection.&quot;);
+  assert_equals(c[&quot;&quot;], undefined, &quot;Named getter should return undefined for empty string.&quot;);
+  assert_equals(c.namedItem(&quot;&quot;), null, &quot;namedItem should return null for empty string.&quot;);
+}, &quot;Empty string as a name for Document.getElementsByTagNameNS&quot;);
+
+test(function() {
+  var div = document.getElementById(&quot;test&quot;);
+  var c = div.getElementsByTagNameNS(&quot;http://www.w3.org/1999/xhtml&quot;, &quot;a&quot;);
+  assert_false(&quot;&quot; in c, &quot;Empty string should not be in the collection.&quot;);
+  assert_equals(c[&quot;&quot;], undefined, &quot;Named getter should return undefined for empty string.&quot;);
+  assert_equals(c.namedItem(&quot;&quot;), null, &quot;namedItem should return null for empty string.&quot;);
+}, &quot;Empty string as a name for Element.getElementsByTagNameNS&quot;);
+
+test(function() {
+  var c = document.getElementsByClassName(&quot;a&quot;);
+  assert_false(&quot;&quot; in c, &quot;Empty string should not be in the collection.&quot;);
+  assert_equals(c[&quot;&quot;], undefined, &quot;Named getter should return undefined for empty string.&quot;);
+  assert_equals(c.namedItem(&quot;&quot;), null, &quot;namedItem should return null for empty string.&quot;);
+}, &quot;Empty string as a name for Document.getElementsByClassName&quot;);
+
+test(function() {
+  var div = document.getElementById(&quot;test&quot;);
+  var c = div.getElementsByClassName(&quot;a&quot;);
+  assert_false(&quot;&quot; in c, &quot;Empty string should not be in the collection.&quot;);
+  assert_equals(c[&quot;&quot;], undefined, &quot;Named getter should return undefined for empty string.&quot;);
+  assert_equals(c.namedItem(&quot;&quot;), null, &quot;namedItem should return null for empty string.&quot;);
+}, &quot;Empty string as a name for Element.getElementsByClassName&quot;);
+
+test(function() {
+  var div = document.getElementById(&quot;test&quot;);
+  var c = div.children;
+  assert_false(&quot;&quot; in c, &quot;Empty string should not be in the collection.&quot;);
+  assert_equals(c[&quot;&quot;], undefined, &quot;Named getter should return undefined for empty string.&quot;);
+  assert_equals(c.namedItem(&quot;&quot;), null, &quot;namedItem should return null for empty string.&quot;);
+}, &quot;Empty string as a name for Element.children&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomcollectionsHTMLCollectionsupportedpropertynamesexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-supported-property-names-expected.txt (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-supported-property-names-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-supported-property-names-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+
+FAIL Object.getOwnPropertyNames on HTMLCollection assert_array_equals: lengths differ, expected 12 got 10
+FAIL Object.getOwnPropertyNames on HTMLCollection with non-HTML namespace assert_array_equals: lengths differ, expected 1 got 3
+FAIL Object.getOwnPropertyNames on HTMLCollection with expando object assert_array_equals: lengths differ, expected 2 got 4
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomcollectionsHTMLCollectionsupportedpropertynameshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,54 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;link rel=help href=https://dom.spec.whatwg.org/#interface-htmlcollection&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+
+&lt;div id=log&gt;&lt;/div&gt;
+
+&lt;!-- with no attribute --&gt;
+&lt;span&gt;&lt;/span&gt;
+
+&lt;!-- with `id` attribute --&gt;
+&lt;span id=''&gt;&lt;/span&gt;
+&lt;span id='some-id'&gt;&lt;/span&gt;
+&lt;span id='some-id'&gt;&lt;/span&gt;&lt;!-- to ensure no duplicates --&gt;
+
+&lt;!-- with `name` attribute --&gt;
+&lt;span name=''&gt;&lt;/span&gt;
+&lt;span name='some-name'&gt;&lt;/span&gt;
+&lt;span name='some-name'&gt;&lt;/span&gt;&lt;!-- to ensure no duplicates --&gt;
+
+&lt;!-- with `name` and `id` attribute --&gt;
+&lt;span id='another-id' name='another-name'&gt;&lt;/span&gt;
+
+&lt;script&gt;
+test(function () {
+  var elements = document.getElementsByTagName(&quot;span&quot;);
+  assert_array_equals(
+    Object.getOwnPropertyNames(elements),
+    ['0', '1', '2', '3', '4', '5', '6', '7', 'some-id', 'some-name', 'another-id', 'another-name']
+  );
+}, 'Object.getOwnPropertyNames on HTMLCollection');
+
+test(function () {
+  var elem = document.createElementNS('some-random-namespace', 'foo');
+  this.add_cleanup(function () {elem.remove();});
+  elem.setAttribute(&quot;name&quot;, &quot;some-name&quot;);
+  document.body.appendChild(elem);
+
+  var elements = document.getElementsByTagName(&quot;foo&quot;);
+  assert_array_equals(Object.getOwnPropertyNames(elements), ['0']);
+}, 'Object.getOwnPropertyNames on HTMLCollection with non-HTML namespace');
+
+test(function () {
+  var elem = document.createElement('foo');
+  this.add_cleanup(function () {elem.remove();});
+  document.body.appendChild(elem);
+
+  var elements = document.getElementsByTagName(&quot;foo&quot;);
+  elements.someProperty = &quot;some value&quot;;
+
+  assert_array_equals(Object.getOwnPropertyNames(elements), ['0', 'someProperty']);
+}, 'Object.getOwnPropertyNames on HTMLCollection with expando object');
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomcommonjsfromrev189470trunkLayoutTestshttptestsw3cdomcommonjs"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/common.js (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/common.js) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/common.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/common.js        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,1085 @@
</span><ins>+&quot;use strict&quot;;
+// Written by Aryeh Gregor &lt;ayg@aryeh.name&gt;
+
+// TODO: iframes, contenteditable/designMode
+
+// Everything is done in functions in this test harness, so we have to declare
+// all the variables before use to make sure they can be reused.
+var testDiv, paras, detachedDiv, detachedPara1, detachedPara2,
+    foreignDoc, foreignPara1, foreignPara2, xmlDoc, xmlElement,
+    detachedXmlElement, detachedTextNode, foreignTextNode,
+    detachedForeignTextNode, xmlTextNode, detachedXmlTextNode,
+    processingInstruction, detachedProcessingInstruction, comment,
+    detachedComment, foreignComment, detachedForeignComment, xmlComment,
+    detachedXmlComment, docfrag, foreignDocfrag, xmlDocfrag, doctype,
+    foreignDoctype, xmlDoctype;
+var testRangesShort, testRanges, testPoints, testNodesShort, testNodes;
+
+function setupRangeTests() {
+    testDiv = document.querySelector(&quot;#test&quot;);
+    if (testDiv) {
+        testDiv.parentNode.removeChild(testDiv);
+    }
+    testDiv = document.createElement(&quot;div&quot;);
+    testDiv.id = &quot;test&quot;;
+    document.body.insertBefore(testDiv, document.body.firstChild);
+
+    paras = [];
+    paras.push(document.createElement(&quot;p&quot;));
+    paras[0].setAttribute(&quot;id&quot;, &quot;a&quot;);
+    // Test some diacritics, to make sure browsers are using code units here
+    // and not something like grapheme clusters.
+    paras[0].textContent = &quot;A\u0308b\u0308c\u0308d\u0308e\u0308f\u0308g\u0308h\u0308\n&quot;;
+    testDiv.appendChild(paras[0]);
+
+    paras.push(document.createElement(&quot;p&quot;));
+    paras[1].setAttribute(&quot;id&quot;, &quot;b&quot;);
+    paras[1].setAttribute(&quot;style&quot;, &quot;display:none&quot;);
+    paras[1].textContent = &quot;Ijklmnop\n&quot;;
+    testDiv.appendChild(paras[1]);
+
+    paras.push(document.createElement(&quot;p&quot;));
+    paras[2].setAttribute(&quot;id&quot;, &quot;c&quot;);
+    paras[2].textContent = &quot;Qrstuvwx&quot;;
+    testDiv.appendChild(paras[2]);
+
+    paras.push(document.createElement(&quot;p&quot;));
+    paras[3].setAttribute(&quot;id&quot;, &quot;d&quot;);
+    paras[3].setAttribute(&quot;style&quot;, &quot;display:none&quot;);
+    paras[3].textContent = &quot;Yzabcdef&quot;;
+    testDiv.appendChild(paras[3]);
+
+    paras.push(document.createElement(&quot;p&quot;));
+    paras[4].setAttribute(&quot;id&quot;, &quot;e&quot;);
+    paras[4].setAttribute(&quot;style&quot;, &quot;display:none&quot;);
+    paras[4].textContent = &quot;Ghijklmn&quot;;
+    testDiv.appendChild(paras[4]);
+
+    detachedDiv = document.createElement(&quot;div&quot;);
+    detachedPara1 = document.createElement(&quot;p&quot;);
+    detachedPara1.appendChild(document.createTextNode(&quot;Opqrstuv&quot;));
+    detachedPara2 = document.createElement(&quot;p&quot;);
+    detachedPara2.appendChild(document.createTextNode(&quot;Wxyzabcd&quot;));
+    detachedDiv.appendChild(detachedPara1);
+    detachedDiv.appendChild(detachedPara2);
+
+    // Opera doesn't automatically create a doctype for a new HTML document,
+    // contrary to spec.  It also doesn't let you add doctypes to documents
+    // after the fact through any means I've tried.  So foreignDoc in Opera
+    // will have no doctype, foreignDoctype will be null, and Opera will fail
+    // some tests somewhat mysteriously as a result.
+    foreignDoc = document.implementation.createHTMLDocument(&quot;&quot;);
+    foreignPara1 = foreignDoc.createElement(&quot;p&quot;);
+    foreignPara1.appendChild(foreignDoc.createTextNode(&quot;Efghijkl&quot;));
+    foreignPara2 = foreignDoc.createElement(&quot;p&quot;);
+    foreignPara2.appendChild(foreignDoc.createTextNode(&quot;Mnopqrst&quot;));
+    foreignDoc.body.appendChild(foreignPara1);
+    foreignDoc.body.appendChild(foreignPara2);
+
+    // Now we get to do really silly stuff, which nobody in the universe is
+    // ever going to actually do, but the spec defines behavior, so too bad.
+    // Testing is fun!
+    xmlDoctype = document.implementation.createDocumentType(&quot;qorflesnorf&quot;, &quot;abcde&quot;, &quot;x\&quot;'y&quot;);
+    xmlDoc = document.implementation.createDocument(null, null, xmlDoctype);
+    detachedXmlElement = xmlDoc.createElement(&quot;everyone-hates-hyphenated-element-names&quot;);
+    detachedTextNode = document.createTextNode(&quot;Uvwxyzab&quot;);
+    detachedForeignTextNode = foreignDoc.createTextNode(&quot;Cdefghij&quot;);
+    detachedXmlTextNode = xmlDoc.createTextNode(&quot;Klmnopqr&quot;);
+    // PIs only exist in XML documents, so don't bother with document or
+    // foreignDoc.
+    detachedProcessingInstruction = xmlDoc.createProcessingInstruction(&quot;whippoorwill&quot;, &quot;chirp chirp chirp&quot;);
+    detachedComment = document.createComment(&quot;Stuvwxyz&quot;);
+    // Hurrah, we finally got to &quot;z&quot; at the end!
+    detachedForeignComment = foreignDoc.createComment(&quot;אריה יהודה&quot;);
+    detachedXmlComment = xmlDoc.createComment(&quot;בן חיים אליעזר&quot;);
+
+    // We should also test with document fragments that actually contain stuff
+    // . . . but, maybe later.
+    docfrag = document.createDocumentFragment();
+    foreignDocfrag = foreignDoc.createDocumentFragment();
+    xmlDocfrag = xmlDoc.createDocumentFragment();
+
+    xmlElement = xmlDoc.createElement(&quot;igiveuponcreativenames&quot;);
+    xmlTextNode = xmlDoc.createTextNode(&quot;do re mi fa so la ti&quot;);
+    xmlElement.appendChild(xmlTextNode);
+    processingInstruction = xmlDoc.createProcessingInstruction(&quot;somePI&quot;, 'Did you know that &quot;:syn sync fromstart&quot; is very useful when using vim to edit large amounts of JavaScript embedded in HTML?');
+    xmlDoc.appendChild(xmlElement);
+    xmlDoc.appendChild(processingInstruction);
+    xmlComment = xmlDoc.createComment(&quot;I maliciously created a comment that will break incautious XML serializers, but Firefox threw an exception, so all I got was this lousy T-shirt&quot;);
+    xmlDoc.appendChild(xmlComment);
+
+    comment = document.createComment(&quot;Alphabet soup?&quot;);
+    testDiv.appendChild(comment);
+
+    foreignComment = foreignDoc.createComment('&quot;Commenter&quot; and &quot;commentator&quot; mean different things.  I\'ve seen non-native speakers trip up on this.');
+    foreignDoc.appendChild(foreignComment);
+    foreignTextNode = foreignDoc.createTextNode(&quot;I admit that I harbor doubts about whether we really need so many things to test, but it's too late to stop now.&quot;);
+    foreignDoc.body.appendChild(foreignTextNode);
+
+    doctype = document.doctype;
+    foreignDoctype = foreignDoc.doctype;
+
+    testRangesShort = [
+        // Various ranges within the text node children of different
+        // paragraphs.  All should be valid.
+        &quot;[paras[0].firstChild, 0, paras[0].firstChild, 0]&quot;,
+        &quot;[paras[0].firstChild, 0, paras[0].firstChild, 1]&quot;,
+        &quot;[paras[0].firstChild, 2, paras[0].firstChild, 8]&quot;,
+        &quot;[paras[0].firstChild, 2, paras[0].firstChild, 9]&quot;,
+        &quot;[paras[1].firstChild, 0, paras[1].firstChild, 0]&quot;,
+        &quot;[paras[1].firstChild, 2, paras[1].firstChild, 9]&quot;,
+        &quot;[detachedPara1.firstChild, 0, detachedPara1.firstChild, 0]&quot;,
+        &quot;[detachedPara1.firstChild, 2, detachedPara1.firstChild, 8]&quot;,
+        &quot;[foreignPara1.firstChild, 0, foreignPara1.firstChild, 0]&quot;,
+        &quot;[foreignPara1.firstChild, 2, foreignPara1.firstChild, 8]&quot;,
+        // Now try testing some elements, not just text nodes.
+        &quot;[document.documentElement, 0, document.documentElement, 1]&quot;,
+        &quot;[document.documentElement, 0, document.documentElement, 2]&quot;,
+        &quot;[document.documentElement, 1, document.documentElement, 2]&quot;,
+        &quot;[document.head, 1, document.head, 1]&quot;,
+        &quot;[document.body, 4, document.body, 5]&quot;,
+        &quot;[foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]&quot;,
+        &quot;[paras[0], 0, paras[0], 1]&quot;,
+        &quot;[detachedPara1, 0, detachedPara1, 1]&quot;,
+        // Now try some ranges that span elements.
+        &quot;[paras[0].firstChild, 0, paras[1].firstChild, 0]&quot;,
+        &quot;[paras[0].firstChild, 0, paras[1].firstChild, 8]&quot;,
+        &quot;[paras[0].firstChild, 3, paras[3], 1]&quot;,
+        // How about something that spans a node and its descendant?
+        &quot;[paras[0], 0, paras[0].firstChild, 7]&quot;,
+        &quot;[testDiv, 2, paras[4], 1]&quot;,
+        // Then a few more interesting things just for good measure.
+        &quot;[document, 0, document, 1]&quot;,
+        &quot;[document, 0, document, 2]&quot;,
+        &quot;[comment, 2, comment, 3]&quot;,
+        &quot;[testDiv, 0, comment, 5]&quot;,
+        &quot;[foreignDoc, 1, foreignComment, 2]&quot;,
+        &quot;[foreignDoc.body, 0, foreignTextNode, 36]&quot;,
+        &quot;[xmlDoc, 1, xmlComment, 0]&quot;,
+        &quot;[detachedTextNode, 0, detachedTextNode, 8]&quot;,
+        &quot;[detachedForeignTextNode, 0, detachedForeignTextNode, 8]&quot;,
+        &quot;[detachedXmlTextNode, 0, detachedXmlTextNode, 8]&quot;,
+        &quot;[detachedComment, 3, detachedComment, 4]&quot;,
+        &quot;[detachedForeignComment, 0, detachedForeignComment, 1]&quot;,
+        &quot;[detachedXmlComment, 2, detachedXmlComment, 6]&quot;,
+        &quot;[docfrag, 0, docfrag, 0]&quot;,
+        &quot;[processingInstruction, 0, processingInstruction, 4]&quot;,
+    ];
+
+    testRanges = testRangesShort.concat([
+        &quot;[paras[1].firstChild, 0, paras[1].firstChild, 1]&quot;,
+        &quot;[paras[1].firstChild, 2, paras[1].firstChild, 8]&quot;,
+        &quot;[detachedPara1.firstChild, 0, detachedPara1.firstChild, 1]&quot;,
+        &quot;[foreignPara1.firstChild, 0, foreignPara1.firstChild, 1]&quot;,
+        &quot;[foreignDoc.head, 1, foreignDoc.head, 1]&quot;,
+        &quot;[foreignDoc.body, 0, foreignDoc.body, 0]&quot;,
+        &quot;[paras[0], 0, paras[0], 0]&quot;,
+        &quot;[detachedPara1, 0, detachedPara1, 0]&quot;,
+        &quot;[testDiv, 1, paras[2].firstChild, 5]&quot;,
+        &quot;[document.documentElement, 1, document.body, 0]&quot;,
+        &quot;[foreignDoc.documentElement, 1, foreignDoc.body, 0]&quot;,
+        &quot;[document, 1, document, 2]&quot;,
+        &quot;[paras[2].firstChild, 4, comment, 2]&quot;,
+        &quot;[paras[3], 1, comment, 8]&quot;,
+        &quot;[foreignDoc, 0, foreignDoc, 0]&quot;,
+        &quot;[xmlDoc, 0, xmlDoc, 0]&quot;,
+        &quot;[detachedForeignTextNode, 7, detachedForeignTextNode, 7]&quot;,
+        &quot;[detachedXmlTextNode, 7, detachedXmlTextNode, 7]&quot;,
+        &quot;[detachedComment, 5, detachedComment, 5]&quot;,
+        &quot;[detachedForeignComment, 4, detachedForeignComment, 4]&quot;,
+        &quot;[foreignDocfrag, 0, foreignDocfrag, 0]&quot;,
+        &quot;[xmlDocfrag, 0, xmlDocfrag, 0]&quot;,
+    ]);
+
+    testPoints = [
+        // Various positions within the page, some invalid.  Remember that
+        // paras[0] is visible, and paras[1] is display: none.
+        &quot;[paras[0].firstChild, -1]&quot;,
+        &quot;[paras[0].firstChild, 0]&quot;,
+        &quot;[paras[0].firstChild, 1]&quot;,
+        &quot;[paras[0].firstChild, 2]&quot;,
+        &quot;[paras[0].firstChild, 8]&quot;,
+        &quot;[paras[0].firstChild, 9]&quot;,
+        &quot;[paras[0].firstChild, 10]&quot;,
+        &quot;[paras[0].firstChild, 65535]&quot;,
+        &quot;[paras[1].firstChild, -1]&quot;,
+        &quot;[paras[1].firstChild, 0]&quot;,
+        &quot;[paras[1].firstChild, 1]&quot;,
+        &quot;[paras[1].firstChild, 2]&quot;,
+        &quot;[paras[1].firstChild, 8]&quot;,
+        &quot;[paras[1].firstChild, 9]&quot;,
+        &quot;[paras[1].firstChild, 10]&quot;,
+        &quot;[paras[1].firstChild, 65535]&quot;,
+        &quot;[detachedPara1.firstChild, 0]&quot;,
+        &quot;[detachedPara1.firstChild, 1]&quot;,
+        &quot;[detachedPara1.firstChild, 8]&quot;,
+        &quot;[detachedPara1.firstChild, 9]&quot;,
+        &quot;[foreignPara1.firstChild, 0]&quot;,
+        &quot;[foreignPara1.firstChild, 1]&quot;,
+        &quot;[foreignPara1.firstChild, 8]&quot;,
+        &quot;[foreignPara1.firstChild, 9]&quot;,
+        // Now try testing some elements, not just text nodes.
+        &quot;[document.documentElement, -1]&quot;,
+        &quot;[document.documentElement, 0]&quot;,
+        &quot;[document.documentElement, 1]&quot;,
+        &quot;[document.documentElement, 2]&quot;,
+        &quot;[document.documentElement, 7]&quot;,
+        &quot;[document.head, 1]&quot;,
+        &quot;[document.body, 3]&quot;,
+        &quot;[foreignDoc.documentElement, 0]&quot;,
+        &quot;[foreignDoc.documentElement, 1]&quot;,
+        &quot;[foreignDoc.head, 0]&quot;,
+        &quot;[foreignDoc.body, 1]&quot;,
+        &quot;[paras[0], 0]&quot;,
+        &quot;[paras[0], 1]&quot;,
+        &quot;[paras[0], 2]&quot;,
+        &quot;[paras[1], 0]&quot;,
+        &quot;[paras[1], 1]&quot;,
+        &quot;[paras[1], 2]&quot;,
+        &quot;[detachedPara1, 0]&quot;,
+        &quot;[detachedPara1, 1]&quot;,
+        &quot;[testDiv, 0]&quot;,
+        &quot;[testDiv, 3]&quot;,
+        // Then a few more interesting things just for good measure.
+        &quot;[document, -1]&quot;,
+        &quot;[document, 0]&quot;,
+        &quot;[document, 1]&quot;,
+        &quot;[document, 2]&quot;,
+        &quot;[document, 3]&quot;,
+        &quot;[comment, -1]&quot;,
+        &quot;[comment, 0]&quot;,
+        &quot;[comment, 4]&quot;,
+        &quot;[comment, 96]&quot;,
+        &quot;[foreignDoc, 0]&quot;,
+        &quot;[foreignDoc, 1]&quot;,
+        &quot;[foreignComment, 2]&quot;,
+        &quot;[foreignTextNode, 0]&quot;,
+        &quot;[foreignTextNode, 36]&quot;,
+        &quot;[xmlDoc, -1]&quot;,
+        &quot;[xmlDoc, 0]&quot;,
+        &quot;[xmlDoc, 1]&quot;,
+        &quot;[xmlDoc, 5]&quot;,
+        &quot;[xmlComment, 0]&quot;,
+        &quot;[xmlComment, 4]&quot;,
+        &quot;[processingInstruction, 0]&quot;,
+        &quot;[processingInstruction, 5]&quot;,
+        &quot;[processingInstruction, 9]&quot;,
+        &quot;[detachedTextNode, 0]&quot;,
+        &quot;[detachedTextNode, 8]&quot;,
+        &quot;[detachedForeignTextNode, 0]&quot;,
+        &quot;[detachedForeignTextNode, 8]&quot;,
+        &quot;[detachedXmlTextNode, 0]&quot;,
+        &quot;[detachedXmlTextNode, 8]&quot;,
+        &quot;[detachedProcessingInstruction, 12]&quot;,
+        &quot;[detachedComment, 3]&quot;,
+        &quot;[detachedComment, 5]&quot;,
+        &quot;[detachedForeignComment, 0]&quot;,
+        &quot;[detachedForeignComment, 4]&quot;,
+        &quot;[detachedXmlComment, 2]&quot;,
+        &quot;[docfrag, 0]&quot;,
+        &quot;[foreignDocfrag, 0]&quot;,
+        &quot;[xmlDocfrag, 0]&quot;,
+        &quot;[doctype, 0]&quot;,
+        &quot;[doctype, -17]&quot;,
+        &quot;[doctype, 1]&quot;,
+        &quot;[foreignDoctype, 0]&quot;,
+        &quot;[xmlDoctype, 0]&quot;,
+    ];
+
+    testNodesShort = [
+        &quot;paras[0]&quot;,
+        &quot;paras[0].firstChild&quot;,
+        &quot;paras[1].firstChild&quot;,
+        &quot;foreignPara1&quot;,
+        &quot;foreignPara1.firstChild&quot;,
+        &quot;detachedPara1&quot;,
+        &quot;detachedPara1.firstChild&quot;,
+        &quot;document&quot;,
+        &quot;detachedDiv&quot;,
+        &quot;foreignDoc&quot;,
+        &quot;foreignPara2&quot;,
+        &quot;xmlDoc&quot;,
+        &quot;xmlElement&quot;,
+        &quot;detachedTextNode&quot;,
+        &quot;foreignTextNode&quot;,
+        &quot;processingInstruction&quot;,
+        &quot;detachedProcessingInstruction&quot;,
+        &quot;comment&quot;,
+        &quot;detachedComment&quot;,
+        &quot;docfrag&quot;,
+        &quot;doctype&quot;,
+        &quot;foreignDoctype&quot;,
+    ];
+
+    testNodes = testNodesShort.concat([
+        &quot;paras[1]&quot;,
+        &quot;detachedPara2&quot;,
+        &quot;detachedPara2.firstChild&quot;,
+        &quot;testDiv&quot;,
+        &quot;detachedXmlElement&quot;,
+        &quot;detachedForeignTextNode&quot;,
+        &quot;xmlTextNode&quot;,
+        &quot;detachedXmlTextNode&quot;,
+        &quot;xmlComment&quot;,
+        &quot;foreignComment&quot;,
+        &quot;detachedForeignComment&quot;,
+        &quot;detachedXmlComment&quot;,
+        &quot;foreignDocfrag&quot;,
+        &quot;xmlDocfrag&quot;,
+        &quot;xmlDoctype&quot;,
+    ]);
+}
+if (&quot;setup&quot; in window) {
+    setup(setupRangeTests);
+} else {
+    // Presumably we're running from within an iframe or something
+    setupRangeTests();
+}
+
+/**
+ * The &quot;length&quot; of a node as defined by the Ranges section of DOM4.
+ */
+function nodeLength(node) {
+    // &quot;The length of a node node depends on node:
+    //
+    // &quot;DocumentType
+    //   &quot;0.&quot;
+    if (node.nodeType == Node.DOCUMENT_TYPE_NODE) {
+        return 0;
+    }
+    // &quot;Text
+    // &quot;ProcessingInstruction
+    // &quot;Comment
+    //   &quot;Its length attribute value.&quot;
+    // Browsers don't historically support the length attribute on
+    // ProcessingInstruction, so to avoid spurious failures, do
+    // node.data.length instead of node.length.
+    if (node.nodeType == Node.TEXT_NODE || node.nodeType == Node.PROCESSING_INSTRUCTION_NODE || node.nodeType == Node.COMMENT_NODE) {
+        return node.data.length;
+    }
+    // &quot;Any other node
+    //   &quot;Its number of children.&quot;
+    return node.childNodes.length;
+}
+
+/**
+ * Returns the furthest ancestor of a Node as defined by the spec.
+ */
+function furthestAncestor(node) {
+    var root = node;
+    while (root.parentNode != null) {
+        root = root.parentNode;
+    }
+    return root;
+}
+
+/**
+ * &quot;The ancestor containers of a Node are the Node itself and all its
+ * ancestors.&quot;
+ *
+ * Is node1 an ancestor container of node2?
+ */
+function isAncestorContainer(node1, node2) {
+    return node1 == node2 ||
+        (node2.compareDocumentPosition(node1) &amp; Node.DOCUMENT_POSITION_CONTAINS);
+}
+
+/**
+ * Returns the first Node that's after node in tree order, or null if node is
+ * the last Node.
+ */
+function nextNode(node) {
+    if (node.hasChildNodes()) {
+        return node.firstChild;
+    }
+    return nextNodeDescendants(node);
+}
+
+/**
+ * Returns the last Node that's before node in tree order, or null if node is
+ * the first Node.
+ */
+function previousNode(node) {
+    if (node.previousSibling) {
+        node = node.previousSibling;
+        while (node.hasChildNodes()) {
+            node = node.lastChild;
+        }
+        return node;
+    }
+    return node.parentNode;
+}
+
+/**
+ * Returns the next Node that's after node and all its descendants in tree
+ * order, or null if node is the last Node or an ancestor of it.
+ */
+function nextNodeDescendants(node) {
+    while (node &amp;&amp; !node.nextSibling) {
+        node = node.parentNode;
+    }
+    if (!node) {
+        return null;
+    }
+    return node.nextSibling;
+}
+
+/**
+ * Returns the ownerDocument of the Node, or the Node itself if it's a
+ * Document.
+ */
+function ownerDocument(node) {
+    return node.nodeType == Node.DOCUMENT_NODE
+        ? node
+        : node.ownerDocument;
+}
+
+/**
+ * Returns true if ancestor is an ancestor of descendant, false otherwise.
+ */
+function isAncestor(ancestor, descendant) {
+    if (!ancestor || !descendant) {
+        return false;
+    }
+    while (descendant &amp;&amp; descendant != ancestor) {
+        descendant = descendant.parentNode;
+    }
+    return descendant == ancestor;
+}
+
+/**
+ * Returns true if ancestor is an inclusive ancestor of descendant, false
+ * otherwise.
+ */
+function isInclusiveAncestor(ancestor, descendant) {
+    return ancestor === descendant || isAncestor(ancestor, descendant);
+}
+
+/**
+ * Returns true if descendant is a descendant of ancestor, false otherwise.
+ */
+function isDescendant(descendant, ancestor) {
+    return isAncestor(ancestor, descendant);
+}
+
+/**
+ * Returns true if descendant is an inclusive descendant of ancestor, false
+ * otherwise.
+ */
+function isInclusiveDescendant(descendant, ancestor) {
+    return descendant === ancestor || isDescendant(descendant, ancestor);
+}
+
+/**
+ * The position of two boundary points relative to one another, as defined by
+ * the spec.
+ */
+function getPosition(nodeA, offsetA, nodeB, offsetB) {
+    // &quot;If node A is the same as node B, return equal if offset A equals offset
+    // B, before if offset A is less than offset B, and after if offset A is
+    // greater than offset B.&quot;
+    if (nodeA == nodeB) {
+        if (offsetA == offsetB) {
+            return &quot;equal&quot;;
+        }
+        if (offsetA &lt; offsetB) {
+            return &quot;before&quot;;
+        }
+        if (offsetA &gt; offsetB) {
+            return &quot;after&quot;;
+        }
+    }
+
+    // &quot;If node A is after node B in tree order, compute the position of (node
+    // B, offset B) relative to (node A, offset A). If it is before, return
+    // after. If it is after, return before.&quot;
+    if (nodeB.compareDocumentPosition(nodeA) &amp; Node.DOCUMENT_POSITION_FOLLOWING) {
+        var pos = getPosition(nodeB, offsetB, nodeA, offsetA);
+        if (pos == &quot;before&quot;) {
+            return &quot;after&quot;;
+        }
+        if (pos == &quot;after&quot;) {
+            return &quot;before&quot;;
+        }
+    }
+
+    // &quot;If node A is an ancestor of node B:&quot;
+    if (nodeB.compareDocumentPosition(nodeA) &amp; Node.DOCUMENT_POSITION_CONTAINS) {
+        // &quot;Let child equal node B.&quot;
+        var child = nodeB;
+
+        // &quot;While child is not a child of node A, set child to its parent.&quot;
+        while (child.parentNode != nodeA) {
+            child = child.parentNode;
+        }
+
+        // &quot;If the index of child is less than offset A, return after.&quot;
+        if (indexOf(child) &lt; offsetA) {
+            return &quot;after&quot;;
+        }
+    }
+
+    // &quot;Return before.&quot;
+    return &quot;before&quot;;
+}
+
+/**
+ * &quot;contained&quot; as defined by DOM Range: &quot;A Node node is contained in a range
+ * range if node's furthest ancestor is the same as range's root, and (node, 0)
+ * is after range's start, and (node, length of node) is before range's end.&quot;
+ */
+function isContained(node, range) {
+    var pos1 = getPosition(node, 0, range.startContainer, range.startOffset);
+    var pos2 = getPosition(node, nodeLength(node), range.endContainer, range.endOffset);
+
+    return furthestAncestor(node) == furthestAncestor(range.startContainer)
+        &amp;&amp; pos1 == &quot;after&quot;
+        &amp;&amp; pos2 == &quot;before&quot;;
+}
+
+/**
+ * &quot;partially contained&quot; as defined by DOM Range: &quot;A Node is partially
+ * contained in a range if it is an ancestor container of the range's start but
+ * not its end, or vice versa.&quot;
+ */
+function isPartiallyContained(node, range) {
+    var cond1 = isAncestorContainer(node, range.startContainer);
+    var cond2 = isAncestorContainer(node, range.endContainer);
+    return (cond1 &amp;&amp; !cond2) || (cond2 &amp;&amp; !cond1);
+}
+
+/**
+ * Index of a node as defined by the spec.
+ */
+function indexOf(node) {
+    if (!node.parentNode) {
+        // No preceding sibling nodes, right?
+        return 0;
+    }
+    var i = 0;
+    while (node != node.parentNode.childNodes[i]) {
+        i++;
+    }
+    return i;
+}
+
+/**
+ * extractContents() implementation, following the spec.  If an exception is
+ * supposed to be thrown, will return a string with the name (e.g.,
+ * &quot;HIERARCHY_REQUEST_ERR&quot;) instead of a document fragment.  It might also
+ * return an arbitrary human-readable string if a condition is hit that implies
+ * a spec bug.
+ */
+function myExtractContents(range) {
+    // &quot;If the context object's detached flag is set, raise an
+    // INVALID_STATE_ERR exception and abort these steps.&quot;
+    try {
+        range.collapsed;
+    } catch (e) {
+        return &quot;INVALID_STATE_ERR&quot;;
+    }
+
+    // &quot;Let frag be a new DocumentFragment whose ownerDocument is the same as
+    // the ownerDocument of the context object's start node.&quot;
+    var ownerDoc = range.startContainer.nodeType == Node.DOCUMENT_NODE
+        ? range.startContainer
+        : range.startContainer.ownerDocument;
+    var frag = ownerDoc.createDocumentFragment();
+
+    // &quot;If the context object's start and end are the same, abort this method,
+    // returning frag.&quot;
+    if (range.startContainer == range.endContainer
+    &amp;&amp; range.startOffset == range.endOffset) {
+        return frag;
+    }
+
+    // &quot;Let original start node, original start offset, original end node, and
+    // original end offset be the context object's start and end nodes and
+    // offsets, respectively.&quot;
+    var originalStartNode = range.startContainer;
+    var originalStartOffset = range.startOffset;
+    var originalEndNode = range.endContainer;
+    var originalEndOffset = range.endOffset;
+
+    // &quot;If original start node and original end node are the same, and they are
+    // a Text or Comment node:&quot;
+    if (range.startContainer == range.endContainer
+    &amp;&amp; (range.startContainer.nodeType == Node.TEXT_NODE
+    || range.startContainer.nodeType == Node.COMMENT_NODE)) {
+        // &quot;Let clone be the result of calling cloneNode(false) on original
+        // start node.&quot;
+        var clone = originalStartNode.cloneNode(false);
+
+        // &quot;Set the data of clone to the result of calling
+        // substringData(original start offset, original end offset − original
+        // start offset) on original start node.&quot;
+        clone.data = originalStartNode.substringData(originalStartOffset,
+            originalEndOffset - originalStartOffset);
+
+        // &quot;Append clone as the last child of frag.&quot;
+        frag.appendChild(clone);
+
+        // &quot;Call deleteData(original start offset, original end offset −
+        // original start offset) on original start node.&quot;
+        originalStartNode.deleteData(originalStartOffset,
+            originalEndOffset - originalStartOffset);
+
+        // &quot;Abort this method, returning frag.&quot;
+        return frag;
+    }
+
+    // &quot;Let common ancestor equal original start node.&quot;
+    var commonAncestor = originalStartNode;
+
+    // &quot;While common ancestor is not an ancestor container of original end
+    // node, set common ancestor to its own parent.&quot;
+    while (!isAncestorContainer(commonAncestor, originalEndNode)) {
+        commonAncestor = commonAncestor.parentNode;
+    }
+
+    // &quot;If original start node is an ancestor container of original end node,
+    // let first partially contained child be null.&quot;
+    var firstPartiallyContainedChild;
+    if (isAncestorContainer(originalStartNode, originalEndNode)) {
+        firstPartiallyContainedChild = null;
+    // &quot;Otherwise, let first partially contained child be the first child of
+    // common ancestor that is partially contained in the context object.&quot;
+    } else {
+        for (var i = 0; i &lt; commonAncestor.childNodes.length; i++) {
+            if (isPartiallyContained(commonAncestor.childNodes[i], range)) {
+                firstPartiallyContainedChild = commonAncestor.childNodes[i];
+                break;
+            }
+        }
+        if (!firstPartiallyContainedChild) {
+            throw &quot;Spec bug: no first partially contained child!&quot;;
+        }
+    }
+
+    // &quot;If original end node is an ancestor container of original start node,
+    // let last partially contained child be null.&quot;
+    var lastPartiallyContainedChild;
+    if (isAncestorContainer(originalEndNode, originalStartNode)) {
+        lastPartiallyContainedChild = null;
+    // &quot;Otherwise, let last partially contained child be the last child of
+    // common ancestor that is partially contained in the context object.&quot;
+    } else {
+        for (var i = commonAncestor.childNodes.length - 1; i &gt;= 0; i--) {
+            if (isPartiallyContained(commonAncestor.childNodes[i], range)) {
+                lastPartiallyContainedChild = commonAncestor.childNodes[i];
+                break;
+            }
+        }
+        if (!lastPartiallyContainedChild) {
+            throw &quot;Spec bug: no last partially contained child!&quot;;
+        }
+    }
+
+    // &quot;Let contained children be a list of all children of common ancestor
+    // that are contained in the context object, in tree order.&quot;
+    //
+    // &quot;If any member of contained children is a DocumentType, raise a
+    // HIERARCHY_REQUEST_ERR exception and abort these steps.&quot;
+    var containedChildren = [];
+    for (var i = 0; i &lt; commonAncestor.childNodes.length; i++) {
+        if (isContained(commonAncestor.childNodes[i], range)) {
+            if (commonAncestor.childNodes[i].nodeType
+            == Node.DOCUMENT_TYPE_NODE) {
+                return &quot;HIERARCHY_REQUEST_ERR&quot;;
+            }
+            containedChildren.push(commonAncestor.childNodes[i]);
+        }
+    }
+
+    // &quot;If original start node is an ancestor container of original end node,
+    // set new node to original start node and new offset to original start
+    // offset.&quot;
+    var newNode, newOffset;
+    if (isAncestorContainer(originalStartNode, originalEndNode)) {
+        newNode = originalStartNode;
+        newOffset = originalStartOffset;
+    // &quot;Otherwise:&quot;
+    } else {
+        // &quot;Let reference node equal original start node.&quot;
+        var referenceNode = originalStartNode;
+
+        // &quot;While reference node's parent is not null and is not an ancestor
+        // container of original end node, set reference node to its parent.&quot;
+        while (referenceNode.parentNode
+        &amp;&amp; !isAncestorContainer(referenceNode.parentNode, originalEndNode)) {
+            referenceNode = referenceNode.parentNode;
+        }
+
+        // &quot;Set new node to the parent of reference node, and new offset to one
+        // plus the index of reference node.&quot;
+        newNode = referenceNode.parentNode;
+        newOffset = 1 + indexOf(referenceNode);
+    }
+
+    // &quot;If first partially contained child is a Text or Comment node:&quot;
+    if (firstPartiallyContainedChild
+    &amp;&amp; (firstPartiallyContainedChild.nodeType == Node.TEXT_NODE
+    || firstPartiallyContainedChild.nodeType == Node.COMMENT_NODE)) {
+        // &quot;Let clone be the result of calling cloneNode(false) on original
+        // start node.&quot;
+        var clone = originalStartNode.cloneNode(false);
+
+        // &quot;Set the data of clone to the result of calling substringData() on
+        // original start node, with original start offset as the first
+        // argument and (length of original start node − original start offset)
+        // as the second.&quot;
+        clone.data = originalStartNode.substringData(originalStartOffset,
+            nodeLength(originalStartNode) - originalStartOffset);
+
+        // &quot;Append clone as the last child of frag.&quot;
+        frag.appendChild(clone);
+
+        // &quot;Call deleteData() on original start node, with original start
+        // offset as the first argument and (length of original start node −
+        // original start offset) as the second.&quot;
+        originalStartNode.deleteData(originalStartOffset,
+            nodeLength(originalStartNode) - originalStartOffset);
+    // &quot;Otherwise, if first partially contained child is not null:&quot;
+    } else if (firstPartiallyContainedChild) {
+        // &quot;Let clone be the result of calling cloneNode(false) on first
+        // partially contained child.&quot;
+        var clone = firstPartiallyContainedChild.cloneNode(false);
+
+        // &quot;Append clone as the last child of frag.&quot;
+        frag.appendChild(clone);
+
+        // &quot;Let subrange be a new Range whose start is (original start node,
+        // original start offset) and whose end is (first partially contained
+        // child, length of first partially contained child).&quot;
+        var subrange = ownerDoc.createRange();
+        subrange.setStart(originalStartNode, originalStartOffset);
+        subrange.setEnd(firstPartiallyContainedChild,
+            nodeLength(firstPartiallyContainedChild));
+
+        // &quot;Let subfrag be the result of calling extractContents() on
+        // subrange.&quot;
+        var subfrag = myExtractContents(subrange);
+
+        // &quot;For each child of subfrag, in order, append that child to clone as
+        // its last child.&quot;
+        for (var i = 0; i &lt; subfrag.childNodes.length; i++) {
+            clone.appendChild(subfrag.childNodes[i]);
+        }
+    }
+
+    // &quot;For each contained child in contained children, append contained child
+    // as the last child of frag.&quot;
+    for (var i = 0; i &lt; containedChildren.length; i++) {
+        frag.appendChild(containedChildren[i]);
+    }
+
+    // &quot;If last partially contained child is a Text or Comment node:&quot;
+    if (lastPartiallyContainedChild
+    &amp;&amp; (lastPartiallyContainedChild.nodeType == Node.TEXT_NODE
+    || lastPartiallyContainedChild.nodeType == Node.COMMENT_NODE)) {
+        // &quot;Let clone be the result of calling cloneNode(false) on original
+        // end node.&quot;
+        var clone = originalEndNode.cloneNode(false);
+
+        // &quot;Set the data of clone to the result of calling substringData(0,
+        // original end offset) on original end node.&quot;
+        clone.data = originalEndNode.substringData(0, originalEndOffset);
+
+        // &quot;Append clone as the last child of frag.&quot;
+        frag.appendChild(clone);
+
+        // &quot;Call deleteData(0, original end offset) on original end node.&quot;
+        originalEndNode.deleteData(0, originalEndOffset);
+    // &quot;Otherwise, if last partially contained child is not null:&quot;
+    } else if (lastPartiallyContainedChild) {
+        // &quot;Let clone be the result of calling cloneNode(false) on last
+        // partially contained child.&quot;
+        var clone = lastPartiallyContainedChild.cloneNode(false);
+
+        // &quot;Append clone as the last child of frag.&quot;
+        frag.appendChild(clone);
+
+        // &quot;Let subrange be a new Range whose start is (last partially
+        // contained child, 0) and whose end is (original end node, original
+        // end offset).&quot;
+        var subrange = ownerDoc.createRange();
+        subrange.setStart(lastPartiallyContainedChild, 0);
+        subrange.setEnd(originalEndNode, originalEndOffset);
+
+        // &quot;Let subfrag be the result of calling extractContents() on
+        // subrange.&quot;
+        var subfrag = myExtractContents(subrange);
+
+        // &quot;For each child of subfrag, in order, append that child to clone as
+        // its last child.&quot;
+        for (var i = 0; i &lt; subfrag.childNodes.length; i++) {
+            clone.appendChild(subfrag.childNodes[i]);
+        }
+    }
+
+    // &quot;Set the context object's start and end to (new node, new offset).&quot;
+    range.setStart(newNode, newOffset);
+    range.setEnd(newNode, newOffset);
+
+    // &quot;Return frag.&quot;
+    return frag;
+}
+
+/**
+ * insertNode() implementation, following the spec.  If an exception is meant
+ * to be thrown, will return a string with the expected exception name, for
+ * instance &quot;HIERARCHY_REQUEST_ERR&quot;.
+ */
+function myInsertNode(range, node) {
+    // &quot;If range's start node is either a ProcessingInstruction or Comment
+    // node, or a Text node whose parent is null, throw an
+    // &quot;HierarchyRequestError&quot; exception and terminate these steps.&quot;
+    if (range.startContainer.nodeType == Node.PROCESSING_INSTRUCTION_NODE
+            || range.startContainer.nodeType == Node.COMMENT_NODE
+            || (range.startContainer.nodeType == Node.TEXT_NODE
+                &amp;&amp; !range.startContainer.parentNode)) {
+                    return &quot;HIERARCHY_REQUEST_ERR&quot;;
+    }
+
+    // &quot;Let referenceNode be null.&quot;
+    var referenceNode = null;
+
+    // &quot;If range's start node is a Text node, set referenceNode to that Text node.&quot;
+    if (range.startContainer.nodeType == Node.TEXT_NODE) {
+        referenceNode = range.startContainer;
+
+        // &quot;Otherwise, set referenceNode to the child of start node whose index is
+        // start offset, and null if there is no such child.&quot;
+    } else {
+        if (range.startOffset &lt; range.startContainer.childNodes.length) {
+            referenceNode = range.startContainer.childNodes[range.startOffset];
+        } else {
+            referenceNode = null;
+        }
+    }
+
+    // &quot;Let parent be range's start node if referenceNode is null, and
+    // referenceNode's parent otherwise.&quot;
+    var parent_ = referenceNode === null ? range.startContainer :
+        referenceNode.parentNode;
+
+    // &quot;Ensure pre-insertion validity of node into parent before
+    // referenceNode.&quot;
+    var error = ensurePreInsertionValidity(node, parent_, referenceNode);
+    if (error) {
+        return error;
+    }
+
+    // &quot;If range's start node is a Text node, set referenceNode to the result
+    // of splitting it with offset range's start offset.&quot;
+    if (range.startContainer.nodeType == Node.TEXT_NODE) {
+        referenceNode = range.startContainer.splitText(range.startOffset);
+    }
+
+    // &quot;If node is referenceNode, set referenceNode to its next sibling.&quot;
+    if (node == referenceNode) {
+        referenceNode = referenceNode.nextSibling;
+    }
+
+    // &quot;If node's parent is not null, remove node from its parent.&quot;
+    if (node.parentNode) {
+        node.parentNode.removeChild(node);
+    }
+
+    // &quot;Let newOffset be parent's length if referenceNode is null, and
+    // referenceNode's index otherwise.&quot;
+    var newOffset = referenceNode === null ? nodeLength(parent_) :
+        indexOf(referenceNode);
+
+    // &quot;Increase newOffset by node's length if node is a DocumentFragment node,
+    // and one otherwise.&quot;
+    newOffset += node.nodeType == Node.DOCUMENT_FRAGMENT_NODE ?
+        nodeLength(node) : 1;
+
+    // &quot;Pre-insert node into parent before referenceNode.&quot;
+    parent_.insertBefore(node, referenceNode);
+
+    // &quot;If range's start and end are the same, set range's end to (parent,
+    // newOffset).&quot;
+    if (range.startContainer == range.endContainer
+    &amp;&amp; range.startOffset == range.endOffset) {
+        range.setEnd(parent_, newOffset);
+    }
+}
+
+// To make filter() calls more readable
+function isElement(node) {
+    return node.nodeType == Node.ELEMENT_NODE;
+}
+
+function isText(node) {
+    return node.nodeType == Node.TEXT_NODE;
+}
+
+function isDoctype(node) {
+    return node.nodeType == Node.DOCUMENT_TYPE_NODE;
+}
+
+function ensurePreInsertionValidity(node, parent_, child) {
+    // &quot;If parent is not a Document, DocumentFragment, or Element node, throw a
+    // HierarchyRequestError.&quot;
+    if (parent_.nodeType != Node.DOCUMENT_NODE
+            &amp;&amp; parent_.nodeType != Node.DOCUMENT_FRAGMENT_NODE
+            &amp;&amp; parent_.nodeType != Node.ELEMENT_NODE) {
+                return &quot;HIERARCHY_REQUEST_ERR&quot;;
+    }
+
+    // &quot;If node is a host-including inclusive ancestor of parent, throw a
+    // HierarchyRequestError.&quot;
+    //
+    // XXX Does not account for host
+    if (isInclusiveAncestor(node, parent_)) {
+        return &quot;HIERARCHY_REQUEST_ERR&quot;;
+    }
+
+    // &quot;If child is not null and its parent is not parent, throw a NotFoundError
+    // exception.&quot;
+    if (child &amp;&amp; child.parentNode != parent_) {
+        return &quot;NOT_FOUND_ERR&quot;;
+    }
+
+    // &quot;If node is not a DocumentFragment, DocumentType, Element, Text,
+    // ProcessingInstruction, or Comment node, throw a HierarchyRequestError.&quot;
+    if (node.nodeType != Node.DOCUMENT_FRAGMENT_NODE
+            &amp;&amp; node.nodeType != Node.DOCUMENT_TYPE_NODE
+            &amp;&amp; node.nodeType != Node.ELEMENT_NODE
+            &amp;&amp; node.nodeType != Node.TEXT_NODE
+            &amp;&amp; node.nodeType != Node.PROCESSING_INSTRUCTION_NODE
+            &amp;&amp; node.nodeType != Node.COMMENT_NODE) {
+                return &quot;HIERARCHY_REQUEST_ERR&quot;;
+    }
+
+    // &quot;If either node is a Text node and parent is a document, or node is a
+    // doctype and parent is not a document, throw a HierarchyRequestError.&quot;
+    if ((node.nodeType == Node.TEXT_NODE
+                &amp;&amp; parent_.nodeType == Node.DOCUMENT_NODE)
+            || (node.nodeType == Node.DOCUMENT_TYPE_NODE
+                &amp;&amp; parent_.nodeType != Node.DOCUMENT_NODE)) {
+                    return &quot;HIERARCHY_REQUEST_ERR&quot;;
+    }
+
+    // &quot;If parent is a document, and any of the statements below, switched on
+    // node, are true, throw a HierarchyRequestError.&quot;
+    if (parent_.nodeType == Node.DOCUMENT_NODE) {
+        switch (node.nodeType) {
+        case Node.DOCUMENT_FRAGMENT_NODE:
+            // &quot;If node has more than one element child or has a Text node
+            // child.  Otherwise, if node has one element child and either
+            // parent has an element child, child is a doctype, or child is not
+            // null and a doctype is following child.&quot;
+            if ([].filter.call(node.childNodes, isElement).length &gt; 1) {
+                return &quot;HIERARCHY_REQUEST_ERR&quot;;
+            }
+
+            if ([].some.call(node.childNodes, isText)) {
+                return &quot;HIERARCHY_REQUEST_ERR&quot;;
+            }
+
+            if ([].filter.call(node.childNodes, isElement).length == 1) {
+                if ([].some.call(parent_.childNodes, isElement)) {
+                    return &quot;HIERARCHY_REQUEST_ERR&quot;;
+                }
+
+                if (child &amp;&amp; child.nodeType == Node.DOCUMENT_TYPE_NODE) {
+                    return &quot;HIERARCHY_REQUEST_ERR&quot;;
+                }
+
+                if (child &amp;&amp; [].slice.call(parent_.childNodes, indexOf(child) + 1)
+                               .filter(isDoctype)) {
+                    return &quot;HIERARCHY_REQUEST_ERR&quot;;
+                }
+            }
+            break;
+
+        case Node.ELEMENT_NODE:
+            // &quot;parent has an element child, child is a doctype, or child is
+            // not null and a doctype is following child.&quot;
+            if ([].some.call(parent_.childNodes, isElement)) {
+                return &quot;HIERARCHY_REQUEST_ERR&quot;;
+            }
+
+            if (child.nodeType == Node.DOCUMENT_TYPE_NODE) {
+                return &quot;HIERARCHY_REQUEST_ERR&quot;;
+            }
+
+            if (child &amp;&amp; [].slice.call(parent_.childNodes, indexOf(child) + 1)
+                           .filter(isDoctype)) {
+                return &quot;HIERARCHY_REQUEST_ERR&quot;;
+            }
+            break;
+
+        case Node.DOCUMENT_TYPE_NODE:
+            // &quot;parent has a doctype child, an element is preceding child, or
+            // child is null and parent has an element child.&quot;
+            if ([].some.call(parent_.childNodes, isDoctype)) {
+                return &quot;HIERARCHY_REQUEST_ERR&quot;;
+            }
+
+            if (child &amp;&amp; [].slice.call(parent_.childNodes, 0, indexOf(child))
+                           .some(isElement)) {
+                return &quot;HIERARCHY_REQUEST_ERR&quot;;
+            }
+
+            if (!child &amp;&amp; [].some.call(parent_.childNodes, isElement)) {
+                return &quot;HIERARCHY_REQUEST_ERR&quot;;
+            }
+            break;
+        }
+    }
+}
+
+/**
+ * Asserts that two nodes are equal, in the sense of isEqualNode().  If they
+ * aren't, tries to print a relatively informative reason why not.  TODO: Move
+ * this to testharness.js?
+ */
+function assertNodesEqual(actual, expected, msg) {
+    if (!actual.isEqualNode(expected)) {
+        msg = &quot;Actual and expected mismatch for &quot; + msg + &quot;.  &quot;;
+
+        while (actual &amp;&amp; expected) {
+            assert_true(actual.nodeType === expected.nodeType
+                &amp;&amp; actual.nodeName === expected.nodeName
+                &amp;&amp; actual.nodeValue === expected.nodeValue,
+                &quot;First differing node: expected &quot; + format_value(expected)
+                + &quot;, got &quot; + format_value(actual) + &quot; [&quot; + msg + &quot;]&quot;);
+            actual = nextNode(actual);
+            expected = nextNode(expected);
+        }
+
+        assert_unreached(&quot;DOMs were not equal but we couldn't figure out why&quot;);
+    }
+}
+
+/**
+ * Given a DOMException, return the name (e.g., &quot;HIERARCHY_REQUEST_ERR&quot;).
+ */
+function getDomExceptionName(e) {
+    var ret = null;
+    for (var prop in e) {
+        if (/^[A-Z_]+_ERR$/.test(prop) &amp;&amp; e[prop] == e.code) {
+            return prop;
+        }
+    }
+
+    throw &quot;Exception seems to not be a DOMException?  &quot; + e;
+}
+
+/**
+ * Given an array of endpoint data [start container, start offset, end
+ * container, end offset], returns a Range with those endpoints.
+ */
+function rangeFromEndpoints(endpoints) {
+    // If we just use document instead of the ownerDocument of endpoints[0],
+    // WebKit will throw on setStart/setEnd.  This is a WebKit bug, but it's in
+    // range, not selection, so we don't want to fail anything for it.
+    var range = ownerDocument(endpoints[0]).createRange();
+    range.setStart(endpoints[0], endpoints[1]);
+    range.setEnd(endpoints[2], endpoints[3]);
+    return range;
+}
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomconstantsjsfromrev189470trunkLayoutTestshttptestsw3cdomconstantsjs"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/constants.js (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/constants.js) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/constants.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/constants.js        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+function testConstants(objects, constants, msg) {
+  objects.forEach(function(arr) {
+    var o = arr[0], desc = arr[1];
+    test(function() {
+      constants.forEach(function(d) {
+        assert_true(d[0] in o, &quot;Object &quot; + o + &quot; doesn't have &quot; + d[0])
+        assert_equals(o[d[0]], d[1], &quot;Object &quot; + o + &quot; value for &quot; + d[0] + &quot; is wrong&quot;)
+      })
+    }, &quot;Constants for &quot; + msg + &quot; on &quot; + desc + &quot;.&quot;)
+  })
+}
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventconstantsexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventconstantsexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constants-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-constants-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constants-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constants-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+
+PASS Constants for eventPhase on Event interface object. 
+PASS Constants for eventPhase on Event prototype object. 
+PASS Constants for eventPhase on Event object. 
+PASS Constants for eventPhase on CustomEvent object. 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventconstantshtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventconstantshtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constants.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-constants.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constants.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constants.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Event constants&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../constants.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+var objects;
+setup(function() {
+  objects = [
+    [Event, &quot;Event interface object&quot;],
+    [Event.prototype, &quot;Event prototype object&quot;],
+    [document.createEvent(&quot;Event&quot;), &quot;Event object&quot;],
+    [document.createEvent(&quot;CustomEvent&quot;), &quot;CustomEvent object&quot;]
+  ]
+})
+testConstants(objects, [
+  [&quot;NONE&quot;, 0],
+  [&quot;CAPTURING_PHASE&quot;, 1],
+  [&quot;AT_TARGET&quot;, 2],
+  [&quot;BUBBLING_PHASE&quot;, 3]
+], &quot;eventPhase&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventconstructorsexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventconstructorsexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constructors-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-constructors-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constructors-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constructors-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+
+FAIL Event constructors assert_throws: function &quot;function () {
+    new Event()
+  }&quot; did not throw
+PASS Event constructors 1 
+FAIL Event constructors 2 assert_equals: expected (boolean) false but got (undefined) undefined
+FAIL Event constructors 3 assert_equals: expected (boolean) false but got (undefined) undefined
+FAIL Event constructors 4 Event is not a function. (In 'Event(&quot;test&quot;)', 'Event' is an instance of EventConstructor)
+PASS Event constructors 5 
+PASS Event constructors 6 
+PASS Event constructors 7 
+PASS Event constructors 8 
+PASS Event constructors 9 
+PASS Event constructors 10 
+PASS Event constructors 11 
+PASS Event constructors 12 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventconstructorshtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventconstructorshtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constructors.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-constructors.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constructors.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-constructors.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,124 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Event constructors&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;script&gt;
+test(function() {
+  assert_throws(new TypeError(), function() {
+    new Event()
+  })
+})
+test(function() {
+  var test_error = { name: &quot;test&quot; }
+  assert_throws(test_error, function() {
+    new Event({ toString: function() { throw test_error; } })
+  })
+})
+test(function() {
+  var ev = new Event(&quot;&quot;)
+  assert_equals(ev.type, &quot;&quot;)
+  assert_equals(ev.target, null)
+  assert_equals(ev.currentTarget, null)
+  assert_equals(ev.eventPhase, Event.NONE)
+  assert_equals(ev.bubbles, false)
+  assert_equals(ev.cancelable, false)
+  assert_equals(ev.defaultPrevented, false)
+  assert_equals(ev.isTrusted, false)
+  assert_true(ev.timeStamp &gt; 0)
+  assert_true(&quot;initEvent&quot; in ev)
+})
+test(function() {
+  var ev = new Event(&quot;test&quot;)
+  assert_equals(ev.type, &quot;test&quot;)
+  assert_equals(ev.target, null)
+  assert_equals(ev.currentTarget, null)
+  assert_equals(ev.eventPhase, Event.NONE)
+  assert_equals(ev.bubbles, false)
+  assert_equals(ev.cancelable, false)
+  assert_equals(ev.defaultPrevented, false)
+  assert_equals(ev.isTrusted, false)
+  assert_true(ev.timeStamp &gt; 0)
+  assert_true(&quot;initEvent&quot; in ev)
+})
+test(function() {
+  var ev = Event(&quot;test&quot;)
+  assert_equals(ev.type, &quot;test&quot;)
+  assert_equals(ev.target, null)
+  assert_equals(ev.currentTarget, null)
+  assert_equals(ev.eventPhase, Event.NONE)
+  assert_equals(ev.bubbles, false)
+  assert_equals(ev.cancelable, false)
+  assert_equals(ev.defaultPrevented, false)
+  assert_equals(ev.isTrusted, false)
+  assert_true(ev.timeStamp &gt; 0)
+  assert_true(&quot;initEvent&quot; in ev)
+})
+test(function() {
+  var ev = new Event(&quot;I am an event&quot;, { bubbles: true, cancelable: false})
+  assert_equals(ev.type, &quot;I am an event&quot;)
+  assert_equals(ev.bubbles, true)
+  assert_equals(ev.cancelable, false)
+})
+test(function() {
+  var ev = new Event(&quot;@&quot;, { bubblesIGNORED: true, cancelable: true})
+  assert_equals(ev.type, &quot;@&quot;)
+  assert_equals(ev.bubbles, false)
+  assert_equals(ev.cancelable, true)
+})
+test(function() {
+  var ev = new Event(&quot;@&quot;, { &quot;bubbles\0IGNORED&quot;: true, cancelable: true})
+  assert_equals(ev.type, &quot;@&quot;)
+  assert_equals(ev.bubbles, false)
+  assert_equals(ev.cancelable, true)
+})
+test(function() {
+  var ev = new Event(&quot;Xx&quot;, { cancelable: true})
+  assert_equals(ev.type, &quot;Xx&quot;)
+  assert_equals(ev.bubbles, false)
+  assert_equals(ev.cancelable, true)
+})
+test(function() {
+  var ev = new Event(&quot;Xx&quot;, {})
+  assert_equals(ev.type, &quot;Xx&quot;)
+  assert_equals(ev.bubbles, false)
+  assert_equals(ev.cancelable, false)
+})
+test(function() {
+  var ev = new Event(&quot;Xx&quot;, {bubbles: true, cancelable: false, sweet: &quot;x&quot;})
+  assert_equals(ev.type, &quot;Xx&quot;)
+  assert_equals(ev.bubbles, true)
+  assert_equals(ev.cancelable, false)
+  assert_equals(ev.sweet, undefined)
+})
+test(function() {
+  var called = []
+  var ev = new Event(&quot;Xx&quot;, {
+    get cancelable() {
+      called.push(&quot;cancelable&quot;)
+      return false
+    },
+    get bubbles() {
+      called.push(&quot;bubbles&quot;)
+      return true;
+    },
+    get sweet() {
+      called.push(&quot;sweet&quot;)
+      return &quot;x&quot;
+    }
+  })
+  assert_array_equals(called, [&quot;bubbles&quot;, &quot;cancelable&quot;])
+  assert_equals(ev.type, &quot;Xx&quot;)
+  assert_equals(ev.bubbles, true)
+  assert_equals(ev.cancelable, false)
+  assert_equals(ev.sweet, undefined)
+})
+test(function() {
+  var ev = new CustomEvent(&quot;$&quot;, {detail: 54, sweet: &quot;x&quot;, sweet2: &quot;x&quot;, cancelable:true})
+  assert_equals(ev.type, &quot;$&quot;)
+  assert_equals(ev.bubbles, false)
+  assert_equals(ev.cancelable, true)
+  assert_equals(ev.sweet, undefined)
+  assert_equals(ev.detail, 54)
+})
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdefaultPreventedexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdefaultPreventedexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-defaultPrevented-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-defaultPrevented-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-defaultPrevented-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-defaultPrevented-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+
+PASS When an event is created, defaultPrevented should be initialized to false. 
+PASS initEvent should work correctly (not cancelable). 
+PASS preventDefault() should not change defaultPrevented if cancelable is false. 
+PASS initEvent should work correctly (cancelable). 
+PASS preventDefault() should change defaultPrevented if cancelable is false. 
+PASS initEvent should unset defaultPrevented. 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdefaultPreventedhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdefaultPreventedhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-defaultPrevented.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-defaultPrevented.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-defaultPrevented.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-defaultPrevented.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,42 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Event.defaultPrevented&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+var ev;
+test(function() {
+  ev = document.createEvent(&quot;Event&quot;);
+  assert_equals(ev.defaultPrevented, false, &quot;defaultPrevented&quot;);
+}, &quot;When an event is created, defaultPrevented should be initialized to false.&quot;);
+test(function() {
+  ev.initEvent(&quot;foo&quot;, true, false);
+  assert_equals(ev.bubbles, true, &quot;bubbles&quot;);
+  assert_equals(ev.cancelable, false, &quot;cancelable&quot;);
+  assert_equals(ev.defaultPrevented, false, &quot;defaultPrevented&quot;);
+}, &quot;initEvent should work correctly (not cancelable).&quot;);
+test(function() {
+  assert_equals(ev.cancelable, false, &quot;cancelable (before)&quot;);
+  ev.preventDefault();
+  assert_equals(ev.cancelable, false, &quot;cancelable (after)&quot;);
+  assert_equals(ev.defaultPrevented, false, &quot;defaultPrevented&quot;);
+}, &quot;preventDefault() should not change defaultPrevented if cancelable is false.&quot;);
+test(function() {
+  ev.initEvent(&quot;foo&quot;, true, true);
+  assert_equals(ev.bubbles, true, &quot;bubbles&quot;);
+  assert_equals(ev.cancelable, true, &quot;cancelable&quot;);
+  assert_equals(ev.defaultPrevented, false, &quot;defaultPrevented&quot;);
+}, &quot;initEvent should work correctly (cancelable).&quot;);
+test(function() {
+  assert_equals(ev.cancelable, true, &quot;cancelable (before)&quot;);
+  ev.preventDefault();
+  assert_equals(ev.cancelable, true, &quot;cancelable (after)&quot;);
+  assert_equals(ev.defaultPrevented, true, &quot;defaultPrevented&quot;);
+}, &quot;preventDefault() should change defaultPrevented if cancelable is false.&quot;);
+test(function() {
+  ev.initEvent(&quot;foo&quot;, true, true);
+  assert_equals(ev.bubbles, true, &quot;bubbles&quot;);
+  assert_equals(ev.cancelable, true, &quot;cancelable&quot;);
+  assert_equals(ev.defaultPrevented, false, &quot;defaultPrevented&quot;);
+}, &quot;initEvent should unset defaultPrevented.&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchbubblesfalseexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchbubblesfalseexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-bubbles-false-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-bubbles-false-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-bubbles-false-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-bubbles-false-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS Event.dispatchEvent with Event.bubbles set to false. 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchbubblesfalsehtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchbubblesfalsehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-bubbles-false.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-bubbles-false.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-bubbles-false.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-bubbles-false.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,68 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt; Event.bubbles attribute is set to false &lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#dom-event-initevent&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#concept-event-dispatch&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;table id=&quot;table&quot; border=&quot;1&quot; style=&quot;display: none&quot;&gt;
+    &lt;tbody id=&quot;table-body&quot;&gt;
+    &lt;tr id=&quot;table-row&quot;&gt;
+        &lt;td id=&quot;table-cell&quot;&gt;Shady Grove&lt;/td&gt;
+        &lt;td&gt;Aeolian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr id=&quot;parent&quot;&gt;
+        &lt;td id=&quot;target&quot;&gt;Over the river, Charlie&lt;/td&gt;
+        &lt;td&gt;Dorian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;/tbody&gt;
+&lt;/table&gt;
+&lt;script&gt;
+test(function() {
+    var event_type = &quot;click&quot;;
+    var target = document.getElementById(&quot;target&quot;);
+    var targets = [
+        window,
+        document,
+        document.documentElement,
+        document.body,
+        document.getElementById(&quot;table&quot;),
+        document.getElementById(&quot;table-body&quot;),
+        document.getElementById(&quot;parent&quot;),
+        target,
+    ];
+    var expected_targets = targets.concat(target);
+    var phases = [
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.AT_TARGET,
+        Event.AT_TARGET,
+    ];
+
+
+    var actual_targets = [], actual_phases = [];
+    var test_event = function(evt) {
+        actual_targets.push(evt.currentTarget);
+        actual_phases.push(evt.eventPhase);
+    }
+
+    for (var i = 0; i &lt; targets.length; i++) {
+        targets[i].addEventListener(event_type, test_event, true);
+        targets[i].addEventListener(event_type, test_event, false);
+    }
+
+    var evt = document.createEvent(&quot;Event&quot;);
+    evt.initEvent(event_type, false, true);
+
+    target.dispatchEvent(evt);
+
+    assert_array_equals(actual_targets, expected_targets, &quot;targets&quot;);
+    assert_array_equals(actual_phases, phases, &quot;phases&quot;);
+}, &quot;Event.dispatchEvent with Event.bubbles set to false.&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchhandlerschangedexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchhandlerschangedexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-handlers-changed-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-handlers-changed-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-handlers-changed-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-handlers-changed-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS  Dispatch additional events inside an event listener  
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchhandlerschangedhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchhandlerschangedhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-handlers-changed.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-handlers-changed.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-handlers-changed.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-handlers-changed.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,92 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt; Dispatch additional events inside an event listener &lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#concept-event-dispatch&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+
+&lt;table id=&quot;table&quot; border=&quot;1&quot; style=&quot;display: none&quot;&gt;
+    &lt;tbody id=&quot;table-body&quot;&gt;
+    &lt;tr id=&quot;table-row&quot;&gt;
+        &lt;td id=&quot;table-cell&quot;&gt;Shady Grove&lt;/td&gt;
+        &lt;td&gt;Aeolian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr id=&quot;parent&quot;&gt;
+        &lt;td id=&quot;target&quot;&gt;Over the river, Charlie&lt;/td&gt;
+        &lt;td&gt;Dorian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;/tbody&gt;
+&lt;/table&gt;
+
+&lt;script&gt;
+async_test(function() {
+  var event_type = &quot;bar&quot;;
+  var target = document.getElementById(&quot;target&quot;);
+  var parent = document.getElementById(&quot;parent&quot;);
+  var tbody = document.getElementById(&quot;table-body&quot;);
+  var table = document.getElementById(&quot;table&quot;);
+  var body = document.body;
+  var html = document.documentElement;
+  var targets = [window, document, html, body, table, tbody, parent, target];
+  var expected_targets = [
+    window,
+    document,
+    html,
+    body,
+    table,
+    tbody,
+    parent,
+    target,
+    target,
+    parent,
+    tbody,
+    table,
+    body,
+    html,
+    document,
+    window
+  ];
+  var expected_listeners = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1];
+
+  var actual_targets = [], actual_listeners = [];
+  var test_event_function = function(i) {
+    return this.step_func(function(evt) {
+      actual_targets.push(evt.currentTarget);
+      actual_listeners.push(i);
+
+      if (evt.eventPhase != evt.BUBBLING_PHASE &amp;&amp; evt.currentTarget.foo != 1) {
+        evt.currentTarget.removeEventListener(event_type, event_handlers[0], true);
+        evt.currentTarget.addEventListener(event_type, event_handlers[2], true);
+        evt.currentTarget.foo = 1;
+      }
+
+      if (evt.eventPhase != evt.CAPTURING_PHASE &amp;&amp; evt.currentTarget.foo != 3) {
+        evt.currentTarget.removeEventListener(event_type, event_handlers[0], false);
+        evt.currentTarget.addEventListener(event_type, event_handlers[3], false);
+        evt.currentTarget.foo = 3;
+      }
+    });
+  }.bind(this);
+  var event_handlers = [
+    test_event_function(0),
+    test_event_function(1),
+    test_event_function(2),
+    test_event_function(3),
+  ];
+
+  for (var i = 0; i &lt; targets.length; ++i) {
+    targets[i].addEventListener(event_type, event_handlers[0], true);
+    targets[i].addEventListener(event_type, event_handlers[1], false);
+  }
+
+  var evt = document.createEvent(&quot;Event&quot;);
+  evt.initEvent(event_type, true, true);
+  target.dispatchEvent(evt);
+
+  assert_array_equals(actual_targets, expected_targets, &quot;actual_targets&quot;);
+  assert_array_equals(actual_listeners, expected_listeners, &quot;actual_listeners&quot;);
+
+  this.done();
+});
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchomittedcaptureexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchomittedcaptureexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-omitted-capture-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-omitted-capture-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-omitted-capture-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-omitted-capture-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS EventTarget.addEventListener with the capture argument omitted 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchomittedcapturehtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchomittedcapturehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-omitted-capture.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-omitted-capture.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-omitted-capture.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-omitted-capture.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,70 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;EventTarget.addEventListener: capture argument omitted&lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#dom-eventtarget-addeventlistener&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#concept-event-dispatch&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;table id=&quot;table&quot; border=&quot;1&quot; style=&quot;display: none&quot;&gt;
+    &lt;tbody id=&quot;table-body&quot;&gt;
+    &lt;tr id=&quot;table-row&quot;&gt;
+        &lt;td id=&quot;table-cell&quot;&gt;Shady Grove&lt;/td&gt;
+        &lt;td&gt;Aeolian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr id=&quot;parent&quot;&gt;
+        &lt;td id=&quot;target&quot;&gt;Over the river, Charlie&lt;/td&gt;
+        &lt;td&gt;Dorian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;/tbody&gt;
+&lt;/table&gt;
+&lt;script&gt;
+test(function() {
+    var event_type = &quot;foo&quot;;
+    var target = document.getElementById(&quot;target&quot;);
+    var targets = [
+        target,
+        document.getElementById(&quot;parent&quot;),
+        document.getElementById(&quot;table-body&quot;),
+        document.getElementById(&quot;table&quot;),
+        document.body,
+        document.documentElement,
+        document,
+        window
+    ];
+    var phases = [
+        Event.AT_TARGET,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE
+    ];
+
+    var actual_targets = [], actual_phases = [];
+    var test_event = function(evt) {
+        actual_targets.push(evt.currentTarget);
+        actual_phases.push(evt.eventPhase);
+    }
+
+    for (var i = 0; i &lt; targets.length; i++) {
+        targets[i].addEventListener(event_type, test_event);
+    }
+
+    var evt = document.createEvent(&quot;Event&quot;);
+    evt.initEvent(event_type, true, true);
+
+    target.dispatchEvent(evt);
+
+    for (var i = 0; i &lt; targets.length; i++) {
+        targets[i].removeEventListener(event_type, test_event);
+    }
+
+    target.dispatchEvent(evt);
+
+    assert_array_equals(actual_targets, targets, &quot;targets&quot;);
+    assert_array_equals(actual_phases, phases, &quot;phases&quot;);
+}, &quot;EventTarget.addEventListener with the capture argument omitted&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchredispatchexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchredispatchexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-redispatch-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL EventTarget#dispatchEvent(): redispatching a native event assert_true: Should be trusted when first handled expected true got undefined
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchredispatchhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchredispatchhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-redispatch.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=urf-8&gt;
+&lt;title&gt;EventTarget#dispatchEvent(): redispatching a native event&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;script&gt;
+async_test(function() {
+  var event;
+  document.addEventListener(&quot;DOMContentLoaded&quot;, this.step_func(function(e) {
+    assert_true(e.isTrusted, &quot;Should be trusted when first handled&quot;);
+    event = e;
+  }), true);
+
+  window.onload = this.step_func_done(function() {
+    var received = 0;
+    var target = document.createElement(&quot;span&quot;);
+    target.addEventListener(&quot;DOMContentLoaded&quot;, this.step_func(function(e) {
+      assert_false(e.isTrusted, &quot;Should not be trusted during redispatching&quot;);
+      ++received;
+    }), true);
+    assert_true(event.isTrusted, &quot;Should be trusted before redispatching&quot;);
+    target.dispatchEvent(event);
+    assert_false(event.isTrusted, &quot;Should not be trusted after redispatching&quot;);
+    assert_equals(received, 1);
+  });
+});
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchreenterexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchreenterexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-reenter-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-reenter-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-reenter-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-reenter-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS  Dispatch additional events inside an event listener  
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchreenterhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchreenterhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-reenter.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-reenter.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-reenter.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-reenter.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,66 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt; Dispatch additional events inside an event listener &lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;table id=&quot;table&quot; border=&quot;1&quot; style=&quot;display: none&quot;&gt;
+    &lt;tbody id=&quot;table-body&quot;&gt;
+    &lt;tr id=&quot;table-row&quot;&gt;
+        &lt;td id=&quot;table-cell&quot;&gt;Shady Grove&lt;/td&gt;
+        &lt;td&gt;Aeolian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr id=&quot;parent&quot;&gt;
+        &lt;td id=&quot;target&quot;&gt;Over the river, Charlie&lt;/td&gt;
+        &lt;td&gt;Dorian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;/tbody&gt;
+&lt;/table&gt;
+&lt;script&gt;
+test(function() {
+    var event_type = &quot;foo&quot;;
+    var target = document.getElementById(&quot;target&quot;);
+    var parent = document.getElementById(&quot;parent&quot;);
+    var tbody = document.getElementById(&quot;table-body&quot;);
+    var table = document.getElementById(&quot;table&quot;);
+    var body = document.body;
+    var html = document.documentElement;
+    var targets = [window, document, html, body, table, tbody, parent, target];
+    var expected_targets = [
+        window, document, html, body, table,
+        target, parent, tbody,
+        table, body, html, document, window,
+        tbody, parent, target];
+    var actual_targets = [];
+    var expected_types = [
+        &quot;foo&quot;, &quot;foo&quot;, &quot;foo&quot;, &quot;foo&quot;, &quot;foo&quot;,
+        &quot;bar&quot;, &quot;bar&quot;, &quot;bar&quot;,
+        &quot;bar&quot;, &quot;bar&quot;, &quot;bar&quot;, &quot;bar&quot;, &quot;bar&quot;,
+        &quot;foo&quot;, &quot;foo&quot;, &quot;foo&quot;
+    ];
+
+    var actual_targets = [], actual_types = [];
+    var test_event = this.step_func(function(evt) {
+        actual_targets.push(evt.currentTarget);
+        actual_types.push(evt.type);
+
+        if (table == evt.currentTarget &amp;&amp; event_type == evt.type) {
+            var e = document.createEvent(&quot;Event&quot;);
+            e.initEvent(&quot;bar&quot;, true, true);
+            target.dispatchEvent(e);
+        }
+    });
+
+    for (var i = 0; i &lt; targets.length; ++i) {
+        targets[i].addEventListener(event_type, test_event, true);
+        targets[i].addEventListener(&quot;bar&quot;, test_event, false);
+    }
+
+    var evt = document.createEvent(&quot;Event&quot;);
+    evt.initEvent(event_type, false, true);
+    target.dispatchEvent(evt);
+
+    assert_array_equals(actual_targets, expected_targets, &quot;actual_targets&quot;);
+    assert_array_equals(actual_types, expected_types, &quot;actual_types&quot;);
+});
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchtargetmovedexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchtargetmovedexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-moved-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-target-moved-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-moved-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-moved-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS Event propagation path when an element in it is moved within the DOM 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchtargetmovedhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchtargetmovedhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-moved.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-target-moved.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-moved.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-moved.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt; Determined event propagation path - target moved &lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#concept-event-dispatch&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;table id=&quot;table&quot; border=&quot;1&quot; style=&quot;display: none&quot;&gt;
+    &lt;tbody id=&quot;table-body&quot;&gt;
+    &lt;tr id=&quot;table-row&quot;&gt;
+        &lt;td id=&quot;table-cell&quot;&gt;Shady Grove&lt;/td&gt;
+        &lt;td&gt;Aeolian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr id=&quot;parent&quot;&gt;
+        &lt;td id=&quot;target&quot;&gt;Over the river, Charlie&lt;/td&gt;
+        &lt;td&gt;Dorian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;/tbody&gt;
+&lt;/table&gt;
+&lt;script&gt;
+test(function() {
+    var event_type = &quot;foo&quot;;
+    var target = document.getElementById(&quot;target&quot;);
+    var parent = document.getElementById(&quot;parent&quot;);
+    var tbody = document.getElementById(&quot;table-body&quot;);
+    var table = document.getElementById(&quot;table&quot;);
+    var body = document.body;
+    var html = document.documentElement;
+    var targets = [window, document, html, body, table, tbody, parent, target];
+    var expected_targets = targets.concat([target, parent, tbody, table, body, html, document, window]);
+    var phases = [
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.AT_TARGET,
+        Event.AT_TARGET,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+    ];
+
+    var actual_targets = [], actual_phases = [];
+    var test_event = this.step_func(function(evt) {
+        if (parent === target.parentNode) {
+            var table_row = document.getElementById(&quot;table-row&quot;);
+            table_row.appendChild(parent.removeChild(target));
+        }
+
+        actual_targets.push(evt.currentTarget);
+        actual_phases.push(evt.eventPhase);
+    });
+
+    for (var i = 0; i &lt; targets.length; i++) {
+        targets[i].addEventListener(event_type, test_event, true);
+        targets[i].addEventListener(event_type, test_event, false);
+    }
+
+    var evt = document.createEvent(&quot;Event&quot;);
+    evt.initEvent(event_type, true, true);
+    target.dispatchEvent(evt);
+
+    assert_array_equals(actual_targets, expected_targets, &quot;targets&quot;);
+    assert_array_equals(actual_phases, phases, &quot;phases&quot;);
+}, &quot;Event propagation path when an element in it is moved within the DOM&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchtargetremovedexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchtargetremovedexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-removed-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-target-removed-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-removed-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-removed-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS Event propagation path when an element in it is removed from the DOM 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchtargetremovedhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventdispatchtargetremovedhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-removed.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-dispatch-target-removed.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-removed.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-target-removed.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,72 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Determined event propagation path - target removed&lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#concept-event-dispatch&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;table id=&quot;table&quot; border=&quot;1&quot; style=&quot;display: none&quot;&gt;
+    &lt;tbody id=&quot;table-body&quot;&gt;
+    &lt;tr id=&quot;table-row&quot;&gt;
+        &lt;td id=&quot;table-cell&quot;&gt;Shady Grove&lt;/td&gt;
+        &lt;td&gt;Aeolian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr id=&quot;parent&quot;&gt;
+        &lt;td id=&quot;target&quot;&gt;Over the river, Charlie&lt;/td&gt;
+        &lt;td&gt;Dorian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;/tbody&gt;
+&lt;/table&gt;
+&lt;script&gt;
+test(function() {
+    var event_type = &quot;foo&quot;;
+    var target = document.getElementById(&quot;target&quot;);
+    var parent = document.getElementById(&quot;parent&quot;);
+    var tbody = document.getElementById(&quot;table-body&quot;);
+    var table = document.getElementById(&quot;table&quot;);
+    var body = document.body;
+    var html = document.documentElement;
+    var targets = [window, document, html, body, table, tbody, parent, target];
+    var expected_targets = targets.concat([target, parent, tbody, table, body, html, document, window]);
+    var phases = [
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.CAPTURING_PHASE,
+        Event.AT_TARGET,
+        Event.AT_TARGET,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+        Event.BUBBLING_PHASE,
+    ];
+
+    var actual_targets = [], actual_phases = [];
+    var test_event = this.step_func(function(evt) {
+        if (parent === target.parentNode) {
+            parent.removeChild(target);
+        }
+
+        actual_targets.push(evt.currentTarget);
+        actual_phases.push(evt.eventPhase);
+    });
+
+    for (var i = 0; i &lt; targets.length; i++) {
+        targets[i].addEventListener(event_type, test_event, true);
+        targets[i].addEventListener(event_type, test_event, false);
+    }
+
+    var evt = document.createEvent(&quot;Event&quot;);
+    evt.initEvent(event_type, true, true);
+    target.dispatchEvent(evt);
+
+    assert_array_equals(actual_targets, expected_targets, &quot;targets&quot;);
+    assert_array_equals(actual_phases, phases, &quot;phases&quot;);
+}, &quot;Event propagation path when an element in it is removed from the DOM&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventinitEventexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventinitEventexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-initEvent-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-initEvent-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-initEvent-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-initEvent-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+
+FAIL Properties of initEvent(type, true, true) assert_equals: isTrusted expected (boolean) false but got (undefined) undefined
+FAIL Properties of initEvent(type, true, false) assert_equals: isTrusted expected (boolean) false but got (undefined) undefined
+FAIL Properties of initEvent(type, false, true) assert_equals: isTrusted expected (boolean) false but got (undefined) undefined
+FAIL Properties of initEvent(type, false, false) assert_equals: isTrusted expected (boolean) false but got (undefined) undefined
+PASS Calling initEvent multiple times (getting type). 
+PASS Calling initEvent multiple times (not getting type). 
+PASS Calling initEvent must not have an effect during dispatching. 
+PASS Calling initEvent must unset the stop propagation flag. 
+PASS Calling initEvent during propagation. 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventinitEventhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventinitEventhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-initEvent.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-initEvent.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-initEvent.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-initEvent.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,121 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Event.initEvent&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Ms2ger&quot; href=&quot;mailto:Ms2ger@gmail.com&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+var booleans = [true, false];
+booleans.forEach(function(bubbles) {
+  booleans.forEach(function(cancelable) {
+    test(function() {
+      var e = document.createEvent(&quot;Event&quot;)
+      e.initEvent(&quot;type&quot;, bubbles, cancelable)
+
+      // Step 3.
+      // Can't test the stop propagation flag and stop immediate propagation flag.
+      assert_equals(e.defaultPrevented, false, &quot;defaultPrevented&quot;)
+      // Step 4.
+      assert_equals(e.isTrusted, false, &quot;isTrusted&quot;)
+      // Step 5.
+      assert_equals(e.target, null, &quot;target&quot;)
+      // Step 6.
+      assert_equals(e.type, &quot;type&quot;, &quot;type&quot;)
+      // Step 7.
+      assert_equals(e.bubbles, bubbles, &quot;bubbles&quot;)
+      // Step 8.
+      assert_equals(e.cancelable, cancelable, &quot;cancelable&quot;)
+    }, &quot;Properties of initEvent(type, &quot; + bubbles + &quot;, &quot; + cancelable + &quot;)&quot;)
+  })
+})
+
+test(function() {
+  var e = document.createEvent(&quot;Event&quot;)
+  e.initEvent(&quot;type 1&quot;, true, false)
+  assert_equals(e.type, &quot;type 1&quot;, &quot;type (first init)&quot;)
+  assert_equals(e.bubbles, true, &quot;bubbles (first init)&quot;)
+  assert_equals(e.cancelable, false, &quot;cancelable (first init)&quot;)
+
+  e.initEvent(&quot;type 2&quot;, false, true)
+  assert_equals(e.type, &quot;type 2&quot;, &quot;type (second init)&quot;)
+  assert_equals(e.bubbles, false, &quot;bubbles (second init)&quot;)
+  assert_equals(e.cancelable, true, &quot;cancelable (second init)&quot;)
+}, &quot;Calling initEvent multiple times (getting type).&quot;)
+
+test(function() {
+  // https://bugzilla.mozilla.org/show_bug.cgi?id=998809
+  var e = document.createEvent(&quot;Event&quot;)
+  e.initEvent(&quot;type 1&quot;, true, false)
+  assert_equals(e.bubbles, true, &quot;bubbles (first init)&quot;)
+  assert_equals(e.cancelable, false, &quot;cancelable (first init)&quot;)
+
+  e.initEvent(&quot;type 2&quot;, false, true)
+  assert_equals(e.type, &quot;type 2&quot;, &quot;type (second init)&quot;)
+  assert_equals(e.bubbles, false, &quot;bubbles (second init)&quot;)
+  assert_equals(e.cancelable, true, &quot;cancelable (second init)&quot;)
+}, &quot;Calling initEvent multiple times (not getting type).&quot;)
+
+// Step 2.
+async_test(function() {
+  // https://www.w3.org/Bugs/Public/show_bug.cgi?id=17715
+
+  var e = document.createEvent(&quot;Event&quot;)
+  e.initEvent(&quot;type&quot;, false, false)
+  assert_equals(e.type, &quot;type&quot;, &quot;type (first init)&quot;)
+  assert_equals(e.bubbles, false, &quot;bubbles (first init)&quot;)
+  assert_equals(e.cancelable, false, &quot;cancelable (first init)&quot;)
+
+  var target = document.createElement(&quot;div&quot;)
+  target.addEventListener(&quot;type&quot;, this.step_func(function() {
+    e.initEvent(&quot;fail&quot;, true, true)
+    assert_equals(e.type, &quot;type&quot;, &quot;type (second init)&quot;)
+    assert_equals(e.bubbles, false, &quot;bubbles (second init)&quot;)
+    assert_equals(e.cancelable, false, &quot;cancelable (second init)&quot;)
+  }), false)
+
+  assert_equals(target.dispatchEvent(e), true, &quot;dispatchEvent must return true&quot;)
+
+  this.done()
+}, &quot;Calling initEvent must not have an effect during dispatching.&quot;)
+
+async_test(function() {
+  var e = document.createEvent(&quot;Event&quot;)
+  e.initEvent(&quot;type&quot;, false, false)
+  e.stopPropagation()
+
+  var target = document.createElement(&quot;div&quot;)
+  target.addEventListener(&quot;type&quot;, this.step_func(function() {
+    assert_unreached(&quot;&quot;)
+  }), false)
+  assert_equals(target.dispatchEvent(e), true, &quot;dispatchEvent must return true&quot;)
+  assert_equals(target.dispatchEvent(e), true, &quot;dispatchEvent must return true&quot;)
+
+  e.initEvent(&quot;type&quot;, false, false)
+  var called = false
+  var target = document.createElement(&quot;div&quot;)
+  target.addEventListener(&quot;type&quot;, this.step_func(function() {
+    called = true
+  }), false)
+  assert_false(called)
+  assert_equals(target.dispatchEvent(e), true, &quot;dispatchEvent must return true&quot;)
+  assert_true(called)
+
+  this.done()
+}, &quot;Calling initEvent must unset the stop propagation flag.&quot;)
+
+async_test(function() {
+  var e = document.createEvent(&quot;Event&quot;)
+  e.initEvent(&quot;type&quot;, false, false)
+
+  var target = document.createElement(&quot;div&quot;)
+  target.addEventListener(&quot;type&quot;, this.step_func(function() {
+    e.initEvent(&quot;type2&quot;, true, true);
+    assert_equals(e.type, &quot;type&quot;, &quot;initEvent type setter should short-circuit&quot;);
+    assert_false(e.bubbles, &quot;initEvent bubbles setter should short-circuit&quot;);
+    assert_false(e.cancelable, &quot;initEvent cancelable setter should short-circuit&quot;);
+  }), false)
+  assert_equals(target.dispatchEvent(e), true, &quot;dispatchEvent must return true&quot;)
+
+  this.done()
+}, &quot;Calling initEvent during propagation.&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventpropagationexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventpropagationexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-propagation-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-propagation-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-propagation-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-propagation-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+
+PASS Newly-created Event 
+PASS After stopPropagation() 
+FAIL Reinitialized after stopPropagation() assert_equals: Propagation flag expected true but got false
+PASS After stopImmediatePropagation() 
+FAIL Reinitialized after stopImmediatePropagation() assert_equals: Propagation flag expected true but got false
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventpropagationhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventpropagationhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-propagation.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-propagation.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-propagation.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-propagation.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,38 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Event propagation tests&lt;/title&gt;
+&lt;link rel=author title=&quot;Aryeh Gregor&quot; href=ayg@aryeh.name&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script&gt;
+&quot;use strict&quot;;
+
+function testPropagationFlag(ev, expected, desc) {
+  test(function() {
+    var called = false;
+    var callback = function() { called = true };
+    document.head.addEventListener(&quot;foo&quot;, callback);
+    document.head.dispatchEvent(ev);
+    // Gecko resets the flags after dispatching; it will happily dispatch
+    // the event the second time around.
+    document.head.dispatchEvent(ev);
+    assert_equals(called, expected, &quot;Propagation flag&quot;);
+    document.head.removeEventListener(&quot;foo&quot;, callback);
+  }, desc);
+}
+
+var ev = document.createEvent(&quot;Event&quot;);
+ev.initEvent(&quot;foo&quot;, true, false);
+testPropagationFlag(ev, true, &quot;Newly-created Event&quot;);
+ev.stopPropagation();
+testPropagationFlag(ev, false, &quot;After stopPropagation()&quot;);
+ev.initEvent(&quot;foo&quot;, true, false);
+testPropagationFlag(ev, true, &quot;Reinitialized after stopPropagation()&quot;);
+
+var ev = document.createEvent(&quot;Event&quot;);
+ev.initEvent(&quot;foo&quot;, true, false);
+ev.stopImmediatePropagation();
+testPropagationFlag(ev, false, &quot;After stopImmediatePropagation()&quot;);
+ev.initEvent(&quot;foo&quot;, true, false);
+testPropagationFlag(ev, true, &quot;Reinitialized after stopImmediatePropagation()&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventtypeemptyexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventtypeemptyexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-empty-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-type-empty-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-empty-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-empty-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+PASS initEvent 
+PASS Constructor 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventtypeemptyhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventtypeemptyhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-empty.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-type-empty.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-empty.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-empty.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Event.type set to the empty string&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Ms2ger&quot; href=&quot;mailto:Ms2ger@gmail.com&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#dom-event-type&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+function do_test(t, e) {
+  assert_equals(e.type, &quot;&quot;, &quot;type&quot;);
+  assert_equals(e.bubbles, false, &quot;bubbles&quot;);
+  assert_equals(e.cancelable, false, &quot;cancelable&quot;);
+
+  var target = document.createElement(&quot;div&quot;);
+  var handled = false;
+  target.addEventListener(&quot;&quot;, t.step_func(function(e) {
+    handled = true;
+  }));
+  assert_true(target.dispatchEvent(e));
+  assert_true(handled);
+}
+
+async_test(function() {
+  var e = document.createEvent(&quot;Event&quot;);
+  e.initEvent(&quot;&quot;, false, false);
+  do_test(this, e);
+  this.done();
+}, &quot;initEvent&quot;);
+
+async_test(function() {
+  var e = new Event(&quot;&quot;);
+  do_test(this, e);
+  this.done();
+}, &quot;Constructor&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventtypeexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventtypeexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-type-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+
+PASS Event.type should initially be the empty string 
+PASS Event.type should be initialized by initEvent 
+PASS Event.type should be initialized by the constructor 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventtypehtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventtypehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/Event-type.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-type.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Event.type&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Ms2ger&quot; href=&quot;mailto:Ms2ger@gmail.com&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#dom-event-type&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+test(function() {
+  var e = document.createEvent(&quot;Event&quot;)
+  assert_equals(e.type, &quot;&quot;);
+}, &quot;Event.type should initially be the empty string&quot;);
+test(function() {
+  var e = document.createEvent(&quot;Event&quot;)
+  e.initEvent(&quot;foo&quot;, false, false)
+  assert_equals(e.type, &quot;foo&quot;)
+}, &quot;Event.type should be initialized by initEvent&quot;);
+test(function() {
+  var e = new Event(&quot;bar&quot;)
+  assert_equals(e.type, &quot;bar&quot;)
+}, &quot;Event.type should be initialized by the constructor&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetaddEventListenerexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventTargetaddEventListenerexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/EventTarget-addEventListener-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS Adding a null event listener should succeed 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetaddEventListenerhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventTargetaddEventListenerhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/EventTarget-addEventListener.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-addEventListener.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;EventTarget.addEventListener&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Ms2ger&quot; href=&quot;mailto:Ms2ger@gmail.com&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#dom-eventtarget-addeventlistener&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+// Step 1.
+test(function() {
+  assert_equals(document.addEventListener(&quot;x&quot;, null, false), undefined);
+  assert_equals(document.addEventListener(&quot;x&quot;, null, true), undefined);
+  assert_equals(document.addEventListener(&quot;x&quot;, null), undefined);
+}, &quot;Adding a null event listener should succeed&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetdispatchEventexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventTargetdispatchEventexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/EventTarget-dispatchEvent-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+CONSOLE MESSAGE: line 60: Error
+
+PASS Calling dispatchEvent(null). 
+PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (CustomEvent). 
+PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (Event). 
+PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (Events). 
+PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (HTMLEvents). 
+PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (KeyboardEvent). 
+FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (KeyEvents). NotSupportedError: DOM Exception 9
+PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (MessageEvent). 
+PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (MouseEvent). 
+PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (MouseEvents). 
+FAIL If the event's initialized flag is not set, an InvalidStateError must be thrown (TouchEvent). NotSupportedError: DOM Exception 9
+PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (UIEvent). 
+PASS If the event's initialized flag is not set, an InvalidStateError must be thrown (UIEvents). 
+PASS If the event's dispatch flag is set, an InvalidStateError must be thrown. 
+PASS Exceptions from event listeners must not be propagated. 
+FAIL Event listeners added during dispatch should be called assert_array_equals: lengths differ, expected 2 got 0
+PASS Event listeners should be called in order of addition 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetdispatchEventreturnvalueexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventTargetdispatchEventreturnvalueexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/EventTarget-dispatchEvent-returnvalue-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS Return value of EventTarget.dispatchEvent. 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetdispatchEventreturnvaluehtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventTargetdispatchEventreturnvaluehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/EventTarget-dispatchEvent-returnvalue.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,43 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;EventTarget.dispatchEvent: return value&lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#concept-event-dispatch&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#dom-event-preventdefault&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#dom-event-defaultprevented&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;table id=&quot;table&quot; border=&quot;1&quot; style=&quot;display: none&quot;&gt;
+    &lt;tbody id=&quot;table-body&quot;&gt;
+    &lt;tr id=&quot;table-row&quot;&gt;
+        &lt;td id=&quot;table-cell&quot;&gt;Shady Grove&lt;/td&gt;
+        &lt;td&gt;Aeolian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;tr id=&quot;parent&quot;&gt;
+        &lt;td id=&quot;target&quot;&gt;Over the river, Charlie&lt;/td&gt;
+        &lt;td&gt;Dorian&lt;/td&gt;
+    &lt;/tr&gt;
+    &lt;/tbody&gt;
+&lt;/table&gt;
+&lt;script&gt;
+test(function() {
+    var event_type = &quot;foo&quot;;
+    var target = document.getElementById(&quot;target&quot;);
+    var parent = document.getElementById(&quot;parent&quot;);
+    var default_prevented;
+
+    parent.addEventListener(event_type, function(e) {}, true);
+    target.addEventListener(event_type, function(e) {
+        evt.preventDefault();
+        default_prevented = evt.defaultPrevented;
+    }, true);
+    target.addEventListener(event_type, function(e) {}, true);
+
+    var evt = document.createEvent(&quot;Event&quot;);
+    evt.initEvent(event_type, true, true);
+
+    assert_true(parent.dispatchEvent(evt));
+    assert_false(target.dispatchEvent(evt));
+    assert_true(default_prevented);
+}, &quot;Return value of EventTarget.dispatchEvent.&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetdispatchEventhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventTargetdispatchEventhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/EventTarget-dispatchEvent.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,104 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;EventTarget.dispatchEvent&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Olli Pettay&quot; href=&quot;mailto:Olli.Pettay@gmail.com&quot;&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Ms2ger&quot; href=&quot;mailto:Ms2ger@gmail.com&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#dom-eventtarget-dispatchevent&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/dom/nodes/Document-createEvent.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+setup({
+  &quot;allow_uncaught_exception&quot;: true,
+})
+
+test(function() {
+  assert_throws(new TypeError(), function() { document.dispatchEvent(null) })
+}, &quot;Calling dispatchEvent(null).&quot;)
+
+aliases.forEach(function(alias) {
+  test(function() {
+    var e = document.createEvent(alias[0])
+    assert_equals(e.type, &quot;&quot;, &quot;Event type should be empty string before initialization&quot;)
+    assert_throws(&quot;InvalidStateError&quot;, function() { document.dispatchEvent(e) })
+  }, &quot;If the event's initialized flag is not set, an InvalidStateError must be thrown (&quot; + alias [0] + &quot;).&quot;)
+})
+
+var dispatch_dispatch = async_test(&quot;If the event's dispatch flag is set, an InvalidStateError must be thrown.&quot;)
+dispatch_dispatch.step(function() {
+  var e = document.createEvent(&quot;Event&quot;)
+  e.initEvent(&quot;type&quot;, false, false)
+
+  var target = document.createElement(&quot;div&quot;)
+  target.addEventListener(&quot;type&quot;, dispatch_dispatch.step_func(function() {
+    assert_throws(&quot;InvalidStateError&quot;, function() {
+      target.dispatchEvent(e)
+    })
+    assert_throws(&quot;InvalidStateError&quot;, function() {
+      document.dispatchEvent(e)
+    })
+  }), false)
+
+  assert_equals(target.dispatchEvent(e), true, &quot;dispatchEvent must return true&quot;)
+
+  dispatch_dispatch.done()
+})
+
+test(function() {
+  // https://www.w3.org/Bugs/Public/show_bug.cgi?id=17713
+  // https://www.w3.org/Bugs/Public/show_bug.cgi?id=17714
+
+  var e = document.createEvent(&quot;Event&quot;)
+  e.initEvent(&quot;type&quot;, false, false)
+
+  var called = []
+
+  var target = document.createElement(&quot;div&quot;)
+  target.addEventListener(&quot;type&quot;, function() {
+    called.push(&quot;First&quot;)
+    throw new Error()
+  }, false)
+
+  target.addEventListener(&quot;type&quot;, function() {
+    called.push(&quot;Second&quot;)
+  }, false)
+
+  assert_equals(target.dispatchEvent(e), true, &quot;dispatchEvent must return true&quot;)
+  assert_array_equals(called, [&quot;First&quot;, &quot;Second&quot;],
+                      &quot;Should have continued to call other event listeners&quot;)
+}, &quot;Exceptions from event listeners must not be propagated.&quot;)
+
+async_test(function() {
+  var results = []
+  var outerb = document.createElement(&quot;b&quot;)
+  var middleb = outerb.appendChild(document.createElement(&quot;b&quot;))
+  var innerb = middleb.appendChild(document.createElement(&quot;b&quot;))
+  outerb.addEventListener(&quot;x&quot;, this.step_func(function() {
+    middleb.addEventListener(&quot;x&quot;, this.step_func(function() {
+      results.push(&quot;middle&quot;)
+    }), true)
+    results.push(&quot;outer&quot;)
+  }), true)
+  innerb.dispatchEvent(new Event(&quot;x&quot;))
+  assert_array_equals(results, [&quot;outer&quot;, &quot;middle&quot;])
+  this.done()
+}, &quot;Event listeners added during dispatch should be called&quot;);
+
+async_test(function() {
+  var results = []
+  var b = document.createElement(&quot;b&quot;)
+  b.addEventListener(&quot;x&quot;, this.step_func(function() {
+    results.push(1)
+  }), true)
+  b.addEventListener(&quot;x&quot;, this.step_func(function() {
+    results.push(2)
+  }), false)
+  b.addEventListener(&quot;x&quot;, this.step_func(function() {
+    results.push(3)
+  }), true)
+  b.dispatchEvent(new Event(&quot;x&quot;))
+  assert_array_equals(results, [1, 2, 3])
+  this.done()
+}, &quot;Event listeners should be called in order of addition&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetremoveEventListenerexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventTargetremoveEventListenerexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/EventTarget-removeEventListener-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS removing a null event listener should succeed 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventTargetremoveEventListenerhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsEventTargetremoveEventListenerhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/EventTarget-removeEventListener.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/EventTarget-removeEventListener.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;EventTarget.removeEventListener&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Ms2ger&quot; href=&quot;mailto:Ms2ger@gmail.com&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://dom.spec.whatwg.org/#dom-eventtarget-removeeventlistener&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+// Step 1.
+test(function() {
+  assert_equals(document.removeEventListener(&quot;x&quot;, null, false), undefined);
+  assert_equals(document.removeEventListener(&quot;x&quot;, null, true), undefined);
+  assert_equals(document.removeEventListener(&quot;x&quot;, null), undefined);
+}, &quot;removing a null event listener should succeed&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsProgressEventexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomeventsProgressEventexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/ProgressEvent-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/ProgressEvent-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/ProgressEvent-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/ProgressEvent-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+
+FAIL Default event values. assert_equals: expected (boolean) false but got (undefined) undefined
+FAIL document.createEvent() should not work with ProgressEvent. assert_throws: function &quot;function () {
+    document.createEvent(&quot;ProgressEvent&quot;)
+  }&quot; did not throw
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsProgressEventhtmlfromrev189470trunkLayoutTestshttptestsw3cdomeventsProgressEventhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/ProgressEvent.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/events/ProgressEvent.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/ProgressEvent.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/ProgressEvent.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;ProgressEvent constructor&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;script&gt;
+test(function() {
+  var ev = new ProgressEvent(&quot;test&quot;)
+  assert_equals(ev.type, &quot;test&quot;)
+  assert_equals(ev.target, null)
+  assert_equals(ev.currentTarget, null)
+  assert_equals(ev.eventPhase, Event.NONE)
+  assert_equals(ev.bubbles, false)
+  assert_equals(ev.cancelable, false)
+  assert_equals(ev.defaultPrevented, false)
+  assert_equals(ev.isTrusted, false)
+  assert_true(ev.timeStamp &gt; 0)
+  assert_true(&quot;initEvent&quot; in ev)
+}, &quot;Default event values.&quot;)
+test(function() {
+  assert_throws(&quot;NotSupportedError&quot;, function() {
+    document.createEvent(&quot;ProgressEvent&quot;)
+  })
+}, &quot;document.createEvent() should not work with ProgressEvent.&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomhistoricalexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomhistoricalexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/historical-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,60 @@
</span><ins>+
+FAIL Historical DOM features must be removed: CDATASection assert_equals: expected (undefined) undefined but got (object) object &quot;[object CDATASectionConstructor]&quot;
+PASS Historical DOM features must be removed: DOMConfiguration 
+PASS Historical DOM features must be removed: DOMError 
+PASS Historical DOM features must be removed: DOMErrorHandler 
+PASS Historical DOM features must be removed: DOMImplementationList 
+PASS Historical DOM features must be removed: DOMImplementationSource 
+PASS Historical DOM features must be removed: DOMLocator 
+PASS Historical DOM features must be removed: DOMObject 
+PASS Historical DOM features must be removed: DOMUserData 
+FAIL Historical DOM features must be removed: Entity assert_equals: expected (undefined) undefined but got (object) object &quot;[object EntityConstructor]&quot;
+FAIL Historical DOM features must be removed: EntityReference assert_equals: expected (undefined) undefined but got (object) object &quot;[object EntityReferenceConstructor]&quot;
+FAIL Historical DOM features must be removed: EventException assert_equals: expected (undefined) undefined but got (object) object &quot;[object EventExceptionConstructor]&quot;
+PASS Historical DOM features must be removed: NameList 
+PASS Historical DOM features must be removed: Notation 
+PASS Historical DOM features must be removed: TypeInfo 
+PASS Historical DOM features must be removed: UserDataHandler 
+PASS Historical DOM features must be removed: RangeException 
+FAIL Historical DOM features must be removed: createCDATASection assert_equals: expected (undefined) undefined but got (function) function &quot;function createCDATASection() {
+    [native code]
+}&quot;
+FAIL Historical DOM features must be removed: createEntityReference assert_equals: expected (undefined) undefined but got (function) function &quot;function createEntityReference() {
+    [native code]
+}&quot;
+FAIL Historical DOM features must be removed: xmlEncoding assert_equals: expected (undefined) undefined but got (object) null
+FAIL Historical DOM features must be removed: xmlStandalone assert_equals: expected (undefined) undefined but got (boolean) false
+FAIL Historical DOM features must be removed: xmlVersion assert_equals: expected (undefined) undefined but got (object) null
+PASS Historical DOM features must be removed: strictErrorChecking 
+PASS Historical DOM features must be removed: domConfig 
+PASS Historical DOM features must be removed: normalizeDocument 
+PASS Historical DOM features must be removed: renameNode 
+FAIL Historical DOM features must be removed: charset assert_equals: expected (undefined) undefined but got (string) &quot;ISO-8859-1&quot;
+FAIL Historical DOM features must be removed: defaultCharset assert_equals: expected (undefined) undefined but got (string) &quot;ISO-8859-1&quot;
+FAIL Historical DOM features must be removed: height assert_equals: expected (undefined) undefined but got (number) 600
+FAIL Historical DOM features must be removed: width assert_equals: expected (undefined) undefined but got (number) 800
+PASS DOMImplementation.getFeature() must be nuked. 
+PASS Historical DOM features must be removed: schemaTypeInfo 
+PASS Historical DOM features must be removed: setIdAttribute 
+PASS Historical DOM features must be removed: setIdAttributeNS 
+PASS Historical DOM features must be removed: setIdAttributeNode 
+FAIL DocumentType member must be nuked: entities assert_equals: expected (undefined) undefined but got (object) null
+FAIL DocumentType member must be nuked: notations assert_equals: expected (undefined) undefined but got (object) null
+FAIL DocumentType member must be nuked: internalSubset assert_equals: expected (undefined) undefined but got (object) null
+PASS Text member must be nuked: isElementContentWhitespace 
+FAIL Text member must be nuked: replaceWholeText assert_equals: expected (undefined) undefined but got (function) function &quot;function replaceWholeText() {
+    [native code]
+}&quot;
+PASS Node member must be nuked: hasAttributes 
+PASS Node member must be nuked: attributes 
+FAIL Node member must be nuked: namespaceURI assert_equals: expected (undefined) undefined but got (object) null
+FAIL Node member must be nuked: prefix assert_equals: expected (undefined) undefined but got (object) null
+FAIL Node member must be nuked: localName assert_equals: expected (undefined) undefined but got (object) null
+FAIL Node member must be nuked: isSupported assert_equals: expected (undefined) undefined but got (function) function &quot;function isSupported() {
+    [native code]
+}&quot;
+PASS Node member must be nuked: getFeature 
+PASS Node member must be nuked: getUserData 
+PASS Node member must be nuked: setUserData 
+PASS Window member must be nuked: attachEvent 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomhistoricalhtmlfromrev189470trunkLayoutTestshttptestsw3cdomhistoricalhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/historical.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/historical.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,133 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Historical DOM features must be removed&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;script&gt;
+function isInterfaceNuked(name) {
+  test(function() {
+    assert_equals(window[name], undefined)
+  }, &quot;Historical DOM features must be removed: &quot; + name)
+}
+var nukedInterfaces = [
+  &quot;CDATASection&quot;,
+  &quot;DOMConfiguration&quot;,
+  &quot;DOMError&quot;,
+  &quot;DOMErrorHandler&quot;,
+  &quot;DOMImplementationList&quot;,
+  &quot;DOMImplementationSource&quot;,
+  &quot;DOMLocator&quot;,
+  &quot;DOMObject&quot;,
+  &quot;DOMUserData&quot;,
+  &quot;Entity&quot;,
+  &quot;EntityReference&quot;,
+  &quot;EventException&quot;, // DOM Events
+  &quot;NameList&quot;,
+  &quot;Notation&quot;,
+  &quot;TypeInfo&quot;,
+  &quot;UserDataHandler&quot;,
+  &quot;RangeException&quot; // DOM Range
+]
+nukedInterfaces.forEach(isInterfaceNuked)
+
+function isNukedFromDocument(name) {
+  test(function() {
+    var doc = document.implementation.createDocument(null,null,null)
+    assert_equals(document[name], undefined)
+    assert_equals(doc[name], undefined)
+  }, &quot;Historical DOM features must be removed: &quot; + name)
+}
+var documentNuked = [
+  &quot;createCDATASection&quot;,
+  &quot;createEntityReference&quot;,
+  &quot;xmlEncoding&quot;,
+  &quot;xmlStandalone&quot;,
+  &quot;xmlVersion&quot;,
+  &quot;strictErrorChecking&quot;,
+  &quot;domConfig&quot;,
+  &quot;normalizeDocument&quot;,
+  &quot;renameNode&quot;,
+  &quot;charset&quot;,
+  &quot;defaultCharset&quot;,
+  &quot;height&quot;,
+  &quot;width&quot;
+]
+documentNuked.forEach(isNukedFromDocument)
+
+test(function() {
+  assert_equals(document.implementation[&quot;getFeature&quot;], undefined)
+}, &quot;DOMImplementation.getFeature() must be nuked.&quot;)
+
+function isNukedFromElement(name) {
+  test(function() {
+    var ele = document.createElementNS(&quot;test&quot;, &quot;test&quot;)
+    assert_equals(document.body[name], undefined)
+    assert_equals(ele[name], undefined)
+  }, &quot;Historical DOM features must be removed: &quot; + name)
+}
+var elementNuked = [
+  &quot;schemaTypeInfo&quot;,
+  &quot;setIdAttribute&quot;,
+  &quot;setIdAttributeNS&quot;,
+  &quot;setIdAttributeNode&quot;
+]
+elementNuked.forEach(isNukedFromElement)
+
+function isNukedFromDoctype(name) {
+  test(function() {
+    var doctype = document.implementation.createDocumentType(&quot;test&quot;, &quot;&quot;, &quot;&quot;)
+    assert_equals(doctype[name], undefined)
+  }, &quot;DocumentType member must be nuked: &quot; + name)
+}
+var doctypeNuked = [
+  &quot;entities&quot;,
+  &quot;notations&quot;,
+  &quot;internalSubset&quot;
+]
+doctypeNuked.forEach(isNukedFromDoctype)
+
+function isNukedFromText(name) {
+  test(function() {
+    var text = document.createTextNode(&quot;test&quot;)
+    assert_equals(text[name], undefined)
+  }, &quot;Text member must be nuked: &quot; + name)
+}
+var textNuked = [
+  &quot;isElementContentWhitespace&quot;,
+  &quot;replaceWholeText&quot;
+]
+textNuked.forEach(isNukedFromText)
+
+function isNukedFromNode(name) {
+  test(function() {
+    var doc = document.implementation.createDocument(null,null,null)
+    var doctype = document.implementation.createDocumentType(&quot;test&quot;, &quot;&quot;, &quot;&quot;)
+    var text = document.createTextNode(&quot;test&quot;)
+    assert_equals(doc[name], undefined)
+    assert_equals(doctype[name], undefined)
+    assert_equals(text[name], undefined)
+  }, &quot;Node member must be nuked: &quot; + name)
+}
+var nodeNuked = [
+  &quot;hasAttributes&quot;,
+  &quot;attributes&quot;,
+  &quot;namespaceURI&quot;,
+  &quot;prefix&quot;,
+  &quot;localName&quot;,
+  &quot;isSupported&quot;,
+  &quot;getFeature&quot;,
+  &quot;getUserData&quot;,
+  &quot;setUserData&quot;
+]
+nodeNuked.forEach(isNukedFromNode)
+
+function isNukedFromWindow(name) {
+  test(function() {
+    assert_equals(window[name], undefined)
+  }, &quot;Window member must be nuked: &quot; + name)
+}
+var windowNuked = [
+  &quot;attachEvent&quot;
+]
+windowNuked.forEach(isNukedFromWindow)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdominterfaceobjectsexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdominterfaceobjectsexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interface-objects-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/interface-objects-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interface-objects-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interface-objects-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+
+PASS Interface objects properties should not be Enumerable 
+PASS Should be able to delete Event. 
+PASS Should be able to delete CustomEvent. 
+FAIL Should be able to delete EventTarget. assert_true: Interface should exist. expected true got false
+PASS Should be able to delete Node. 
+PASS Should be able to delete Document. 
+PASS Should be able to delete DOMImplementation. 
+PASS Should be able to delete DocumentFragment. 
+PASS Should be able to delete ProcessingInstruction. 
+PASS Should be able to delete DocumentType. 
+PASS Should be able to delete Element. 
+PASS Should be able to delete Attr. 
+PASS Should be able to delete CharacterData. 
+PASS Should be able to delete Text. 
+PASS Should be able to delete Comment. 
+PASS Should be able to delete NodeIterator. 
+PASS Should be able to delete TreeWalker. 
+PASS Should be able to delete NodeFilter. 
+PASS Should be able to delete NodeList. 
+PASS Should be able to delete HTMLCollection. 
+PASS Should be able to delete DOMStringList. 
+PASS Should be able to delete DOMTokenList. 
+PASS Should be able to delete DOMSettableTokenList. 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdominterfaceobjectshtmlfromrev189470trunkLayoutTestshttptestsw3cdominterfaceobjectshtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interface-objects.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/interface-objects.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interface-objects.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interface-objects.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,46 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Interfaces&lt;/title&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+function testInterfaceDeletable(iface) {
+  test(function() {
+    assert_true(!!window[iface], &quot;Interface should exist.&quot;)
+    assert_true(delete window[iface], &quot;The delete operator should return true.&quot;)
+    assert_equals(window[iface], undefined, &quot;Interface should be gone.&quot;)
+  }, &quot;Should be able to delete &quot; + iface + &quot;.&quot;)
+}
+var interfaces = [
+  &quot;Event&quot;,
+  &quot;CustomEvent&quot;,
+  &quot;EventTarget&quot;,
+  &quot;Node&quot;,
+  &quot;Document&quot;,
+  &quot;DOMImplementation&quot;,
+  &quot;DocumentFragment&quot;,
+  &quot;ProcessingInstruction&quot;,
+  &quot;DocumentType&quot;,
+  &quot;Element&quot;,
+  &quot;Attr&quot;,
+  &quot;CharacterData&quot;,
+  &quot;Text&quot;,
+  &quot;Comment&quot;,
+  &quot;NodeIterator&quot;,
+  &quot;TreeWalker&quot;,
+  &quot;NodeFilter&quot;,
+  &quot;NodeList&quot;,
+  &quot;HTMLCollection&quot;,
+  &quot;DOMStringList&quot;,
+  &quot;DOMTokenList&quot;,
+  &quot;DOMSettableTokenList&quot;
+];
+test(function() {
+  for (var p in window) {
+    interfaces.forEach(function(i) {
+      assert_not_equals(p, i)
+    })
+  }
+}, &quot;Interface objects properties should not be Enumerable&quot;)
+interfaces.forEach(testInterfaceDeletable);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdominterfacesexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdominterfacesexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/interfaces-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,1973 @@
</span><ins>+CONSOLE MESSAGE: line 197: callback interface not yet supported
+CONSOLE MESSAGE: line 188: callback not yet supported
+CONSOLE MESSAGE: line 197: callback interface not yet supported
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'type' on a non-Event object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'target' on a non-Event object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'currentTarget' on a non-Event object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'eventPhase' on a non-Event object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'bubbles' on a non-Event object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'cancelable' on a non-Event object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'defaultPrevented' on a non-Event object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'timeStamp' on a non-Event object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'type' on a non-MutationRecord object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'target' on a non-MutationRecord object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'addedNodes' on a non-MutationRecord object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'removedNodes' on a non-MutationRecord object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'previousSibling' on a non-MutationRecord object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'nextSibling' on a non-MutationRecord object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'attributeName' on a non-MutationRecord object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'attributeNamespace' on a non-MutationRecord object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'oldValue' on a non-MutationRecord object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'nodeType' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'nodeName' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'baseURI' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'ownerDocument' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'parentNode' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'parentElement' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'childNodes' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'firstChild' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'lastChild' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'previousSibling' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'nextSibling' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'nodeValue' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'textContent' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'implementation' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'URL' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'documentURI' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'origin' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'compatMode' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'characterSet' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'inputEncoding' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'contentType' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'doctype' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'documentElement' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'children' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'firstElementChild' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'lastElementChild' on a non-Document object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'childElementCount' on a non-Document object.
+CONSOLE MESSAGE: line 261: Deprecated attempt to access property 'nodeType' on a non-Node object.
+CONSOLE MESSAGE: line 1756: Deprecated attempt to access property 'nodeType' on a non-Node object.
+CONSOLE MESSAGE: line 261: Deprecated attempt to access property 'nodeType' on a non-Node object.
+CONSOLE MESSAGE: line 1756: Deprecated attempt to access property 'nodeType' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'children' on a non-DocumentFragment object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'firstElementChild' on a non-DocumentFragment object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'lastElementChild' on a non-DocumentFragment object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'childElementCount' on a non-DocumentFragment object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'name' on a non-DocumentType object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'publicId' on a non-DocumentType object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'systemId' on a non-DocumentType object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'namespaceURI' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'prefix' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'localName' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'tagName' on a non-Element object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'id' on a non-Element object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'className' on a non-Element object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'classList' on a non-Element object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'attributes' on a non-Element object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'children' on a non-Element object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'firstElementChild' on a non-Element object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'lastElementChild' on a non-Element object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'childElementCount' on a non-Element object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'previousElementSibling' on a non-Element object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'nextElementSibling' on a non-Element object.
+CONSOLE MESSAGE: line 261: Deprecated attempt to access property 'nodeType' on a non-Node object.
+CONSOLE MESSAGE: line 1756: Deprecated attempt to access property 'nodeType' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'namespaceURI' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'prefix' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'localName' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'name' on a non-Attr object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'value' on a non-Attr object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'nodeValue' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'textContent' on a non-Node object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'ownerElement' on a non-Attr object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'specified' on a non-Attr object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'data' on a non-CharacterData object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'length' on a non-CharacterData object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'previousElementSibling' on a non-CharacterData object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'nextElementSibling' on a non-CharacterData object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'wholeText' on a non-Text object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'target' on a non-ProcessingInstruction object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'startContainer' on a non-Range object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'startOffset' on a non-Range object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'endContainer' on a non-Range object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'endOffset' on a non-Range object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'collapsed' on a non-Range object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'commonAncestorContainer' on a non-Range object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'root' on a non-NodeIterator object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'referenceNode' on a non-NodeIterator object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'pointerBeforeReferenceNode' on a non-NodeIterator object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'whatToShow' on a non-NodeIterator object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'filter' on a non-NodeIterator object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'root' on a non-TreeWalker object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'whatToShow' on a non-TreeWalker object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'filter' on a non-TreeWalker object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'currentNode' on a non-TreeWalker object.
+DOM IDL tests
+
+
+FAIL Event interface: existence and properties of interface object assert_equals: prototype of self's property &quot;Event&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS Event interface object length 
+PASS Event interface: existence and properties of interface prototype object 
+FAIL Event interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Event.prototype.constructor is not writable expected true got false
+FAIL Event interface: attribute type assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Event interface: attribute target assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Event interface: attribute currentTarget assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Event interface: constant NONE on interface object 
+PASS Event interface: constant NONE on interface prototype object 
+PASS Event interface: constant CAPTURING_PHASE on interface object 
+PASS Event interface: constant CAPTURING_PHASE on interface prototype object 
+PASS Event interface: constant AT_TARGET on interface object 
+PASS Event interface: constant AT_TARGET on interface prototype object 
+PASS Event interface: constant BUBBLING_PHASE on interface object 
+PASS Event interface: constant BUBBLING_PHASE on interface prototype object 
+FAIL Event interface: attribute eventPhase assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Event interface: operation stopPropagation() 
+PASS Event interface: operation stopImmediatePropagation() 
+FAIL Event interface: attribute bubbles assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Event interface: attribute cancelable assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Event interface: operation preventDefault() 
+FAIL Event interface: attribute defaultPrevented assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Event interface: attribute timeStamp assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Event interface: operation initEvent(DOMString,boolean,boolean) assert_equals: property has wrong .length expected 3 but got 0
+PASS Event must be primary interface of document.createEvent(&quot;Event&quot;) 
+PASS Stringification of document.createEvent(&quot;Event&quot;) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;type&quot; with the proper type (0) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;target&quot; with the proper type (1) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;currentTarget&quot; with the proper type (2) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;NONE&quot; with the proper type (3) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;CAPTURING_PHASE&quot; with the proper type (4) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;AT_TARGET&quot; with the proper type (5) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;BUBBLING_PHASE&quot; with the proper type (6) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;eventPhase&quot; with the proper type (7) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;stopPropagation&quot; with the proper type (8) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;stopImmediatePropagation&quot; with the proper type (9) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;bubbles&quot; with the proper type (10) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;cancelable&quot; with the proper type (11) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;preventDefault&quot; with the proper type (12) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;defaultPrevented&quot; with the proper type (13) 
+FAIL Event interface: document.createEvent(&quot;Event&quot;) must have own property &quot;isTrusted&quot; assert_own_property: expected property &quot;isTrusted&quot; missing
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;timeStamp&quot; with the proper type (15) 
+PASS Event interface: document.createEvent(&quot;Event&quot;) must inherit property &quot;initEvent&quot; with the proper type (16) 
+FAIL Event interface: calling initEvent(DOMString,boolean,boolean) on document.createEvent(&quot;Event&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Event must be primary interface of new Event(&quot;foo&quot;) 
+PASS Stringification of new Event(&quot;foo&quot;) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;type&quot; with the proper type (0) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;target&quot; with the proper type (1) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;currentTarget&quot; with the proper type (2) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;NONE&quot; with the proper type (3) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;CAPTURING_PHASE&quot; with the proper type (4) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;AT_TARGET&quot; with the proper type (5) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;BUBBLING_PHASE&quot; with the proper type (6) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;eventPhase&quot; with the proper type (7) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;stopPropagation&quot; with the proper type (8) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;stopImmediatePropagation&quot; with the proper type (9) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;bubbles&quot; with the proper type (10) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;cancelable&quot; with the proper type (11) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;preventDefault&quot; with the proper type (12) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;defaultPrevented&quot; with the proper type (13) 
+FAIL Event interface: new Event(&quot;foo&quot;) must have own property &quot;isTrusted&quot; assert_own_property: expected property &quot;isTrusted&quot; missing
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;timeStamp&quot; with the proper type (15) 
+PASS Event interface: new Event(&quot;foo&quot;) must inherit property &quot;initEvent&quot; with the proper type (16) 
+FAIL Event interface: calling initEvent(DOMString,boolean,boolean) on new Event(&quot;foo&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL CustomEvent interface: existence and properties of interface object assert_equals: prototype of self's property &quot;CustomEvent&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS CustomEvent interface object length 
+PASS CustomEvent interface: existence and properties of interface prototype object 
+FAIL CustomEvent interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: CustomEvent.prototype.constructor is not writable expected true got false
+FAIL CustomEvent interface: attribute detail assert_true: The prototype object must have a property &quot;detail&quot; expected true got false
+FAIL CustomEvent interface: operation initCustomEvent(DOMString,boolean,boolean,any) assert_equals: property has wrong .length expected 4 but got 0
+PASS CustomEvent must be primary interface of new CustomEvent(&quot;foo&quot;) 
+PASS Stringification of new CustomEvent(&quot;foo&quot;) 
+FAIL CustomEvent interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;detail&quot; with the proper type (0) assert_inherits: property &quot;detail&quot; found on object expected in prototype chain
+PASS CustomEvent interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;initCustomEvent&quot; with the proper type (1) 
+FAIL CustomEvent interface: calling initCustomEvent(DOMString,boolean,boolean,any) on new CustomEvent(&quot;foo&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;type&quot; with the proper type (0) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;target&quot; with the proper type (1) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;currentTarget&quot; with the proper type (2) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;NONE&quot; with the proper type (3) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;CAPTURING_PHASE&quot; with the proper type (4) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;AT_TARGET&quot; with the proper type (5) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;BUBBLING_PHASE&quot; with the proper type (6) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;eventPhase&quot; with the proper type (7) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;stopPropagation&quot; with the proper type (8) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;stopImmediatePropagation&quot; with the proper type (9) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;bubbles&quot; with the proper type (10) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;cancelable&quot; with the proper type (11) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;preventDefault&quot; with the proper type (12) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;defaultPrevented&quot; with the proper type (13) 
+FAIL Event interface: new CustomEvent(&quot;foo&quot;) must have own property &quot;isTrusted&quot; assert_own_property: expected property &quot;isTrusted&quot; missing
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;timeStamp&quot; with the proper type (15) 
+PASS Event interface: new CustomEvent(&quot;foo&quot;) must inherit property &quot;initEvent&quot; with the proper type (16) 
+FAIL Event interface: calling initEvent(DOMString,boolean,boolean) on new CustomEvent(&quot;foo&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL EventTarget interface: existence and properties of interface object assert_own_property: self does not have own property &quot;EventTarget&quot; expected property &quot;EventTarget&quot; missing
+FAIL EventTarget interface object length assert_own_property: self does not have own property &quot;EventTarget&quot; expected property &quot;EventTarget&quot; missing
+FAIL EventTarget interface: existence and properties of interface prototype object assert_own_property: self does not have own property &quot;EventTarget&quot; expected property &quot;EventTarget&quot; missing
+FAIL EventTarget interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: self does not have own property &quot;EventTarget&quot; expected property &quot;EventTarget&quot; missing
+FAIL EventTarget interface: operation addEventListener(DOMString,EventListener,boolean) assert_own_property: self does not have own property &quot;EventTarget&quot; expected property &quot;EventTarget&quot; missing
+FAIL EventTarget interface: operation removeEventListener(DOMString,EventListener,boolean) assert_own_property: self does not have own property &quot;EventTarget&quot; expected property &quot;EventTarget&quot; missing
+FAIL EventTarget interface: operation dispatchEvent(Event) assert_own_property: self does not have own property &quot;EventTarget&quot; expected property &quot;EventTarget&quot; missing
+FAIL NodeList interface: existence and properties of interface object assert_equals: prototype of self's property &quot;NodeList&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS NodeList interface object length 
+PASS NodeList interface: existence and properties of interface prototype object 
+FAIL NodeList interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: NodeList.prototype does not have own property &quot;constructor&quot; expected property &quot;constructor&quot; missing
+PASS NodeList interface: operation item(unsigned long) 
+FAIL NodeList interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
+PASS NodeList must be primary interface of document.querySelectorAll(&quot;script&quot;) 
+PASS Stringification of document.querySelectorAll(&quot;script&quot;) 
+PASS NodeList interface: document.querySelectorAll(&quot;script&quot;) must inherit property &quot;item&quot; with the proper type (0) 
+PASS NodeList interface: calling item(unsigned long) on document.querySelectorAll(&quot;script&quot;) with too few arguments must throw TypeError 
+FAIL NodeList interface: document.querySelectorAll(&quot;script&quot;) must inherit property &quot;length&quot; with the proper type (1) assert_inherits: property &quot;length&quot; found on object expected in prototype chain
+FAIL HTMLCollection interface: existence and properties of interface object assert_equals: prototype of self's property &quot;HTMLCollection&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS HTMLCollection interface object length 
+PASS HTMLCollection interface: existence and properties of interface prototype object 
+FAIL HTMLCollection interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: HTMLCollection.prototype does not have own property &quot;constructor&quot; expected property &quot;constructor&quot; missing
+FAIL HTMLCollection interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
+FAIL HTMLCollection interface: operation item(unsigned long) assert_equals: property has wrong .length expected 1 but got 0
+FAIL HTMLCollection interface: operation namedItem(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+PASS HTMLCollection must be primary interface of document.body.children 
+PASS Stringification of document.body.children 
+FAIL HTMLCollection interface: document.body.children must inherit property &quot;length&quot; with the proper type (0) assert_inherits: property &quot;length&quot; found on object expected in prototype chain
+PASS HTMLCollection interface: document.body.children must inherit property &quot;item&quot; with the proper type (1) 
+FAIL HTMLCollection interface: calling item(unsigned long) on document.body.children with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS HTMLCollection interface: document.body.children must inherit property &quot;namedItem&quot; with the proper type (2) 
+FAIL HTMLCollection interface: calling namedItem(DOMString) on document.body.children with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL MutationObserver interface: existence and properties of interface object assert_equals: prototype of self's property &quot;MutationObserver&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS MutationObserver interface object length 
+PASS MutationObserver interface: existence and properties of interface prototype object 
+FAIL MutationObserver interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: MutationObserver.prototype.constructor is not writable expected true got false
+PASS MutationObserver interface: operation observe(Node,MutationObserverInit) 
+PASS MutationObserver interface: operation disconnect() 
+PASS MutationObserver interface: operation takeRecords() 
+FAIL MutationRecord interface: existence and properties of interface object assert_equals: prototype of self's property &quot;MutationRecord&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS MutationRecord interface object length 
+PASS MutationRecord interface: existence and properties of interface prototype object 
+FAIL MutationRecord interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: MutationRecord.prototype.constructor is not writable expected true got false
+FAIL MutationRecord interface: attribute type assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL MutationRecord interface: attribute target assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL MutationRecord interface: attribute addedNodes assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL MutationRecord interface: attribute removedNodes assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL MutationRecord interface: attribute previousSibling assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL MutationRecord interface: attribute nextSibling assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL MutationRecord interface: attribute attributeName assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL MutationRecord interface: attribute attributeNamespace assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL MutationRecord interface: attribute oldValue assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Node interface: existence and properties of interface object assert_equals: prototype of self's property &quot;Node&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS Node interface object length 
+FAIL Node interface: existence and properties of interface prototype object assert_own_property: should inherit from EventTarget, but self has no such property expected property &quot;EventTarget&quot; missing
+FAIL Node interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Node.prototype.constructor is not writable expected true got false
+PASS Node interface: constant ELEMENT_NODE on interface object 
+PASS Node interface: constant ELEMENT_NODE on interface prototype object 
+PASS Node interface: constant ATTRIBUTE_NODE on interface object 
+PASS Node interface: constant ATTRIBUTE_NODE on interface prototype object 
+PASS Node interface: constant TEXT_NODE on interface object 
+PASS Node interface: constant TEXT_NODE on interface prototype object 
+PASS Node interface: constant CDATA_SECTION_NODE on interface object 
+PASS Node interface: constant CDATA_SECTION_NODE on interface prototype object 
+PASS Node interface: constant ENTITY_REFERENCE_NODE on interface object 
+PASS Node interface: constant ENTITY_REFERENCE_NODE on interface prototype object 
+PASS Node interface: constant ENTITY_NODE on interface object 
+PASS Node interface: constant ENTITY_NODE on interface prototype object 
+PASS Node interface: constant PROCESSING_INSTRUCTION_NODE on interface object 
+PASS Node interface: constant PROCESSING_INSTRUCTION_NODE on interface prototype object 
+PASS Node interface: constant COMMENT_NODE on interface object 
+PASS Node interface: constant COMMENT_NODE on interface prototype object 
+PASS Node interface: constant DOCUMENT_NODE on interface object 
+PASS Node interface: constant DOCUMENT_NODE on interface prototype object 
+PASS Node interface: constant DOCUMENT_TYPE_NODE on interface object 
+PASS Node interface: constant DOCUMENT_TYPE_NODE on interface prototype object 
+PASS Node interface: constant DOCUMENT_FRAGMENT_NODE on interface object 
+PASS Node interface: constant DOCUMENT_FRAGMENT_NODE on interface prototype object 
+PASS Node interface: constant NOTATION_NODE on interface object 
+PASS Node interface: constant NOTATION_NODE on interface prototype object 
+FAIL Node interface: attribute nodeType assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Node interface: attribute nodeName assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Node interface: attribute baseURI assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Node interface: attribute ownerDocument assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Node interface: attribute parentNode assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Node interface: attribute parentElement assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: operation hasChildNodes() 
+FAIL Node interface: attribute childNodes assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Node interface: attribute firstChild assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Node interface: attribute lastChild assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Node interface: attribute previousSibling assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Node interface: attribute nextSibling assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Node interface: attribute nodeValue assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Node interface: attribute textContent assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: operation normalize() 
+PASS Node interface: operation cloneNode(boolean) 
+FAIL Node interface: operation isEqualNode(Node) assert_equals: property has wrong .length expected 1 but got 0
+PASS Node interface: constant DOCUMENT_POSITION_DISCONNECTED on interface object 
+PASS Node interface: constant DOCUMENT_POSITION_DISCONNECTED on interface prototype object 
+PASS Node interface: constant DOCUMENT_POSITION_PRECEDING on interface object 
+PASS Node interface: constant DOCUMENT_POSITION_PRECEDING on interface prototype object 
+PASS Node interface: constant DOCUMENT_POSITION_FOLLOWING on interface object 
+PASS Node interface: constant DOCUMENT_POSITION_FOLLOWING on interface prototype object 
+PASS Node interface: constant DOCUMENT_POSITION_CONTAINS on interface object 
+PASS Node interface: constant DOCUMENT_POSITION_CONTAINS on interface prototype object 
+PASS Node interface: constant DOCUMENT_POSITION_CONTAINED_BY on interface object 
+PASS Node interface: constant DOCUMENT_POSITION_CONTAINED_BY on interface prototype object 
+PASS Node interface: constant DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC on interface object 
+PASS Node interface: constant DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC on interface prototype object 
+FAIL Node interface: operation compareDocumentPosition(Node) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Node interface: operation contains(Node) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Node interface: operation lookupPrefix(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Node interface: operation lookupNamespaceURI(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Node interface: operation isDefaultNamespace(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+PASS Node interface: operation insertBefore(Node,Node) 
+PASS Node interface: operation appendChild(Node) 
+PASS Node interface: operation replaceChild(Node,Node) 
+PASS Node interface: operation removeChild(Node) 
+FAIL Document interface: existence and properties of interface object assert_equals: prototype of self's property &quot;Document&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS Document interface object length 
+PASS Document interface: existence and properties of interface prototype object 
+FAIL Document interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Document.prototype.constructor is not writable expected true got false
+FAIL Document interface: attribute implementation assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: attribute URL assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: attribute documentURI assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: attribute origin assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: attribute compatMode assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: attribute characterSet assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: attribute inputEncoding assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: attribute contentType assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: attribute doctype assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: attribute documentElement assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: operation getElementsByTagName(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Document interface: operation getElementsByTagNameNS(DOMString,DOMString) assert_equals: property has wrong .length expected 2 but got 0
+FAIL Document interface: operation getElementsByClassName(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Document interface: operation createElement(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Document interface: operation createElementNS(DOMString,DOMString) assert_equals: property has wrong .length expected 2 but got 0
+PASS Document interface: operation createDocumentFragment() 
+FAIL Document interface: operation createTextNode(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Document interface: operation createComment(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Document interface: operation createProcessingInstruction(DOMString,DOMString) assert_equals: property has wrong .length expected 2 but got 0
+FAIL Document interface: operation importNode(Node,boolean) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Document interface: operation adoptNode(Node) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Document interface: operation createAttribute(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Document interface: operation createAttributeNS(DOMString,DOMString) assert_equals: property has wrong .length expected 2 but got 0
+FAIL Document interface: operation createEvent(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+PASS Document interface: operation createRange() 
+PASS Document interface: operation createNodeIterator(Node,unsigned long,NodeFilter) 
+PASS Document interface: operation createTreeWalker(Node,unsigned long,NodeFilter) 
+FAIL Document interface: operation getElementById(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Document interface: attribute children assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: attribute firstElementChild assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: attribute lastElementChild assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: attribute childElementCount assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: operation prepend([object Object],[object Object]) 
+PASS Document interface: operation append([object Object],[object Object]) 
+FAIL Document interface: operation query(DOMString) assert_own_property: interface prototype object missing non-static operation expected property &quot;query&quot; missing
+FAIL Document interface: operation queryAll(DOMString) assert_own_property: interface prototype object missing non-static operation expected property &quot;queryAll&quot; missing
+PASS Document interface: operation querySelector(DOMString) 
+PASS Document interface: operation querySelectorAll(DOMString) 
+FAIL XMLDocument interface: existence and properties of interface object assert_equals: prototype of self's property &quot;XMLDocument&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS XMLDocument interface object length 
+FAIL XMLDocument interface: existence and properties of interface prototype object assert_equals: prototype of XMLDocument.prototype is not Document.prototype expected Node object of unknown type but got Node object of unknown type
+FAIL XMLDocument interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: XMLDocument.prototype.constructor is not writable expected true got false
+PASS XMLDocument must be primary interface of xmlDoc 
+FAIL Stringification of xmlDoc assert_equals: class string of xmlDoc expected &quot;[object XMLDocument]&quot; but got &quot;[object Document]&quot;
+PASS Document interface: xmlDoc must inherit property &quot;implementation&quot; with the proper type (0) 
+PASS Document interface: xmlDoc must inherit property &quot;URL&quot; with the proper type (1) 
+FAIL Document interface: xmlDoc must inherit property &quot;documentURI&quot; with the proper type (2) assert_equals: expected &quot;string&quot; but got &quot;object&quot;
+PASS Document interface: xmlDoc must inherit property &quot;origin&quot; with the proper type (3) 
+PASS Document interface: xmlDoc must inherit property &quot;compatMode&quot; with the proper type (4) 
+FAIL Document interface: xmlDoc must inherit property &quot;characterSet&quot; with the proper type (5) assert_equals: expected &quot;string&quot; but got &quot;object&quot;
+FAIL Document interface: xmlDoc must inherit property &quot;inputEncoding&quot; with the proper type (6) assert_equals: expected &quot;string&quot; but got &quot;object&quot;
+PASS Document interface: xmlDoc must inherit property &quot;contentType&quot; with the proper type (7) 
+PASS Document interface: xmlDoc must inherit property &quot;doctype&quot; with the proper type (8) 
+PASS Document interface: xmlDoc must inherit property &quot;documentElement&quot; with the proper type (9) 
+PASS Document interface: xmlDoc must inherit property &quot;getElementsByTagName&quot; with the proper type (10) 
+FAIL Document interface: calling getElementsByTagName(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: xmlDoc must inherit property &quot;getElementsByTagNameNS&quot; with the proper type (11) 
+FAIL Document interface: calling getElementsByTagNameNS(DOMString,DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: xmlDoc must inherit property &quot;getElementsByClassName&quot; with the proper type (12) 
+FAIL Document interface: calling getElementsByClassName(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: xmlDoc must inherit property &quot;createElement&quot; with the proper type (13) 
+FAIL Document interface: calling createElement(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: xmlDoc must inherit property &quot;createElementNS&quot; with the proper type (14) 
+FAIL Document interface: calling createElementNS(DOMString,DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: xmlDoc must inherit property &quot;createDocumentFragment&quot; with the proper type (15) 
+PASS Document interface: xmlDoc must inherit property &quot;createTextNode&quot; with the proper type (16) 
+FAIL Document interface: calling createTextNode(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: xmlDoc must inherit property &quot;createComment&quot; with the proper type (17) 
+FAIL Document interface: calling createComment(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: xmlDoc must inherit property &quot;createProcessingInstruction&quot; with the proper type (18) 
+FAIL Document interface: calling createProcessingInstruction(DOMString,DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: xmlDoc must inherit property &quot;importNode&quot; with the proper type (19) 
+FAIL Document interface: calling importNode(Node,boolean) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotSupportedError: DOM Exception 9&quot; (&quot;NotSupportedError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Document interface: xmlDoc must inherit property &quot;adoptNode&quot; with the proper type (20) 
+FAIL Document interface: calling adoptNode(Node) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotSupportedError: DOM Exception 9&quot; (&quot;NotSupportedError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Document interface: xmlDoc must inherit property &quot;createAttribute&quot; with the proper type (21) 
+FAIL Document interface: calling createAttribute(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: xmlDoc must inherit property &quot;createAttributeNS&quot; with the proper type (22) 
+FAIL Document interface: calling createAttributeNS(DOMString,DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: xmlDoc must inherit property &quot;createEvent&quot; with the proper type (23) 
+FAIL Document interface: calling createEvent(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotSupportedError: DOM Exception 9&quot; (&quot;NotSupportedError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Document interface: xmlDoc must inherit property &quot;createRange&quot; with the proper type (24) 
+PASS Document interface: xmlDoc must inherit property &quot;createNodeIterator&quot; with the proper type (25) 
+PASS Document interface: calling createNodeIterator(Node,unsigned long,NodeFilter) on xmlDoc with too few arguments must throw TypeError 
+PASS Document interface: xmlDoc must inherit property &quot;createTreeWalker&quot; with the proper type (26) 
+PASS Document interface: calling createTreeWalker(Node,unsigned long,NodeFilter) on xmlDoc with too few arguments must throw TypeError 
+PASS Document interface: xmlDoc must inherit property &quot;getElementById&quot; with the proper type (27) 
+FAIL Document interface: calling getElementById(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: xmlDoc must inherit property &quot;children&quot; with the proper type (28) 
+PASS Document interface: xmlDoc must inherit property &quot;firstElementChild&quot; with the proper type (29) 
+PASS Document interface: xmlDoc must inherit property &quot;lastElementChild&quot; with the proper type (30) 
+PASS Document interface: xmlDoc must inherit property &quot;childElementCount&quot; with the proper type (31) 
+PASS Document interface: xmlDoc must inherit property &quot;prepend&quot; with the proper type (32) 
+FAIL Document interface: calling prepend([object Object],[object Object]) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Document interface: xmlDoc must inherit property &quot;append&quot; with the proper type (33) 
+FAIL Document interface: calling append([object Object],[object Object]) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Document interface: xmlDoc must inherit property &quot;query&quot; with the proper type (34) assert_inherits: property &quot;query&quot; not found in prototype chain
+FAIL Document interface: calling query(DOMString) on xmlDoc with too few arguments must throw TypeError assert_inherits: property &quot;query&quot; not found in prototype chain
+FAIL Document interface: xmlDoc must inherit property &quot;queryAll&quot; with the proper type (35) assert_inherits: property &quot;queryAll&quot; not found in prototype chain
+FAIL Document interface: calling queryAll(DOMString) on xmlDoc with too few arguments must throw TypeError assert_inherits: property &quot;queryAll&quot; not found in prototype chain
+PASS Document interface: xmlDoc must inherit property &quot;querySelector&quot; with the proper type (36) 
+PASS Document interface: calling querySelector(DOMString) on xmlDoc with too few arguments must throw TypeError 
+PASS Document interface: xmlDoc must inherit property &quot;querySelectorAll&quot; with the proper type (37) 
+PASS Document interface: calling querySelectorAll(DOMString) on xmlDoc with too few arguments must throw TypeError 
+PASS Node interface: xmlDoc must inherit property &quot;ELEMENT_NODE&quot; with the proper type (0) 
+PASS Node interface: xmlDoc must inherit property &quot;ATTRIBUTE_NODE&quot; with the proper type (1) 
+PASS Node interface: xmlDoc must inherit property &quot;TEXT_NODE&quot; with the proper type (2) 
+PASS Node interface: xmlDoc must inherit property &quot;CDATA_SECTION_NODE&quot; with the proper type (3) 
+PASS Node interface: xmlDoc must inherit property &quot;ENTITY_REFERENCE_NODE&quot; with the proper type (4) 
+PASS Node interface: xmlDoc must inherit property &quot;ENTITY_NODE&quot; with the proper type (5) 
+PASS Node interface: xmlDoc must inherit property &quot;PROCESSING_INSTRUCTION_NODE&quot; with the proper type (6) 
+PASS Node interface: xmlDoc must inherit property &quot;COMMENT_NODE&quot; with the proper type (7) 
+PASS Node interface: xmlDoc must inherit property &quot;DOCUMENT_NODE&quot; with the proper type (8) 
+PASS Node interface: xmlDoc must inherit property &quot;DOCUMENT_TYPE_NODE&quot; with the proper type (9) 
+PASS Node interface: xmlDoc must inherit property &quot;DOCUMENT_FRAGMENT_NODE&quot; with the proper type (10) 
+PASS Node interface: xmlDoc must inherit property &quot;NOTATION_NODE&quot; with the proper type (11) 
+PASS Node interface: xmlDoc must inherit property &quot;nodeType&quot; with the proper type (12) 
+PASS Node interface: xmlDoc must inherit property &quot;nodeName&quot; with the proper type (13) 
+PASS Node interface: xmlDoc must inherit property &quot;baseURI&quot; with the proper type (14) 
+PASS Node interface: xmlDoc must inherit property &quot;ownerDocument&quot; with the proper type (15) 
+PASS Node interface: xmlDoc must inherit property &quot;parentNode&quot; with the proper type (16) 
+PASS Node interface: xmlDoc must inherit property &quot;parentElement&quot; with the proper type (17) 
+PASS Node interface: xmlDoc must inherit property &quot;hasChildNodes&quot; with the proper type (18) 
+PASS Node interface: xmlDoc must inherit property &quot;childNodes&quot; with the proper type (19) 
+PASS Node interface: xmlDoc must inherit property &quot;firstChild&quot; with the proper type (20) 
+PASS Node interface: xmlDoc must inherit property &quot;lastChild&quot; with the proper type (21) 
+PASS Node interface: xmlDoc must inherit property &quot;previousSibling&quot; with the proper type (22) 
+PASS Node interface: xmlDoc must inherit property &quot;nextSibling&quot; with the proper type (23) 
+PASS Node interface: xmlDoc must inherit property &quot;nodeValue&quot; with the proper type (24) 
+PASS Node interface: xmlDoc must inherit property &quot;textContent&quot; with the proper type (25) 
+PASS Node interface: xmlDoc must inherit property &quot;normalize&quot; with the proper type (26) 
+PASS Node interface: xmlDoc must inherit property &quot;cloneNode&quot; with the proper type (27) 
+PASS Node interface: calling cloneNode(boolean) on xmlDoc with too few arguments must throw TypeError 
+PASS Node interface: xmlDoc must inherit property &quot;isEqualNode&quot; with the proper type (28) 
+FAIL Node interface: calling isEqualNode(Node) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc must inherit property &quot;DOCUMENT_POSITION_DISCONNECTED&quot; with the proper type (29) 
+PASS Node interface: xmlDoc must inherit property &quot;DOCUMENT_POSITION_PRECEDING&quot; with the proper type (30) 
+PASS Node interface: xmlDoc must inherit property &quot;DOCUMENT_POSITION_FOLLOWING&quot; with the proper type (31) 
+PASS Node interface: xmlDoc must inherit property &quot;DOCUMENT_POSITION_CONTAINS&quot; with the proper type (32) 
+PASS Node interface: xmlDoc must inherit property &quot;DOCUMENT_POSITION_CONTAINED_BY&quot; with the proper type (33) 
+PASS Node interface: xmlDoc must inherit property &quot;DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC&quot; with the proper type (34) 
+PASS Node interface: xmlDoc must inherit property &quot;compareDocumentPosition&quot; with the proper type (35) 
+FAIL Node interface: calling compareDocumentPosition(Node) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc must inherit property &quot;contains&quot; with the proper type (36) 
+FAIL Node interface: calling contains(Node) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc must inherit property &quot;lookupPrefix&quot; with the proper type (37) 
+FAIL Node interface: calling lookupPrefix(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc must inherit property &quot;lookupNamespaceURI&quot; with the proper type (38) 
+FAIL Node interface: calling lookupNamespaceURI(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc must inherit property &quot;isDefaultNamespace&quot; with the proper type (39) 
+FAIL Node interface: calling isDefaultNamespace(DOMString) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc must inherit property &quot;insertBefore&quot; with the proper type (40) 
+FAIL Node interface: calling insertBefore(Node,Node) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: xmlDoc must inherit property &quot;appendChild&quot; with the proper type (41) 
+FAIL Node interface: calling appendChild(Node) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: xmlDoc must inherit property &quot;replaceChild&quot; with the proper type (42) 
+FAIL Node interface: calling replaceChild(Node,Node) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc must inherit property &quot;removeChild&quot; with the proper type (43) 
+FAIL Node interface: calling removeChild(Node) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS EventTarget interface: xmlDoc must inherit property &quot;addEventListener&quot; with the proper type (0) 
+FAIL EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: xmlDoc must inherit property &quot;removeEventListener&quot; with the proper type (1) 
+FAIL EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on xmlDoc with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: xmlDoc must inherit property &quot;dispatchEvent&quot; with the proper type (2) 
+PASS EventTarget interface: calling dispatchEvent(Event) on xmlDoc with too few arguments must throw TypeError 
+FAIL DOMImplementation interface: existence and properties of interface object assert_equals: prototype of self's property &quot;DOMImplementation&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS DOMImplementation interface object length 
+PASS DOMImplementation interface: existence and properties of interface prototype object 
+FAIL DOMImplementation interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: DOMImplementation.prototype.constructor is not writable expected true got false
+FAIL DOMImplementation interface: operation createDocumentType(DOMString,DOMString,DOMString) assert_equals: property has wrong .length expected 3 but got 0
+FAIL DOMImplementation interface: operation createDocument(DOMString,DOMString,DocumentType) assert_equals: property has wrong .length expected 2 but got 0
+PASS DOMImplementation interface: operation createHTMLDocument(DOMString) 
+PASS DOMImplementation interface: operation hasFeature() 
+PASS DOMImplementation must be primary interface of document.implementation 
+PASS Stringification of document.implementation 
+PASS DOMImplementation interface: document.implementation must inherit property &quot;createDocumentType&quot; with the proper type (0) 
+FAIL DOMImplementation interface: calling createDocumentType(DOMString,DOMString,DOMString) on document.implementation with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: InvalidCharacterError: DOM Exception 5&quot; (&quot;InvalidCharacterError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS DOMImplementation interface: document.implementation must inherit property &quot;createDocument&quot; with the proper type (1) 
+FAIL DOMImplementation interface: calling createDocument(DOMString,DOMString,DocumentType) on document.implementation with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS DOMImplementation interface: document.implementation must inherit property &quot;createHTMLDocument&quot; with the proper type (2) 
+PASS DOMImplementation interface: calling createHTMLDocument(DOMString) on document.implementation with too few arguments must throw TypeError 
+PASS DOMImplementation interface: document.implementation must inherit property &quot;hasFeature&quot; with the proper type (3) 
+FAIL DocumentFragment interface: existence and properties of interface object assert_equals: prototype of self's property &quot;DocumentFragment&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS DocumentFragment interface object length 
+PASS DocumentFragment interface: existence and properties of interface prototype object 
+FAIL DocumentFragment interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: DocumentFragment.prototype.constructor is not writable expected true got false
+FAIL DocumentFragment interface: operation getElementById(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL DocumentFragment interface: attribute children assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL DocumentFragment interface: attribute firstElementChild assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL DocumentFragment interface: attribute lastElementChild assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL DocumentFragment interface: attribute childElementCount assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS DocumentFragment interface: operation prepend([object Object],[object Object]) 
+PASS DocumentFragment interface: operation append([object Object],[object Object]) 
+FAIL DocumentFragment interface: operation query(DOMString) assert_own_property: interface prototype object missing non-static operation expected property &quot;query&quot; missing
+FAIL DocumentFragment interface: operation queryAll(DOMString) assert_own_property: interface prototype object missing non-static operation expected property &quot;queryAll&quot; missing
+PASS DocumentFragment interface: operation querySelector(DOMString) 
+PASS DocumentFragment interface: operation querySelectorAll(DOMString) 
+PASS DocumentFragment must be primary interface of document.createDocumentFragment() 
+PASS Stringification of document.createDocumentFragment() 
+PASS DocumentFragment interface: document.createDocumentFragment() must inherit property &quot;getElementById&quot; with the proper type (0) 
+FAIL DocumentFragment interface: calling getElementById(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS DocumentFragment interface: document.createDocumentFragment() must inherit property &quot;children&quot; with the proper type (1) 
+PASS DocumentFragment interface: document.createDocumentFragment() must inherit property &quot;firstElementChild&quot; with the proper type (2) 
+PASS DocumentFragment interface: document.createDocumentFragment() must inherit property &quot;lastElementChild&quot; with the proper type (3) 
+PASS DocumentFragment interface: document.createDocumentFragment() must inherit property &quot;childElementCount&quot; with the proper type (4) 
+PASS DocumentFragment interface: document.createDocumentFragment() must inherit property &quot;prepend&quot; with the proper type (5) 
+FAIL DocumentFragment interface: calling prepend([object Object],[object Object]) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS DocumentFragment interface: document.createDocumentFragment() must inherit property &quot;append&quot; with the proper type (6) 
+FAIL DocumentFragment interface: calling append([object Object],[object Object]) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL DocumentFragment interface: document.createDocumentFragment() must inherit property &quot;query&quot; with the proper type (7) assert_inherits: property &quot;query&quot; not found in prototype chain
+FAIL DocumentFragment interface: calling query(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError assert_inherits: property &quot;query&quot; not found in prototype chain
+FAIL DocumentFragment interface: document.createDocumentFragment() must inherit property &quot;queryAll&quot; with the proper type (8) assert_inherits: property &quot;queryAll&quot; not found in prototype chain
+FAIL DocumentFragment interface: calling queryAll(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError assert_inherits: property &quot;queryAll&quot; not found in prototype chain
+PASS DocumentFragment interface: document.createDocumentFragment() must inherit property &quot;querySelector&quot; with the proper type (9) 
+PASS DocumentFragment interface: calling querySelector(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError 
+PASS DocumentFragment interface: document.createDocumentFragment() must inherit property &quot;querySelectorAll&quot; with the proper type (10) 
+PASS DocumentFragment interface: calling querySelectorAll(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;ELEMENT_NODE&quot; with the proper type (0) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;ATTRIBUTE_NODE&quot; with the proper type (1) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;TEXT_NODE&quot; with the proper type (2) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;CDATA_SECTION_NODE&quot; with the proper type (3) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;ENTITY_REFERENCE_NODE&quot; with the proper type (4) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;ENTITY_NODE&quot; with the proper type (5) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;PROCESSING_INSTRUCTION_NODE&quot; with the proper type (6) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;COMMENT_NODE&quot; with the proper type (7) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;DOCUMENT_NODE&quot; with the proper type (8) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;DOCUMENT_TYPE_NODE&quot; with the proper type (9) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;DOCUMENT_FRAGMENT_NODE&quot; with the proper type (10) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;NOTATION_NODE&quot; with the proper type (11) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;nodeType&quot; with the proper type (12) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;nodeName&quot; with the proper type (13) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;baseURI&quot; with the proper type (14) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;ownerDocument&quot; with the proper type (15) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;parentNode&quot; with the proper type (16) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;parentElement&quot; with the proper type (17) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;hasChildNodes&quot; with the proper type (18) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;childNodes&quot; with the proper type (19) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;firstChild&quot; with the proper type (20) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;lastChild&quot; with the proper type (21) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;previousSibling&quot; with the proper type (22) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;nextSibling&quot; with the proper type (23) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;nodeValue&quot; with the proper type (24) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;textContent&quot; with the proper type (25) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;normalize&quot; with the proper type (26) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;cloneNode&quot; with the proper type (27) 
+PASS Node interface: calling cloneNode(boolean) on document.createDocumentFragment() with too few arguments must throw TypeError 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;isEqualNode&quot; with the proper type (28) 
+FAIL Node interface: calling isEqualNode(Node) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;DOCUMENT_POSITION_DISCONNECTED&quot; with the proper type (29) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;DOCUMENT_POSITION_PRECEDING&quot; with the proper type (30) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;DOCUMENT_POSITION_FOLLOWING&quot; with the proper type (31) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;DOCUMENT_POSITION_CONTAINS&quot; with the proper type (32) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;DOCUMENT_POSITION_CONTAINED_BY&quot; with the proper type (33) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC&quot; with the proper type (34) 
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;compareDocumentPosition&quot; with the proper type (35) 
+FAIL Node interface: calling compareDocumentPosition(Node) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;contains&quot; with the proper type (36) 
+FAIL Node interface: calling contains(Node) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;lookupPrefix&quot; with the proper type (37) 
+FAIL Node interface: calling lookupPrefix(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;lookupNamespaceURI&quot; with the proper type (38) 
+FAIL Node interface: calling lookupNamespaceURI(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;isDefaultNamespace&quot; with the proper type (39) 
+FAIL Node interface: calling isDefaultNamespace(DOMString) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;insertBefore&quot; with the proper type (40) 
+FAIL Node interface: calling insertBefore(Node,Node) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;appendChild&quot; with the proper type (41) 
+FAIL Node interface: calling appendChild(Node) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;replaceChild&quot; with the proper type (42) 
+FAIL Node interface: calling replaceChild(Node,Node) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createDocumentFragment() must inherit property &quot;removeChild&quot; with the proper type (43) 
+FAIL Node interface: calling removeChild(Node) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS EventTarget interface: document.createDocumentFragment() must inherit property &quot;addEventListener&quot; with the proper type (0) 
+FAIL EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: document.createDocumentFragment() must inherit property &quot;removeEventListener&quot; with the proper type (1) 
+FAIL EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on document.createDocumentFragment() with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: document.createDocumentFragment() must inherit property &quot;dispatchEvent&quot; with the proper type (2) 
+PASS EventTarget interface: calling dispatchEvent(Event) on document.createDocumentFragment() with too few arguments must throw TypeError 
+FAIL DocumentType interface: existence and properties of interface object assert_equals: prototype of self's property &quot;DocumentType&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS DocumentType interface object length 
+PASS DocumentType interface: existence and properties of interface prototype object 
+FAIL DocumentType interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: DocumentType.prototype.constructor is not writable expected true got false
+FAIL DocumentType interface: attribute name assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL DocumentType interface: attribute publicId assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL DocumentType interface: attribute systemId assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS DocumentType interface: operation before([object Object],[object Object]) 
+PASS DocumentType interface: operation after([object Object],[object Object]) 
+PASS DocumentType interface: operation replaceWith([object Object],[object Object]) 
+PASS DocumentType interface: operation remove() 
+PASS DocumentType must be primary interface of document.doctype 
+PASS Stringification of document.doctype 
+PASS DocumentType interface: document.doctype must inherit property &quot;name&quot; with the proper type (0) 
+FAIL DocumentType interface: document.doctype must inherit property &quot;publicId&quot; with the proper type (1) assert_equals: expected &quot;string&quot; but got &quot;object&quot;
+FAIL DocumentType interface: document.doctype must inherit property &quot;systemId&quot; with the proper type (2) assert_equals: expected &quot;string&quot; but got &quot;object&quot;
+PASS DocumentType interface: document.doctype must inherit property &quot;before&quot; with the proper type (3) 
+FAIL DocumentType interface: calling before([object Object],[object Object]) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS DocumentType interface: document.doctype must inherit property &quot;after&quot; with the proper type (4) 
+FAIL DocumentType interface: calling after([object Object],[object Object]) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS DocumentType interface: document.doctype must inherit property &quot;replaceWith&quot; with the proper type (5) 
+FAIL DocumentType interface: calling replaceWith([object Object],[object Object]) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS DocumentType interface: document.doctype must inherit property &quot;remove&quot; with the proper type (6) 
+PASS Node interface: document.doctype must inherit property &quot;ELEMENT_NODE&quot; with the proper type (0) 
+PASS Node interface: document.doctype must inherit property &quot;ATTRIBUTE_NODE&quot; with the proper type (1) 
+PASS Node interface: document.doctype must inherit property &quot;TEXT_NODE&quot; with the proper type (2) 
+PASS Node interface: document.doctype must inherit property &quot;CDATA_SECTION_NODE&quot; with the proper type (3) 
+PASS Node interface: document.doctype must inherit property &quot;ENTITY_REFERENCE_NODE&quot; with the proper type (4) 
+PASS Node interface: document.doctype must inherit property &quot;ENTITY_NODE&quot; with the proper type (5) 
+PASS Node interface: document.doctype must inherit property &quot;PROCESSING_INSTRUCTION_NODE&quot; with the proper type (6) 
+PASS Node interface: document.doctype must inherit property &quot;COMMENT_NODE&quot; with the proper type (7) 
+PASS Node interface: document.doctype must inherit property &quot;DOCUMENT_NODE&quot; with the proper type (8) 
+PASS Node interface: document.doctype must inherit property &quot;DOCUMENT_TYPE_NODE&quot; with the proper type (9) 
+PASS Node interface: document.doctype must inherit property &quot;DOCUMENT_FRAGMENT_NODE&quot; with the proper type (10) 
+PASS Node interface: document.doctype must inherit property &quot;NOTATION_NODE&quot; with the proper type (11) 
+PASS Node interface: document.doctype must inherit property &quot;nodeType&quot; with the proper type (12) 
+PASS Node interface: document.doctype must inherit property &quot;nodeName&quot; with the proper type (13) 
+PASS Node interface: document.doctype must inherit property &quot;baseURI&quot; with the proper type (14) 
+PASS Node interface: document.doctype must inherit property &quot;ownerDocument&quot; with the proper type (15) 
+PASS Node interface: document.doctype must inherit property &quot;parentNode&quot; with the proper type (16) 
+PASS Node interface: document.doctype must inherit property &quot;parentElement&quot; with the proper type (17) 
+PASS Node interface: document.doctype must inherit property &quot;hasChildNodes&quot; with the proper type (18) 
+PASS Node interface: document.doctype must inherit property &quot;childNodes&quot; with the proper type (19) 
+PASS Node interface: document.doctype must inherit property &quot;firstChild&quot; with the proper type (20) 
+PASS Node interface: document.doctype must inherit property &quot;lastChild&quot; with the proper type (21) 
+PASS Node interface: document.doctype must inherit property &quot;previousSibling&quot; with the proper type (22) 
+PASS Node interface: document.doctype must inherit property &quot;nextSibling&quot; with the proper type (23) 
+PASS Node interface: document.doctype must inherit property &quot;nodeValue&quot; with the proper type (24) 
+PASS Node interface: document.doctype must inherit property &quot;textContent&quot; with the proper type (25) 
+PASS Node interface: document.doctype must inherit property &quot;normalize&quot; with the proper type (26) 
+PASS Node interface: document.doctype must inherit property &quot;cloneNode&quot; with the proper type (27) 
+PASS Node interface: calling cloneNode(boolean) on document.doctype with too few arguments must throw TypeError 
+PASS Node interface: document.doctype must inherit property &quot;isEqualNode&quot; with the proper type (28) 
+FAIL Node interface: calling isEqualNode(Node) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.doctype must inherit property &quot;DOCUMENT_POSITION_DISCONNECTED&quot; with the proper type (29) 
+PASS Node interface: document.doctype must inherit property &quot;DOCUMENT_POSITION_PRECEDING&quot; with the proper type (30) 
+PASS Node interface: document.doctype must inherit property &quot;DOCUMENT_POSITION_FOLLOWING&quot; with the proper type (31) 
+PASS Node interface: document.doctype must inherit property &quot;DOCUMENT_POSITION_CONTAINS&quot; with the proper type (32) 
+PASS Node interface: document.doctype must inherit property &quot;DOCUMENT_POSITION_CONTAINED_BY&quot; with the proper type (33) 
+PASS Node interface: document.doctype must inherit property &quot;DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC&quot; with the proper type (34) 
+PASS Node interface: document.doctype must inherit property &quot;compareDocumentPosition&quot; with the proper type (35) 
+FAIL Node interface: calling compareDocumentPosition(Node) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.doctype must inherit property &quot;contains&quot; with the proper type (36) 
+FAIL Node interface: calling contains(Node) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.doctype must inherit property &quot;lookupPrefix&quot; with the proper type (37) 
+FAIL Node interface: calling lookupPrefix(DOMString) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.doctype must inherit property &quot;lookupNamespaceURI&quot; with the proper type (38) 
+FAIL Node interface: calling lookupNamespaceURI(DOMString) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.doctype must inherit property &quot;isDefaultNamespace&quot; with the proper type (39) 
+FAIL Node interface: calling isDefaultNamespace(DOMString) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.doctype must inherit property &quot;insertBefore&quot; with the proper type (40) 
+FAIL Node interface: calling insertBefore(Node,Node) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: HierarchyRequestError: DOM Exception 3&quot; (&quot;HierarchyRequestError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: document.doctype must inherit property &quot;appendChild&quot; with the proper type (41) 
+FAIL Node interface: calling appendChild(Node) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: HierarchyRequestError: DOM Exception 3&quot; (&quot;HierarchyRequestError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: document.doctype must inherit property &quot;replaceChild&quot; with the proper type (42) 
+FAIL Node interface: calling replaceChild(Node,Node) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: HierarchyRequestError: DOM Exception 3&quot; (&quot;HierarchyRequestError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: document.doctype must inherit property &quot;removeChild&quot; with the proper type (43) 
+FAIL Node interface: calling removeChild(Node) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS EventTarget interface: document.doctype must inherit property &quot;addEventListener&quot; with the proper type (0) 
+FAIL EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: document.doctype must inherit property &quot;removeEventListener&quot; with the proper type (1) 
+FAIL EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on document.doctype with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: document.doctype must inherit property &quot;dispatchEvent&quot; with the proper type (2) 
+PASS EventTarget interface: calling dispatchEvent(Event) on document.doctype with too few arguments must throw TypeError 
+FAIL Element interface: existence and properties of interface object assert_equals: prototype of self's property &quot;Element&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS Element interface object length 
+PASS Element interface: existence and properties of interface prototype object 
+FAIL Element interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Element.prototype.constructor is not writable expected true got false
+FAIL Element interface: attribute namespaceURI assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Element interface: attribute prefix assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Element interface: attribute localName assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Element interface: attribute tagName assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Element interface: attribute id assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Element interface: attribute className assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Element interface: attribute classList assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: operation hasAttributes() 
+FAIL Element interface: attribute attributes assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Element interface: operation getAttribute(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Element interface: operation getAttributeNS(DOMString,DOMString) assert_equals: property has wrong .length expected 2 but got 0
+FAIL Element interface: operation setAttribute(DOMString,DOMString) assert_equals: property has wrong .length expected 2 but got 0
+FAIL Element interface: operation setAttributeNS(DOMString,DOMString,DOMString) assert_equals: property has wrong .length expected 3 but got 0
+FAIL Element interface: operation removeAttribute(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+PASS Element interface: operation removeAttributeNS(DOMString,DOMString) 
+PASS Element interface: operation hasAttribute(DOMString) 
+FAIL Element interface: operation hasAttributeNS(DOMString,DOMString) assert_equals: property has wrong .length expected 2 but got 0
+FAIL Element interface: operation getAttributeNode(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Element interface: operation getAttributeNodeNS(DOMString,DOMString) assert_equals: property has wrong .length expected 2 but got 0
+FAIL Element interface: operation setAttributeNode(Attr) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Element interface: operation setAttributeNodeNS(Attr) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Element interface: operation removeAttributeNode(Attr) assert_equals: property has wrong .length expected 1 but got 0
+PASS Element interface: operation closest(DOMString) 
+PASS Element interface: operation matches(DOMString) 
+FAIL Element interface: operation getElementsByTagName(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Element interface: operation getElementsByTagNameNS(DOMString,DOMString) assert_equals: property has wrong .length expected 2 but got 0
+FAIL Element interface: operation getElementsByClassName(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL Element interface: attribute children assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Element interface: attribute firstElementChild assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Element interface: attribute lastElementChild assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Element interface: attribute childElementCount assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: operation prepend([object Object],[object Object]) 
+PASS Element interface: operation append([object Object],[object Object]) 
+FAIL Element interface: operation query(DOMString) assert_own_property: interface prototype object missing non-static operation expected property &quot;query&quot; missing
+FAIL Element interface: operation queryAll(DOMString) assert_own_property: interface prototype object missing non-static operation expected property &quot;queryAll&quot; missing
+PASS Element interface: operation querySelector(DOMString) 
+PASS Element interface: operation querySelectorAll(DOMString) 
+FAIL Element interface: attribute previousElementSibling assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Element interface: attribute nextElementSibling assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: operation before([object Object],[object Object]) 
+PASS Element interface: operation after([object Object],[object Object]) 
+PASS Element interface: operation replaceWith([object Object],[object Object]) 
+PASS Element interface: operation remove() 
+PASS Element must be primary interface of element 
+PASS Stringification of element 
+PASS Element interface: element must inherit property &quot;namespaceURI&quot; with the proper type (0) 
+PASS Element interface: element must inherit property &quot;prefix&quot; with the proper type (1) 
+PASS Element interface: element must inherit property &quot;localName&quot; with the proper type (2) 
+PASS Element interface: element must inherit property &quot;tagName&quot; with the proper type (3) 
+PASS Element interface: element must inherit property &quot;id&quot; with the proper type (4) 
+PASS Element interface: element must inherit property &quot;className&quot; with the proper type (5) 
+PASS Element interface: element must inherit property &quot;classList&quot; with the proper type (6) 
+PASS Element interface: element must inherit property &quot;hasAttributes&quot; with the proper type (7) 
+PASS Element interface: element must inherit property &quot;attributes&quot; with the proper type (8) 
+PASS Element interface: element must inherit property &quot;getAttribute&quot; with the proper type (9) 
+FAIL Element interface: calling getAttribute(DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;getAttributeNS&quot; with the proper type (10) 
+FAIL Element interface: calling getAttributeNS(DOMString,DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;setAttribute&quot; with the proper type (11) 
+FAIL Element interface: calling setAttribute(DOMString,DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;setAttributeNS&quot; with the proper type (12) 
+FAIL Element interface: calling setAttributeNS(DOMString,DOMString,DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;removeAttribute&quot; with the proper type (13) 
+FAIL Element interface: calling removeAttribute(DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;removeAttributeNS&quot; with the proper type (14) 
+PASS Element interface: calling removeAttributeNS(DOMString,DOMString) on element with too few arguments must throw TypeError 
+PASS Element interface: element must inherit property &quot;hasAttribute&quot; with the proper type (15) 
+PASS Element interface: calling hasAttribute(DOMString) on element with too few arguments must throw TypeError 
+PASS Element interface: element must inherit property &quot;hasAttributeNS&quot; with the proper type (16) 
+FAIL Element interface: calling hasAttributeNS(DOMString,DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;getAttributeNode&quot; with the proper type (17) 
+FAIL Element interface: calling getAttributeNode(DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;getAttributeNodeNS&quot; with the proper type (18) 
+FAIL Element interface: calling getAttributeNodeNS(DOMString,DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;setAttributeNode&quot; with the proper type (19) 
+FAIL Element interface: calling setAttributeNode(Attr) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: TypeMismatchError: DOM Exception 17&quot; (&quot;TypeMismatchError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Element interface: element must inherit property &quot;setAttributeNodeNS&quot; with the proper type (20) 
+FAIL Element interface: calling setAttributeNodeNS(Attr) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: TypeMismatchError: DOM Exception 17&quot; (&quot;TypeMismatchError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Element interface: element must inherit property &quot;removeAttributeNode&quot; with the proper type (21) 
+FAIL Element interface: calling removeAttributeNode(Attr) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: TypeMismatchError: DOM Exception 17&quot; (&quot;TypeMismatchError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Element interface: element must inherit property &quot;closest&quot; with the proper type (22) 
+PASS Element interface: calling closest(DOMString) on element with too few arguments must throw TypeError 
+PASS Element interface: element must inherit property &quot;matches&quot; with the proper type (23) 
+PASS Element interface: calling matches(DOMString) on element with too few arguments must throw TypeError 
+PASS Element interface: element must inherit property &quot;getElementsByTagName&quot; with the proper type (24) 
+FAIL Element interface: calling getElementsByTagName(DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;getElementsByTagNameNS&quot; with the proper type (25) 
+FAIL Element interface: calling getElementsByTagNameNS(DOMString,DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;getElementsByClassName&quot; with the proper type (26) 
+FAIL Element interface: calling getElementsByClassName(DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;children&quot; with the proper type (27) 
+PASS Element interface: element must inherit property &quot;firstElementChild&quot; with the proper type (28) 
+PASS Element interface: element must inherit property &quot;lastElementChild&quot; with the proper type (29) 
+PASS Element interface: element must inherit property &quot;childElementCount&quot; with the proper type (30) 
+PASS Element interface: element must inherit property &quot;prepend&quot; with the proper type (31) 
+FAIL Element interface: calling prepend([object Object],[object Object]) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;append&quot; with the proper type (32) 
+FAIL Element interface: calling append([object Object],[object Object]) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Element interface: element must inherit property &quot;query&quot; with the proper type (33) assert_inherits: property &quot;query&quot; not found in prototype chain
+FAIL Element interface: calling query(DOMString) on element with too few arguments must throw TypeError assert_inherits: property &quot;query&quot; not found in prototype chain
+FAIL Element interface: element must inherit property &quot;queryAll&quot; with the proper type (34) assert_inherits: property &quot;queryAll&quot; not found in prototype chain
+FAIL Element interface: calling queryAll(DOMString) on element with too few arguments must throw TypeError assert_inherits: property &quot;queryAll&quot; not found in prototype chain
+PASS Element interface: element must inherit property &quot;querySelector&quot; with the proper type (35) 
+PASS Element interface: calling querySelector(DOMString) on element with too few arguments must throw TypeError 
+PASS Element interface: element must inherit property &quot;querySelectorAll&quot; with the proper type (36) 
+PASS Element interface: calling querySelectorAll(DOMString) on element with too few arguments must throw TypeError 
+PASS Element interface: element must inherit property &quot;previousElementSibling&quot; with the proper type (37) 
+PASS Element interface: element must inherit property &quot;nextElementSibling&quot; with the proper type (38) 
+PASS Element interface: element must inherit property &quot;before&quot; with the proper type (39) 
+FAIL Element interface: calling before([object Object],[object Object]) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;after&quot; with the proper type (40) 
+FAIL Element interface: calling after([object Object],[object Object]) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;replaceWith&quot; with the proper type (41) 
+FAIL Element interface: calling replaceWith([object Object],[object Object]) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Element interface: element must inherit property &quot;remove&quot; with the proper type (42) 
+PASS Node interface: element must inherit property &quot;ELEMENT_NODE&quot; with the proper type (0) 
+PASS Node interface: element must inherit property &quot;ATTRIBUTE_NODE&quot; with the proper type (1) 
+PASS Node interface: element must inherit property &quot;TEXT_NODE&quot; with the proper type (2) 
+PASS Node interface: element must inherit property &quot;CDATA_SECTION_NODE&quot; with the proper type (3) 
+PASS Node interface: element must inherit property &quot;ENTITY_REFERENCE_NODE&quot; with the proper type (4) 
+PASS Node interface: element must inherit property &quot;ENTITY_NODE&quot; with the proper type (5) 
+PASS Node interface: element must inherit property &quot;PROCESSING_INSTRUCTION_NODE&quot; with the proper type (6) 
+PASS Node interface: element must inherit property &quot;COMMENT_NODE&quot; with the proper type (7) 
+PASS Node interface: element must inherit property &quot;DOCUMENT_NODE&quot; with the proper type (8) 
+PASS Node interface: element must inherit property &quot;DOCUMENT_TYPE_NODE&quot; with the proper type (9) 
+PASS Node interface: element must inherit property &quot;DOCUMENT_FRAGMENT_NODE&quot; with the proper type (10) 
+PASS Node interface: element must inherit property &quot;NOTATION_NODE&quot; with the proper type (11) 
+PASS Node interface: element must inherit property &quot;nodeType&quot; with the proper type (12) 
+PASS Node interface: element must inherit property &quot;nodeName&quot; with the proper type (13) 
+PASS Node interface: element must inherit property &quot;baseURI&quot; with the proper type (14) 
+PASS Node interface: element must inherit property &quot;ownerDocument&quot; with the proper type (15) 
+PASS Node interface: element must inherit property &quot;parentNode&quot; with the proper type (16) 
+PASS Node interface: element must inherit property &quot;parentElement&quot; with the proper type (17) 
+PASS Node interface: element must inherit property &quot;hasChildNodes&quot; with the proper type (18) 
+PASS Node interface: element must inherit property &quot;childNodes&quot; with the proper type (19) 
+PASS Node interface: element must inherit property &quot;firstChild&quot; with the proper type (20) 
+PASS Node interface: element must inherit property &quot;lastChild&quot; with the proper type (21) 
+PASS Node interface: element must inherit property &quot;previousSibling&quot; with the proper type (22) 
+PASS Node interface: element must inherit property &quot;nextSibling&quot; with the proper type (23) 
+PASS Node interface: element must inherit property &quot;nodeValue&quot; with the proper type (24) 
+PASS Node interface: element must inherit property &quot;textContent&quot; with the proper type (25) 
+PASS Node interface: element must inherit property &quot;normalize&quot; with the proper type (26) 
+PASS Node interface: element must inherit property &quot;cloneNode&quot; with the proper type (27) 
+PASS Node interface: calling cloneNode(boolean) on element with too few arguments must throw TypeError 
+PASS Node interface: element must inherit property &quot;isEqualNode&quot; with the proper type (28) 
+FAIL Node interface: calling isEqualNode(Node) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: element must inherit property &quot;DOCUMENT_POSITION_DISCONNECTED&quot; with the proper type (29) 
+PASS Node interface: element must inherit property &quot;DOCUMENT_POSITION_PRECEDING&quot; with the proper type (30) 
+PASS Node interface: element must inherit property &quot;DOCUMENT_POSITION_FOLLOWING&quot; with the proper type (31) 
+PASS Node interface: element must inherit property &quot;DOCUMENT_POSITION_CONTAINS&quot; with the proper type (32) 
+PASS Node interface: element must inherit property &quot;DOCUMENT_POSITION_CONTAINED_BY&quot; with the proper type (33) 
+PASS Node interface: element must inherit property &quot;DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC&quot; with the proper type (34) 
+PASS Node interface: element must inherit property &quot;compareDocumentPosition&quot; with the proper type (35) 
+FAIL Node interface: calling compareDocumentPosition(Node) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: element must inherit property &quot;contains&quot; with the proper type (36) 
+FAIL Node interface: calling contains(Node) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: element must inherit property &quot;lookupPrefix&quot; with the proper type (37) 
+FAIL Node interface: calling lookupPrefix(DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: element must inherit property &quot;lookupNamespaceURI&quot; with the proper type (38) 
+FAIL Node interface: calling lookupNamespaceURI(DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: element must inherit property &quot;isDefaultNamespace&quot; with the proper type (39) 
+FAIL Node interface: calling isDefaultNamespace(DOMString) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: element must inherit property &quot;insertBefore&quot; with the proper type (40) 
+FAIL Node interface: calling insertBefore(Node,Node) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: element must inherit property &quot;appendChild&quot; with the proper type (41) 
+FAIL Node interface: calling appendChild(Node) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: element must inherit property &quot;replaceChild&quot; with the proper type (42) 
+FAIL Node interface: calling replaceChild(Node,Node) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: element must inherit property &quot;removeChild&quot; with the proper type (43) 
+FAIL Node interface: calling removeChild(Node) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS EventTarget interface: element must inherit property &quot;addEventListener&quot; with the proper type (0) 
+FAIL EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: element must inherit property &quot;removeEventListener&quot; with the proper type (1) 
+FAIL EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on element with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: element must inherit property &quot;dispatchEvent&quot; with the proper type (2) 
+PASS EventTarget interface: calling dispatchEvent(Event) on element with too few arguments must throw TypeError 
+FAIL NamedNodeMap interface: existence and properties of interface object assert_equals: prototype of self's property &quot;NamedNodeMap&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS NamedNodeMap interface object length 
+PASS NamedNodeMap interface: existence and properties of interface prototype object 
+FAIL NamedNodeMap interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: NamedNodeMap.prototype does not have own property &quot;constructor&quot; expected property &quot;constructor&quot; missing
+FAIL NamedNodeMap interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
+FAIL NamedNodeMap interface: operation item(unsigned long) assert_equals: property has wrong .length expected 1 but got 0
+FAIL NamedNodeMap interface: operation getNamedItem(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL NamedNodeMap interface: operation getNamedItemNS(DOMString,DOMString) assert_equals: property has wrong .length expected 2 but got 0
+FAIL NamedNodeMap interface: operation setNamedItem(Attr) assert_equals: property has wrong .length expected 1 but got 0
+FAIL NamedNodeMap interface: operation setNamedItemNS(Attr) assert_equals: property has wrong .length expected 1 but got 0
+FAIL NamedNodeMap interface: operation removeNamedItem(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL NamedNodeMap interface: operation removeNamedItemNS(DOMString,DOMString) assert_equals: property has wrong .length expected 2 but got 0
+FAIL Attr interface: existence and properties of interface object assert_equals: prototype of self's property &quot;Attr&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS Attr interface object length 
+FAIL Attr interface: existence and properties of interface prototype object assert_equals: prototype of Attr.prototype is not Object.prototype expected object &quot;[object Object]&quot; but got Node object of unknown type
+FAIL Attr interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Attr.prototype.constructor is not writable expected true got false
+FAIL Attr interface: attribute namespaceURI assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Attr interface: attribute prefix assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Attr interface: attribute localName assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Attr interface: attribute name assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Attr interface: attribute value assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Attr interface: attribute nodeValue assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Attr interface: attribute textContent assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Attr interface: attribute ownerElement assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Attr interface: attribute specified assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Attr must be primary interface of document.querySelector(&quot;[id]&quot;).attributes[0] 
+PASS Stringification of document.querySelector(&quot;[id]&quot;).attributes[0] 
+PASS Attr interface: document.querySelector(&quot;[id]&quot;).attributes[0] must inherit property &quot;namespaceURI&quot; with the proper type (0) 
+PASS Attr interface: document.querySelector(&quot;[id]&quot;).attributes[0] must inherit property &quot;prefix&quot; with the proper type (1) 
+PASS Attr interface: document.querySelector(&quot;[id]&quot;).attributes[0] must inherit property &quot;localName&quot; with the proper type (2) 
+PASS Attr interface: document.querySelector(&quot;[id]&quot;).attributes[0] must inherit property &quot;name&quot; with the proper type (3) 
+PASS Attr interface: document.querySelector(&quot;[id]&quot;).attributes[0] must inherit property &quot;value&quot; with the proper type (4) 
+PASS Attr interface: document.querySelector(&quot;[id]&quot;).attributes[0] must inherit property &quot;nodeValue&quot; with the proper type (5) 
+PASS Attr interface: document.querySelector(&quot;[id]&quot;).attributes[0] must inherit property &quot;textContent&quot; with the proper type (6) 
+PASS Attr interface: document.querySelector(&quot;[id]&quot;).attributes[0] must inherit property &quot;ownerElement&quot; with the proper type (7) 
+PASS Attr interface: document.querySelector(&quot;[id]&quot;).attributes[0] must inherit property &quot;specified&quot; with the proper type (8) 
+FAIL CharacterData interface: existence and properties of interface object assert_equals: prototype of self's property &quot;CharacterData&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS CharacterData interface object length 
+PASS CharacterData interface: existence and properties of interface prototype object 
+FAIL CharacterData interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: CharacterData.prototype.constructor is not writable expected true got false
+FAIL CharacterData interface: attribute data assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL CharacterData interface: attribute length assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL CharacterData interface: operation substringData(unsigned long,unsigned long) assert_equals: property has wrong .length expected 2 but got 0
+FAIL CharacterData interface: operation appendData(DOMString) assert_equals: property has wrong .length expected 1 but got 0
+FAIL CharacterData interface: operation insertData(unsigned long,DOMString) assert_equals: property has wrong .length expected 2 but got 0
+FAIL CharacterData interface: operation deleteData(unsigned long,unsigned long) assert_equals: property has wrong .length expected 2 but got 0
+FAIL CharacterData interface: operation replaceData(unsigned long,unsigned long,DOMString) assert_equals: property has wrong .length expected 3 but got 0
+FAIL CharacterData interface: attribute previousElementSibling assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL CharacterData interface: attribute nextElementSibling assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: operation before([object Object],[object Object]) 
+PASS CharacterData interface: operation after([object Object],[object Object]) 
+PASS CharacterData interface: operation replaceWith([object Object],[object Object]) 
+PASS CharacterData interface: operation remove() 
+FAIL Text interface: existence and properties of interface object assert_equals: prototype of self's property &quot;Text&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS Text interface object length 
+PASS Text interface: existence and properties of interface prototype object 
+FAIL Text interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Text.prototype.constructor is not writable expected true got false
+PASS Text interface: operation splitText(unsigned long) 
+FAIL Text interface: attribute wholeText assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Text must be primary interface of document.createTextNode(&quot;abc&quot;) 
+PASS Stringification of document.createTextNode(&quot;abc&quot;) 
+PASS Text interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;splitText&quot; with the proper type (0) 
+PASS Text interface: calling splitText(unsigned long) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError 
+PASS Text interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;wholeText&quot; with the proper type (1) 
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;data&quot; with the proper type (0) 
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;length&quot; with the proper type (1) 
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;substringData&quot; with the proper type (2) 
+FAIL CharacterData interface: calling substringData(unsigned long,unsigned long) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;appendData&quot; with the proper type (3) 
+FAIL CharacterData interface: calling appendData(DOMString) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;insertData&quot; with the proper type (4) 
+FAIL CharacterData interface: calling insertData(unsigned long,DOMString) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;deleteData&quot; with the proper type (5) 
+FAIL CharacterData interface: calling deleteData(unsigned long,unsigned long) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;replaceData&quot; with the proper type (6) 
+FAIL CharacterData interface: calling replaceData(unsigned long,unsigned long,DOMString) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;previousElementSibling&quot; with the proper type (7) 
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;nextElementSibling&quot; with the proper type (8) 
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;before&quot; with the proper type (9) 
+FAIL CharacterData interface: calling before([object Object],[object Object]) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;after&quot; with the proper type (10) 
+FAIL CharacterData interface: calling after([object Object],[object Object]) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;replaceWith&quot; with the proper type (11) 
+FAIL CharacterData interface: calling replaceWith([object Object],[object Object]) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;remove&quot; with the proper type (12) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;ELEMENT_NODE&quot; with the proper type (0) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;ATTRIBUTE_NODE&quot; with the proper type (1) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;TEXT_NODE&quot; with the proper type (2) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;CDATA_SECTION_NODE&quot; with the proper type (3) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;ENTITY_REFERENCE_NODE&quot; with the proper type (4) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;ENTITY_NODE&quot; with the proper type (5) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;PROCESSING_INSTRUCTION_NODE&quot; with the proper type (6) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;COMMENT_NODE&quot; with the proper type (7) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;DOCUMENT_NODE&quot; with the proper type (8) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;DOCUMENT_TYPE_NODE&quot; with the proper type (9) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;DOCUMENT_FRAGMENT_NODE&quot; with the proper type (10) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;NOTATION_NODE&quot; with the proper type (11) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;nodeType&quot; with the proper type (12) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;nodeName&quot; with the proper type (13) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;baseURI&quot; with the proper type (14) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;ownerDocument&quot; with the proper type (15) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;parentNode&quot; with the proper type (16) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;parentElement&quot; with the proper type (17) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;hasChildNodes&quot; with the proper type (18) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;childNodes&quot; with the proper type (19) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;firstChild&quot; with the proper type (20) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;lastChild&quot; with the proper type (21) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;previousSibling&quot; with the proper type (22) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;nextSibling&quot; with the proper type (23) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;nodeValue&quot; with the proper type (24) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;textContent&quot; with the proper type (25) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;normalize&quot; with the proper type (26) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;cloneNode&quot; with the proper type (27) 
+PASS Node interface: calling cloneNode(boolean) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;isEqualNode&quot; with the proper type (28) 
+FAIL Node interface: calling isEqualNode(Node) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;DOCUMENT_POSITION_DISCONNECTED&quot; with the proper type (29) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;DOCUMENT_POSITION_PRECEDING&quot; with the proper type (30) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;DOCUMENT_POSITION_FOLLOWING&quot; with the proper type (31) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;DOCUMENT_POSITION_CONTAINS&quot; with the proper type (32) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;DOCUMENT_POSITION_CONTAINED_BY&quot; with the proper type (33) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC&quot; with the proper type (34) 
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;compareDocumentPosition&quot; with the proper type (35) 
+FAIL Node interface: calling compareDocumentPosition(Node) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;contains&quot; with the proper type (36) 
+FAIL Node interface: calling contains(Node) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;lookupPrefix&quot; with the proper type (37) 
+FAIL Node interface: calling lookupPrefix(DOMString) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;lookupNamespaceURI&quot; with the proper type (38) 
+FAIL Node interface: calling lookupNamespaceURI(DOMString) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;isDefaultNamespace&quot; with the proper type (39) 
+FAIL Node interface: calling isDefaultNamespace(DOMString) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;insertBefore&quot; with the proper type (40) 
+FAIL Node interface: calling insertBefore(Node,Node) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: HierarchyRequestError: DOM Exception 3&quot; (&quot;HierarchyRequestError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;appendChild&quot; with the proper type (41) 
+FAIL Node interface: calling appendChild(Node) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: HierarchyRequestError: DOM Exception 3&quot; (&quot;HierarchyRequestError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;replaceChild&quot; with the proper type (42) 
+FAIL Node interface: calling replaceChild(Node,Node) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: HierarchyRequestError: DOM Exception 3&quot; (&quot;HierarchyRequestError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;removeChild&quot; with the proper type (43) 
+FAIL Node interface: calling removeChild(Node) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS EventTarget interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;addEventListener&quot; with the proper type (0) 
+FAIL EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;removeEventListener&quot; with the proper type (1) 
+FAIL EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: document.createTextNode(&quot;abc&quot;) must inherit property &quot;dispatchEvent&quot; with the proper type (2) 
+PASS EventTarget interface: calling dispatchEvent(Event) on document.createTextNode(&quot;abc&quot;) with too few arguments must throw TypeError 
+FAIL ProcessingInstruction interface: existence and properties of interface object assert_equals: prototype of self's property &quot;ProcessingInstruction&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS ProcessingInstruction interface object length 
+PASS ProcessingInstruction interface: existence and properties of interface prototype object 
+FAIL ProcessingInstruction interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: ProcessingInstruction.prototype.constructor is not writable expected true got false
+FAIL ProcessingInstruction interface: attribute target assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS ProcessingInstruction must be primary interface of xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) 
+PASS Stringification of xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) 
+PASS ProcessingInstruction interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;target&quot; with the proper type (0) 
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;data&quot; with the proper type (0) 
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;length&quot; with the proper type (1) 
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;substringData&quot; with the proper type (2) 
+FAIL CharacterData interface: calling substringData(unsigned long,unsigned long) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;appendData&quot; with the proper type (3) 
+FAIL CharacterData interface: calling appendData(DOMString) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;insertData&quot; with the proper type (4) 
+FAIL CharacterData interface: calling insertData(unsigned long,DOMString) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;deleteData&quot; with the proper type (5) 
+FAIL CharacterData interface: calling deleteData(unsigned long,unsigned long) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;replaceData&quot; with the proper type (6) 
+FAIL CharacterData interface: calling replaceData(unsigned long,unsigned long,DOMString) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;previousElementSibling&quot; with the proper type (7) 
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;nextElementSibling&quot; with the proper type (8) 
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;before&quot; with the proper type (9) 
+FAIL CharacterData interface: calling before([object Object],[object Object]) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;after&quot; with the proper type (10) 
+FAIL CharacterData interface: calling after([object Object],[object Object]) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;replaceWith&quot; with the proper type (11) 
+FAIL CharacterData interface: calling replaceWith([object Object],[object Object]) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;remove&quot; with the proper type (12) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;ELEMENT_NODE&quot; with the proper type (0) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;ATTRIBUTE_NODE&quot; with the proper type (1) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;TEXT_NODE&quot; with the proper type (2) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;CDATA_SECTION_NODE&quot; with the proper type (3) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;ENTITY_REFERENCE_NODE&quot; with the proper type (4) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;ENTITY_NODE&quot; with the proper type (5) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;PROCESSING_INSTRUCTION_NODE&quot; with the proper type (6) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;COMMENT_NODE&quot; with the proper type (7) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;DOCUMENT_NODE&quot; with the proper type (8) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;DOCUMENT_TYPE_NODE&quot; with the proper type (9) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;DOCUMENT_FRAGMENT_NODE&quot; with the proper type (10) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;NOTATION_NODE&quot; with the proper type (11) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;nodeType&quot; with the proper type (12) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;nodeName&quot; with the proper type (13) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;baseURI&quot; with the proper type (14) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;ownerDocument&quot; with the proper type (15) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;parentNode&quot; with the proper type (16) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;parentElement&quot; with the proper type (17) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;hasChildNodes&quot; with the proper type (18) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;childNodes&quot; with the proper type (19) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;firstChild&quot; with the proper type (20) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;lastChild&quot; with the proper type (21) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;previousSibling&quot; with the proper type (22) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;nextSibling&quot; with the proper type (23) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;nodeValue&quot; with the proper type (24) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;textContent&quot; with the proper type (25) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;normalize&quot; with the proper type (26) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;cloneNode&quot; with the proper type (27) 
+PASS Node interface: calling cloneNode(boolean) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;isEqualNode&quot; with the proper type (28) 
+FAIL Node interface: calling isEqualNode(Node) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;DOCUMENT_POSITION_DISCONNECTED&quot; with the proper type (29) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;DOCUMENT_POSITION_PRECEDING&quot; with the proper type (30) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;DOCUMENT_POSITION_FOLLOWING&quot; with the proper type (31) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;DOCUMENT_POSITION_CONTAINS&quot; with the proper type (32) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;DOCUMENT_POSITION_CONTAINED_BY&quot; with the proper type (33) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC&quot; with the proper type (34) 
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;compareDocumentPosition&quot; with the proper type (35) 
+FAIL Node interface: calling compareDocumentPosition(Node) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;contains&quot; with the proper type (36) 
+FAIL Node interface: calling contains(Node) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;lookupPrefix&quot; with the proper type (37) 
+FAIL Node interface: calling lookupPrefix(DOMString) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;lookupNamespaceURI&quot; with the proper type (38) 
+FAIL Node interface: calling lookupNamespaceURI(DOMString) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;isDefaultNamespace&quot; with the proper type (39) 
+FAIL Node interface: calling isDefaultNamespace(DOMString) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;insertBefore&quot; with the proper type (40) 
+FAIL Node interface: calling insertBefore(Node,Node) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: HierarchyRequestError: DOM Exception 3&quot; (&quot;HierarchyRequestError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;appendChild&quot; with the proper type (41) 
+FAIL Node interface: calling appendChild(Node) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: HierarchyRequestError: DOM Exception 3&quot; (&quot;HierarchyRequestError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;replaceChild&quot; with the proper type (42) 
+FAIL Node interface: calling replaceChild(Node,Node) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: HierarchyRequestError: DOM Exception 3&quot; (&quot;HierarchyRequestError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;removeChild&quot; with the proper type (43) 
+FAIL Node interface: calling removeChild(Node) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS EventTarget interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;addEventListener&quot; with the proper type (0) 
+FAIL EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;removeEventListener&quot; with the proper type (1) 
+FAIL EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) must inherit property &quot;dispatchEvent&quot; with the proper type (2) 
+PASS EventTarget interface: calling dispatchEvent(Event) on xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;) with too few arguments must throw TypeError 
+FAIL Comment interface: existence and properties of interface object assert_equals: prototype of self's property &quot;Comment&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS Comment interface object length 
+PASS Comment interface: existence and properties of interface prototype object 
+FAIL Comment interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Comment.prototype.constructor is not writable expected true got false
+PASS Comment must be primary interface of document.createComment(&quot;abc&quot;) 
+PASS Stringification of document.createComment(&quot;abc&quot;) 
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;data&quot; with the proper type (0) 
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;length&quot; with the proper type (1) 
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;substringData&quot; with the proper type (2) 
+FAIL CharacterData interface: calling substringData(unsigned long,unsigned long) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;appendData&quot; with the proper type (3) 
+FAIL CharacterData interface: calling appendData(DOMString) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;insertData&quot; with the proper type (4) 
+FAIL CharacterData interface: calling insertData(unsigned long,DOMString) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;deleteData&quot; with the proper type (5) 
+FAIL CharacterData interface: calling deleteData(unsigned long,unsigned long) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;replaceData&quot; with the proper type (6) 
+FAIL CharacterData interface: calling replaceData(unsigned long,unsigned long,DOMString) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;previousElementSibling&quot; with the proper type (7) 
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;nextElementSibling&quot; with the proper type (8) 
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;before&quot; with the proper type (9) 
+FAIL CharacterData interface: calling before([object Object],[object Object]) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;after&quot; with the proper type (10) 
+FAIL CharacterData interface: calling after([object Object],[object Object]) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;replaceWith&quot; with the proper type (11) 
+FAIL CharacterData interface: calling replaceWith([object Object],[object Object]) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS CharacterData interface: document.createComment(&quot;abc&quot;) must inherit property &quot;remove&quot; with the proper type (12) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;ELEMENT_NODE&quot; with the proper type (0) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;ATTRIBUTE_NODE&quot; with the proper type (1) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;TEXT_NODE&quot; with the proper type (2) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;CDATA_SECTION_NODE&quot; with the proper type (3) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;ENTITY_REFERENCE_NODE&quot; with the proper type (4) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;ENTITY_NODE&quot; with the proper type (5) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;PROCESSING_INSTRUCTION_NODE&quot; with the proper type (6) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;COMMENT_NODE&quot; with the proper type (7) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;DOCUMENT_NODE&quot; with the proper type (8) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;DOCUMENT_TYPE_NODE&quot; with the proper type (9) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;DOCUMENT_FRAGMENT_NODE&quot; with the proper type (10) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;NOTATION_NODE&quot; with the proper type (11) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;nodeType&quot; with the proper type (12) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;nodeName&quot; with the proper type (13) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;baseURI&quot; with the proper type (14) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;ownerDocument&quot; with the proper type (15) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;parentNode&quot; with the proper type (16) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;parentElement&quot; with the proper type (17) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;hasChildNodes&quot; with the proper type (18) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;childNodes&quot; with the proper type (19) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;firstChild&quot; with the proper type (20) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;lastChild&quot; with the proper type (21) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;previousSibling&quot; with the proper type (22) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;nextSibling&quot; with the proper type (23) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;nodeValue&quot; with the proper type (24) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;textContent&quot; with the proper type (25) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;normalize&quot; with the proper type (26) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;cloneNode&quot; with the proper type (27) 
+PASS Node interface: calling cloneNode(boolean) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;isEqualNode&quot; with the proper type (28) 
+FAIL Node interface: calling isEqualNode(Node) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;DOCUMENT_POSITION_DISCONNECTED&quot; with the proper type (29) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;DOCUMENT_POSITION_PRECEDING&quot; with the proper type (30) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;DOCUMENT_POSITION_FOLLOWING&quot; with the proper type (31) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;DOCUMENT_POSITION_CONTAINS&quot; with the proper type (32) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;DOCUMENT_POSITION_CONTAINED_BY&quot; with the proper type (33) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC&quot; with the proper type (34) 
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;compareDocumentPosition&quot; with the proper type (35) 
+FAIL Node interface: calling compareDocumentPosition(Node) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;contains&quot; with the proper type (36) 
+FAIL Node interface: calling contains(Node) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;lookupPrefix&quot; with the proper type (37) 
+FAIL Node interface: calling lookupPrefix(DOMString) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;lookupNamespaceURI&quot; with the proper type (38) 
+FAIL Node interface: calling lookupNamespaceURI(DOMString) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;isDefaultNamespace&quot; with the proper type (39) 
+FAIL Node interface: calling isDefaultNamespace(DOMString) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;insertBefore&quot; with the proper type (40) 
+FAIL Node interface: calling insertBefore(Node,Node) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: HierarchyRequestError: DOM Exception 3&quot; (&quot;HierarchyRequestError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;appendChild&quot; with the proper type (41) 
+FAIL Node interface: calling appendChild(Node) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: HierarchyRequestError: DOM Exception 3&quot; (&quot;HierarchyRequestError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;replaceChild&quot; with the proper type (42) 
+FAIL Node interface: calling replaceChild(Node,Node) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: HierarchyRequestError: DOM Exception 3&quot; (&quot;HierarchyRequestError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Node interface: document.createComment(&quot;abc&quot;) must inherit property &quot;removeChild&quot; with the proper type (43) 
+FAIL Node interface: calling removeChild(Node) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: NotFoundError: DOM Exception 8&quot; (&quot;NotFoundError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS EventTarget interface: document.createComment(&quot;abc&quot;) must inherit property &quot;addEventListener&quot; with the proper type (0) 
+FAIL EventTarget interface: calling addEventListener(DOMString,EventListener,boolean) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: document.createComment(&quot;abc&quot;) must inherit property &quot;removeEventListener&quot; with the proper type (1) 
+FAIL EventTarget interface: calling removeEventListener(DOMString,EventListener,boolean) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS EventTarget interface: document.createComment(&quot;abc&quot;) must inherit property &quot;dispatchEvent&quot; with the proper type (2) 
+PASS EventTarget interface: calling dispatchEvent(Event) on document.createComment(&quot;abc&quot;) with too few arguments must throw TypeError 
+FAIL Range interface: existence and properties of interface object assert_equals: prototype of self's property &quot;Range&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS Range interface object length 
+PASS Range interface: existence and properties of interface prototype object 
+FAIL Range interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: Range.prototype.constructor is not writable expected true got false
+FAIL Range interface: attribute startContainer assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Range interface: attribute startOffset assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Range interface: attribute endContainer assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Range interface: attribute endOffset assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Range interface: attribute collapsed assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Range interface: attribute commonAncestorContainer assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL Range interface: operation setStart(Node,unsigned long) assert_equals: property has wrong .length expected 2 but got 1
+FAIL Range interface: operation setEnd(Node,unsigned long) assert_equals: property has wrong .length expected 2 but got 1
+PASS Range interface: operation setStartBefore(Node) 
+PASS Range interface: operation setStartAfter(Node) 
+PASS Range interface: operation setEndBefore(Node) 
+PASS Range interface: operation setEndAfter(Node) 
+PASS Range interface: operation collapse(boolean) 
+PASS Range interface: operation selectNode(Node) 
+PASS Range interface: operation selectNodeContents(Node) 
+PASS Range interface: constant START_TO_START on interface object 
+PASS Range interface: constant START_TO_START on interface prototype object 
+PASS Range interface: constant START_TO_END on interface object 
+PASS Range interface: constant START_TO_END on interface prototype object 
+PASS Range interface: constant END_TO_END on interface object 
+PASS Range interface: constant END_TO_END on interface prototype object 
+PASS Range interface: constant END_TO_START on interface object 
+PASS Range interface: constant END_TO_START on interface prototype object 
+FAIL Range interface: operation compareBoundaryPoints(unsigned short,Range) assert_equals: property has wrong .length expected 2 but got 0
+PASS Range interface: operation deleteContents() 
+PASS Range interface: operation extractContents() 
+PASS Range interface: operation cloneContents() 
+PASS Range interface: operation insertNode(Node) 
+PASS Range interface: operation surroundContents(Node) 
+PASS Range interface: operation cloneRange() 
+PASS Range interface: operation detach() 
+FAIL Range interface: operation isPointInRange(Node,unsigned long) assert_equals: property has wrong .length expected 2 but got 1
+FAIL Range interface: operation comparePoint(Node,unsigned long) assert_equals: property has wrong .length expected 2 but got 1
+PASS Range interface: operation intersectsNode(Node) 
+PASS Range interface: stringifier 
+PASS Range must be primary interface of document.createRange() 
+PASS Stringification of document.createRange() 
+PASS Range interface: document.createRange() must inherit property &quot;startContainer&quot; with the proper type (0) 
+PASS Range interface: document.createRange() must inherit property &quot;startOffset&quot; with the proper type (1) 
+PASS Range interface: document.createRange() must inherit property &quot;endContainer&quot; with the proper type (2) 
+PASS Range interface: document.createRange() must inherit property &quot;endOffset&quot; with the proper type (3) 
+PASS Range interface: document.createRange() must inherit property &quot;collapsed&quot; with the proper type (4) 
+PASS Range interface: document.createRange() must inherit property &quot;commonAncestorContainer&quot; with the proper type (5) 
+PASS Range interface: document.createRange() must inherit property &quot;setStart&quot; with the proper type (6) 
+FAIL Range interface: calling setStart(Node,unsigned long) on document.createRange() with too few arguments must throw TypeError assert_throws: Called with 1 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Range interface: document.createRange() must inherit property &quot;setEnd&quot; with the proper type (7) 
+FAIL Range interface: calling setEnd(Node,unsigned long) on document.createRange() with too few arguments must throw TypeError assert_throws: Called with 1 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Range interface: document.createRange() must inherit property &quot;setStartBefore&quot; with the proper type (8) 
+PASS Range interface: calling setStartBefore(Node) on document.createRange() with too few arguments must throw TypeError 
+PASS Range interface: document.createRange() must inherit property &quot;setStartAfter&quot; with the proper type (9) 
+PASS Range interface: calling setStartAfter(Node) on document.createRange() with too few arguments must throw TypeError 
+PASS Range interface: document.createRange() must inherit property &quot;setEndBefore&quot; with the proper type (10) 
+PASS Range interface: calling setEndBefore(Node) on document.createRange() with too few arguments must throw TypeError 
+PASS Range interface: document.createRange() must inherit property &quot;setEndAfter&quot; with the proper type (11) 
+PASS Range interface: calling setEndAfter(Node) on document.createRange() with too few arguments must throw TypeError 
+PASS Range interface: document.createRange() must inherit property &quot;collapse&quot; with the proper type (12) 
+PASS Range interface: calling collapse(boolean) on document.createRange() with too few arguments must throw TypeError 
+PASS Range interface: document.createRange() must inherit property &quot;selectNode&quot; with the proper type (13) 
+PASS Range interface: calling selectNode(Node) on document.createRange() with too few arguments must throw TypeError 
+PASS Range interface: document.createRange() must inherit property &quot;selectNodeContents&quot; with the proper type (14) 
+PASS Range interface: calling selectNodeContents(Node) on document.createRange() with too few arguments must throw TypeError 
+PASS Range interface: document.createRange() must inherit property &quot;START_TO_START&quot; with the proper type (15) 
+PASS Range interface: document.createRange() must inherit property &quot;START_TO_END&quot; with the proper type (16) 
+PASS Range interface: document.createRange() must inherit property &quot;END_TO_END&quot; with the proper type (17) 
+PASS Range interface: document.createRange() must inherit property &quot;END_TO_START&quot; with the proper type (18) 
+PASS Range interface: document.createRange() must inherit property &quot;compareBoundaryPoints&quot; with the proper type (19) 
+PASS Range interface: calling compareBoundaryPoints(unsigned short,Range) on document.createRange() with too few arguments must throw TypeError 
+PASS Range interface: document.createRange() must inherit property &quot;deleteContents&quot; with the proper type (20) 
+PASS Range interface: document.createRange() must inherit property &quot;extractContents&quot; with the proper type (21) 
+PASS Range interface: document.createRange() must inherit property &quot;cloneContents&quot; with the proper type (22) 
+PASS Range interface: document.createRange() must inherit property &quot;insertNode&quot; with the proper type (23) 
+PASS Range interface: calling insertNode(Node) on document.createRange() with too few arguments must throw TypeError 
+PASS Range interface: document.createRange() must inherit property &quot;surroundContents&quot; with the proper type (24) 
+PASS Range interface: calling surroundContents(Node) on document.createRange() with too few arguments must throw TypeError 
+PASS Range interface: document.createRange() must inherit property &quot;cloneRange&quot; with the proper type (25) 
+PASS Range interface: document.createRange() must inherit property &quot;detach&quot; with the proper type (26) 
+PASS Range interface: document.createRange() must inherit property &quot;isPointInRange&quot; with the proper type (27) 
+FAIL Range interface: calling isPointInRange(Node,unsigned long) on document.createRange() with too few arguments must throw TypeError assert_throws: Called with 1 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Range interface: document.createRange() must inherit property &quot;comparePoint&quot; with the proper type (28) 
+FAIL Range interface: calling comparePoint(Node,unsigned long) on document.createRange() with too few arguments must throw TypeError assert_throws: Called with 1 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: WrongDocumentError: DOM Exception 4&quot; (&quot;WrongDocumentError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Range interface: document.createRange() must inherit property &quot;intersectsNode&quot; with the proper type (29) 
+PASS Range interface: calling intersectsNode(Node) on document.createRange() with too few arguments must throw TypeError 
+PASS Range must be primary interface of detachedRange 
+PASS Stringification of detachedRange 
+PASS Range interface: detachedRange must inherit property &quot;startContainer&quot; with the proper type (0) 
+PASS Range interface: detachedRange must inherit property &quot;startOffset&quot; with the proper type (1) 
+PASS Range interface: detachedRange must inherit property &quot;endContainer&quot; with the proper type (2) 
+PASS Range interface: detachedRange must inherit property &quot;endOffset&quot; with the proper type (3) 
+PASS Range interface: detachedRange must inherit property &quot;collapsed&quot; with the proper type (4) 
+PASS Range interface: detachedRange must inherit property &quot;commonAncestorContainer&quot; with the proper type (5) 
+PASS Range interface: detachedRange must inherit property &quot;setStart&quot; with the proper type (6) 
+FAIL Range interface: calling setStart(Node,unsigned long) on detachedRange with too few arguments must throw TypeError assert_throws: Called with 1 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Range interface: detachedRange must inherit property &quot;setEnd&quot; with the proper type (7) 
+FAIL Range interface: calling setEnd(Node,unsigned long) on detachedRange with too few arguments must throw TypeError assert_throws: Called with 1 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Range interface: detachedRange must inherit property &quot;setStartBefore&quot; with the proper type (8) 
+PASS Range interface: calling setStartBefore(Node) on detachedRange with too few arguments must throw TypeError 
+PASS Range interface: detachedRange must inherit property &quot;setStartAfter&quot; with the proper type (9) 
+PASS Range interface: calling setStartAfter(Node) on detachedRange with too few arguments must throw TypeError 
+PASS Range interface: detachedRange must inherit property &quot;setEndBefore&quot; with the proper type (10) 
+PASS Range interface: calling setEndBefore(Node) on detachedRange with too few arguments must throw TypeError 
+PASS Range interface: detachedRange must inherit property &quot;setEndAfter&quot; with the proper type (11) 
+PASS Range interface: calling setEndAfter(Node) on detachedRange with too few arguments must throw TypeError 
+PASS Range interface: detachedRange must inherit property &quot;collapse&quot; with the proper type (12) 
+PASS Range interface: calling collapse(boolean) on detachedRange with too few arguments must throw TypeError 
+PASS Range interface: detachedRange must inherit property &quot;selectNode&quot; with the proper type (13) 
+PASS Range interface: calling selectNode(Node) on detachedRange with too few arguments must throw TypeError 
+PASS Range interface: detachedRange must inherit property &quot;selectNodeContents&quot; with the proper type (14) 
+PASS Range interface: calling selectNodeContents(Node) on detachedRange with too few arguments must throw TypeError 
+PASS Range interface: detachedRange must inherit property &quot;START_TO_START&quot; with the proper type (15) 
+PASS Range interface: detachedRange must inherit property &quot;START_TO_END&quot; with the proper type (16) 
+PASS Range interface: detachedRange must inherit property &quot;END_TO_END&quot; with the proper type (17) 
+PASS Range interface: detachedRange must inherit property &quot;END_TO_START&quot; with the proper type (18) 
+PASS Range interface: detachedRange must inherit property &quot;compareBoundaryPoints&quot; with the proper type (19) 
+PASS Range interface: calling compareBoundaryPoints(unsigned short,Range) on detachedRange with too few arguments must throw TypeError 
+PASS Range interface: detachedRange must inherit property &quot;deleteContents&quot; with the proper type (20) 
+PASS Range interface: detachedRange must inherit property &quot;extractContents&quot; with the proper type (21) 
+PASS Range interface: detachedRange must inherit property &quot;cloneContents&quot; with the proper type (22) 
+PASS Range interface: detachedRange must inherit property &quot;insertNode&quot; with the proper type (23) 
+PASS Range interface: calling insertNode(Node) on detachedRange with too few arguments must throw TypeError 
+PASS Range interface: detachedRange must inherit property &quot;surroundContents&quot; with the proper type (24) 
+PASS Range interface: calling surroundContents(Node) on detachedRange with too few arguments must throw TypeError 
+PASS Range interface: detachedRange must inherit property &quot;cloneRange&quot; with the proper type (25) 
+PASS Range interface: detachedRange must inherit property &quot;detach&quot; with the proper type (26) 
+PASS Range interface: detachedRange must inherit property &quot;isPointInRange&quot; with the proper type (27) 
+FAIL Range interface: calling isPointInRange(Node,unsigned long) on detachedRange with too few arguments must throw TypeError assert_throws: Called with 1 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS Range interface: detachedRange must inherit property &quot;comparePoint&quot; with the proper type (28) 
+FAIL Range interface: calling comparePoint(Node,unsigned long) on detachedRange with too few arguments must throw TypeError assert_throws: Called with 1 arguments function &quot;function () {
+    [native code]
+}&quot; threw object &quot;Error: WrongDocumentError: DOM Exception 4&quot; (&quot;WrongDocumentError&quot;) expected object &quot;TypeError&quot; (&quot;TypeError&quot;)
+PASS Range interface: detachedRange must inherit property &quot;intersectsNode&quot; with the proper type (29) 
+PASS Range interface: calling intersectsNode(Node) on detachedRange with too few arguments must throw TypeError 
+FAIL NodeIterator interface: existence and properties of interface object assert_equals: prototype of self's property &quot;NodeIterator&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS NodeIterator interface object length 
+PASS NodeIterator interface: existence and properties of interface prototype object 
+FAIL NodeIterator interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: NodeIterator.prototype.constructor is not writable expected true got false
+FAIL NodeIterator interface: attribute root assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL NodeIterator interface: attribute referenceNode assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL NodeIterator interface: attribute pointerBeforeReferenceNode assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL NodeIterator interface: attribute whatToShow assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL NodeIterator interface: attribute filter assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS NodeIterator interface: operation nextNode() 
+PASS NodeIterator interface: operation previousNode() 
+PASS NodeIterator interface: operation detach() 
+PASS NodeIterator must be primary interface of document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) 
+PASS Stringification of document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) 
+PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;root&quot; with the proper type (0) 
+PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;referenceNode&quot; with the proper type (1) 
+PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;pointerBeforeReferenceNode&quot; with the proper type (2) 
+PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;whatToShow&quot; with the proper type (3) 
+PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;filter&quot; with the proper type (4) 
+PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;nextNode&quot; with the proper type (5) 
+PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;previousNode&quot; with the proper type (6) 
+PASS NodeIterator interface: document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;detach&quot; with the proper type (7) 
+FAIL TreeWalker interface: existence and properties of interface object assert_equals: prototype of self's property &quot;TreeWalker&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS TreeWalker interface object length 
+PASS TreeWalker interface: existence and properties of interface prototype object 
+FAIL TreeWalker interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_true: TreeWalker.prototype.constructor is not writable expected true got false
+FAIL TreeWalker interface: attribute root assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL TreeWalker interface: attribute whatToShow assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL TreeWalker interface: attribute filter assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+FAIL TreeWalker interface: attribute currentNode assert_throws: getting property on prototype object must throw TypeError function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS TreeWalker interface: operation parentNode() 
+PASS TreeWalker interface: operation firstChild() 
+PASS TreeWalker interface: operation lastChild() 
+PASS TreeWalker interface: operation previousSibling() 
+PASS TreeWalker interface: operation nextSibling() 
+PASS TreeWalker interface: operation previousNode() 
+PASS TreeWalker interface: operation nextNode() 
+PASS TreeWalker must be primary interface of document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) 
+PASS Stringification of document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) 
+PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;root&quot; with the proper type (0) 
+PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;whatToShow&quot; with the proper type (1) 
+PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;filter&quot; with the proper type (2) 
+PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;currentNode&quot; with the proper type (3) 
+PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;parentNode&quot; with the proper type (4) 
+PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;firstChild&quot; with the proper type (5) 
+PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;lastChild&quot; with the proper type (6) 
+PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;previousSibling&quot; with the proper type (7) 
+PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;nextSibling&quot; with the proper type (8) 
+PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;previousNode&quot; with the proper type (9) 
+PASS TreeWalker interface: document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false) must inherit property &quot;nextNode&quot; with the proper type (10) 
+FAIL DOMTokenList interface: existence and properties of interface object assert_equals: prototype of self's property &quot;DOMTokenList&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS DOMTokenList interface object length 
+PASS DOMTokenList interface: existence and properties of interface prototype object 
+FAIL DOMTokenList interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: DOMTokenList.prototype does not have own property &quot;constructor&quot; expected property &quot;constructor&quot; missing
+FAIL DOMTokenList interface: attribute length assert_true: The prototype object must have a property &quot;length&quot; expected true got false
+PASS DOMTokenList interface: operation item(unsigned long) 
+PASS DOMTokenList interface: operation contains(DOMString) 
+PASS DOMTokenList interface: operation add(DOMString) 
+PASS DOMTokenList interface: operation remove(DOMString) 
+PASS DOMTokenList interface: operation toggle(DOMString,boolean) 
+FAIL DOMTokenList interface: stringifier assert_true: property is not enumerable expected true got false
+PASS DOMTokenList must be primary interface of document.body.classList 
+PASS Stringification of document.body.classList 
+FAIL DOMTokenList interface: document.body.classList must inherit property &quot;length&quot; with the proper type (0) assert_inherits: property &quot;length&quot; found on object expected in prototype chain
+PASS DOMTokenList interface: document.body.classList must inherit property &quot;item&quot; with the proper type (1) 
+PASS DOMTokenList interface: calling item(unsigned long) on document.body.classList with too few arguments must throw TypeError 
+PASS DOMTokenList interface: document.body.classList must inherit property &quot;contains&quot; with the proper type (2) 
+PASS DOMTokenList interface: calling contains(DOMString) on document.body.classList with too few arguments must throw TypeError 
+PASS DOMTokenList interface: document.body.classList must inherit property &quot;add&quot; with the proper type (3) 
+FAIL DOMTokenList interface: calling add(DOMString) on document.body.classList with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS DOMTokenList interface: document.body.classList must inherit property &quot;remove&quot; with the proper type (4) 
+FAIL DOMTokenList interface: calling remove(DOMString) on document.body.classList with too few arguments must throw TypeError assert_throws: Called with 0 arguments function &quot;function () {
+    [native code]
+}&quot; did not throw
+PASS DOMTokenList interface: document.body.classList must inherit property &quot;toggle&quot; with the proper type (5) 
+PASS DOMTokenList interface: calling toggle(DOMString,boolean) on document.body.classList with too few arguments must throw TypeError 
+FAIL DOMSettableTokenList interface: existence and properties of interface object assert_equals: prototype of self's property &quot;DOMSettableTokenList&quot; is not Function.prototype expected (function) function &quot;function () {
+    [native code]
+}&quot; but got (object) object &quot;[object Object]&quot;
+PASS DOMSettableTokenList interface object length 
+PASS DOMSettableTokenList interface: existence and properties of interface prototype object 
+FAIL DOMSettableTokenList interface: existence and properties of interface prototype object's &quot;constructor&quot; property assert_own_property: DOMSettableTokenList.prototype does not have own property &quot;constructor&quot; expected property &quot;constructor&quot; missing
+FAIL DOMSettableTokenList interface: attribute value assert_true: The prototype object must have a property &quot;value&quot; expected true got false
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdominterfaceshtmlfromrev189470trunkLayoutTestshttptestsw3cdominterfaceshtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/interfaces.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/interfaces.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,504 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;DOM IDL tests&lt;/title&gt;
+&lt;script src=/resources/testharness.js&gt;&lt;/script&gt;
+&lt;script src=/resources/testharnessreport.js&gt;&lt;/script&gt;
+&lt;script src=/resources/webidl2/lib/webidl2.js&gt;&lt;/script&gt;
+&lt;script src=/resources/idlharness.js&gt;&lt;/script&gt;
+
+&lt;h1&gt;DOM IDL tests&lt;/h1&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+
+&lt;script type=text/plain&gt;
+[Constructor(DOMString type, optional EventInit eventInitDict)/*,
+ Exposed=(Window,Worker)*/]
+interface Event {
+  readonly attribute DOMString type;
+  readonly attribute EventTarget? target;
+  readonly attribute EventTarget? currentTarget;
+
+  const unsigned short NONE = 0;
+  const unsigned short CAPTURING_PHASE = 1;
+  const unsigned short AT_TARGET = 2;
+  const unsigned short BUBBLING_PHASE = 3;
+  readonly attribute unsigned short eventPhase;
+
+  void stopPropagation();
+  void stopImmediatePropagation();
+
+  readonly attribute boolean bubbles;
+  readonly attribute boolean cancelable;
+  void preventDefault();
+  readonly attribute boolean defaultPrevented;
+
+  [Unforgeable] readonly attribute boolean isTrusted;
+  readonly attribute DOMTimeStamp timeStamp;
+
+  void initEvent(DOMString type, boolean bubbles, boolean cancelable);
+};
+
+dictionary EventInit {
+  boolean bubbles = false;
+  boolean cancelable = false;
+};
+
+[Constructor(DOMString type, optional CustomEventInit eventInitDict)/*,
+ Exposed=(Window,Worker)*/]
+interface CustomEvent : Event {
+  readonly attribute any detail;
+
+  void initCustomEvent(DOMString type, boolean bubbles, boolean cancelable, any detail);
+};
+
+dictionary CustomEventInit : EventInit {
+  any detail = null;
+};
+
+//[Exposed=(Window,Worker)]
+interface EventTarget {
+  void addEventListener(DOMString type, EventListener? callback, optional boolean capture = false);
+  void removeEventListener(DOMString type, EventListener? callback, optional boolean capture = false);
+  boolean dispatchEvent(Event event);
+};
+
+callback interface EventListener {
+  void handleEvent(Event event);
+};
+
+[NoInterfaceObject]
+interface NonElementParentNode {
+  Element? getElementById(DOMString elementId);
+};
+Document implements NonElementParentNode;
+DocumentFragment implements NonElementParentNode;
+
+[NoInterfaceObject]
+interface ParentNode {
+  [SameObject] readonly attribute HTMLCollection children;
+  readonly attribute Element? firstElementChild;
+  readonly attribute Element? lastElementChild;
+  readonly attribute unsigned long childElementCount;
+
+  [Unscopeable] void prepend((Node or DOMString)... nodes);
+  [Unscopeable] void append((Node or DOMString)... nodes);
+
+  [Unscopeable] Element? query(DOMString relativeSelectors);
+  [NewObject, Unscopeable] Elements queryAll(DOMString relativeSelectors);
+  Element? querySelector(DOMString selectors);
+  [NewObject] NodeList querySelectorAll(DOMString selectors);
+};
+Document implements ParentNode;
+DocumentFragment implements ParentNode;
+Element implements ParentNode;
+
+[NoInterfaceObject]
+interface NonDocumentTypeChildNode {
+  readonly attribute Element? previousElementSibling;
+  readonly attribute Element? nextElementSibling;
+};
+Element implements NonDocumentTypeChildNode;
+CharacterData implements NonDocumentTypeChildNode;
+
+[NoInterfaceObject]
+interface ChildNode {
+  [Unscopeable] void before((Node or DOMString)... nodes);
+  [Unscopeable] void after((Node or DOMString)... nodes);
+  [Unscopeable] void replaceWith((Node or DOMString)... nodes);
+  [Unscopeable] void remove();
+};
+DocumentType implements ChildNode;
+Element implements ChildNode;
+CharacterData implements ChildNode;
+
+// XXX unrecognized tokens &quot;class&quot;, &quot;extends&quot;
+// https://www.w3.org/Bugs/Public/show_bug.cgi?id=20020
+// https://www.w3.org/Bugs/Public/show_bug.cgi?id=23225
+//class Elements extends Array {
+//  Element? query(DOMString relativeSelectors);
+//  Elements queryAll(DOMString relativeSelectors);
+//};
+
+interface NodeList {
+  getter Node? item(unsigned long index);
+  readonly attribute unsigned long length;
+//  iterable&lt;Node&gt;;
+};
+
+interface HTMLCollection {
+  readonly attribute unsigned long length;
+  getter Element? item(unsigned long index);
+  getter Element? namedItem(DOMString name);
+};
+
+[Constructor(MutationCallback callback)]
+interface MutationObserver {
+  void observe(Node target, MutationObserverInit options);
+  void disconnect();
+  sequence&lt;MutationRecord&gt; takeRecords();
+};
+
+callback MutationCallback = void (sequence&lt;MutationRecord&gt; mutations, MutationObserver observer);
+
+dictionary MutationObserverInit {
+  boolean childList = false;
+  boolean attributes;
+  boolean characterData;
+  boolean subtree = false;
+  boolean attributeOldValue;
+  boolean characterDataOldValue;
+  sequence&lt;DOMString&gt; attributeFilter;
+};
+
+interface MutationRecord {
+  readonly attribute DOMString type;
+  readonly attribute Node target;
+  [SameObject] readonly attribute NodeList addedNodes;
+  [SameObject] readonly attribute NodeList removedNodes;
+  readonly attribute Node? previousSibling;
+  readonly attribute Node? nextSibling;
+  readonly attribute DOMString? attributeName;
+  readonly attribute DOMString? attributeNamespace;
+  readonly attribute DOMString? oldValue;
+};
+
+interface Node : EventTarget {
+  const unsigned short ELEMENT_NODE = 1;
+  const unsigned short ATTRIBUTE_NODE = 2; // historical
+  const unsigned short TEXT_NODE = 3;
+  const unsigned short CDATA_SECTION_NODE = 4; // historical
+  const unsigned short ENTITY_REFERENCE_NODE = 5; // historical
+  const unsigned short ENTITY_NODE = 6; // historical
+  const unsigned short PROCESSING_INSTRUCTION_NODE = 7;
+  const unsigned short COMMENT_NODE = 8;
+  const unsigned short DOCUMENT_NODE = 9;
+  const unsigned short DOCUMENT_TYPE_NODE = 10;
+  const unsigned short DOCUMENT_FRAGMENT_NODE = 11;
+  const unsigned short NOTATION_NODE = 12; // historical
+  readonly attribute unsigned short nodeType;
+  readonly attribute DOMString nodeName;
+
+  readonly attribute DOMString? baseURI;
+
+  readonly attribute Document? ownerDocument;
+  readonly attribute Node? parentNode;
+  readonly attribute Element? parentElement;
+  boolean hasChildNodes();
+  [SameObject] readonly attribute NodeList childNodes;
+  readonly attribute Node? firstChild;
+  readonly attribute Node? lastChild;
+  readonly attribute Node? previousSibling;
+  readonly attribute Node? nextSibling;
+
+           attribute DOMString? nodeValue;
+           attribute DOMString? textContent;
+  void normalize();
+
+  [NewObject] Node cloneNode(optional boolean deep = false);
+  boolean isEqualNode(Node? node);
+
+  const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01;
+  const unsigned short DOCUMENT_POSITION_PRECEDING = 0x02;
+  const unsigned short DOCUMENT_POSITION_FOLLOWING = 0x04;
+  const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08;
+  const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10;
+  const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;
+  unsigned short compareDocumentPosition(Node other);
+  boolean contains(Node? other);
+
+  DOMString? lookupPrefix(DOMString? namespace);
+  DOMString? lookupNamespaceURI(DOMString? prefix);
+  boolean isDefaultNamespace(DOMString? namespace);
+
+  Node insertBefore(Node node, Node? child);
+  Node appendChild(Node node);
+  Node replaceChild(Node node, Node child);
+  Node removeChild(Node child);
+};
+
+[Constructor]
+interface Document : Node {
+  [SameObject] readonly attribute DOMImplementation implementation;
+  readonly attribute DOMString URL;
+  readonly attribute DOMString documentURI;
+  readonly attribute DOMString origin;
+  readonly attribute DOMString compatMode;
+  readonly attribute DOMString characterSet;
+  readonly attribute DOMString inputEncoding; // legacy alias of .characterSet
+  readonly attribute DOMString contentType;
+
+  readonly attribute DocumentType? doctype;
+  readonly attribute Element? documentElement;
+  HTMLCollection getElementsByTagName(DOMString localName);
+  HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName);
+  HTMLCollection getElementsByClassName(DOMString classNames);
+
+  [NewObject] Element createElement(DOMString localName);
+  [NewObject] Element createElementNS(DOMString? namespace, DOMString qualifiedName);
+  [NewObject] DocumentFragment createDocumentFragment();
+  [NewObject] Text createTextNode(DOMString data);
+  [NewObject] Comment createComment(DOMString data);
+  [NewObject] ProcessingInstruction createProcessingInstruction(DOMString target, DOMString data);
+
+  [NewObject] Node importNode(Node node, optional boolean deep = false);
+  Node adoptNode(Node node);
+
+  [NewObject] Attr createAttribute(DOMString localName);
+  [NewObject] Attr createAttributeNS(DOMString? namespace, DOMString name);
+
+  [NewObject] Event createEvent(DOMString interface);
+
+  [NewObject] Range createRange();
+
+  // NodeFilter.SHOW_ALL = 0xFFFFFFFF
+  [NewObject] NodeIterator createNodeIterator(Node root, optional unsigned long whatToShow = 0xFFFFFFFF, optional NodeFilter? filter = null);
+  [NewObject] TreeWalker createTreeWalker(Node root, optional unsigned long whatToShow = 0xFFFFFFFF, optional NodeFilter? filter = null);
+};
+
+interface XMLDocument : Document {};
+
+interface DOMImplementation {
+  [NewObject] DocumentType createDocumentType(DOMString qualifiedName, DOMString publicId, DOMString systemId);
+  [NewObject] XMLDocument createDocument(DOMString? namespace, [TreatNullAs=EmptyString] DOMString qualifiedName, optional DocumentType? doctype = null);
+  [NewObject] Document createHTMLDocument(optional DOMString title);
+
+  boolean hasFeature(); // useless; always returns true
+};
+
+[Constructor]
+interface DocumentFragment : Node {
+};
+
+interface DocumentType : Node {
+  readonly attribute DOMString name;
+  readonly attribute DOMString publicId;
+  readonly attribute DOMString systemId;
+};
+
+interface Element : Node {
+  readonly attribute DOMString? namespaceURI;
+  readonly attribute DOMString? prefix;
+  readonly attribute DOMString localName;
+  readonly attribute DOMString tagName;
+
+           attribute DOMString id;
+           attribute DOMString className;
+  [SameObject] readonly attribute DOMTokenList classList;
+
+  boolean hasAttributes();
+  [SameObject] readonly attribute NamedNodeMap attributes;
+  DOMString? getAttribute(DOMString name);
+  DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
+  void setAttribute(DOMString name, DOMString value);
+  void setAttributeNS(DOMString? namespace, DOMString name, DOMString value);
+  void removeAttribute(DOMString name);
+  void removeAttributeNS(DOMString? namespace, DOMString localName);
+  boolean hasAttribute(DOMString name);
+  boolean hasAttributeNS(DOMString? namespace, DOMString localName);
+
+  Attr? getAttributeNode(DOMString name);
+  Attr? getAttributeNodeNS(DOMString? namespace, DOMString localName);
+  Attr? setAttributeNode(Attr attr);
+  Attr? setAttributeNodeNS(Attr attr);
+  Attr removeAttributeNode(Attr attr);
+
+  Element? closest(DOMString selectors);
+  boolean matches(DOMString selectors);
+
+  HTMLCollection getElementsByTagName(DOMString localName);
+  HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName);
+  HTMLCollection getElementsByClassName(DOMString classNames);
+};
+
+interface NamedNodeMap {
+  readonly attribute unsigned long length;
+  getter Attr? item(unsigned long index);
+  getter Attr? getNamedItem(DOMString name);
+  Attr? getNamedItemNS(DOMString? namespace, DOMString localName);
+  Attr? setNamedItem(Attr attr);
+  Attr? setNamedItemNS(Attr attr);
+  Attr removeNamedItem(DOMString name);
+  Attr removeNamedItemNS(DOMString? namespace, DOMString localName);
+};
+
+interface Attr {
+  readonly attribute DOMString? namespaceURI;
+  readonly attribute DOMString? prefix;
+  readonly attribute DOMString localName;
+  readonly attribute DOMString name;
+           attribute DOMString value;
+           attribute DOMString nodeValue; // legacy alias of .value
+           attribute DOMString textContent; // legacy alias of .value
+
+  readonly attribute Element? ownerElement;
+
+  readonly attribute boolean specified; // useless; always returns true
+};
+
+interface CharacterData : Node {
+  [TreatNullAs=EmptyString] attribute DOMString data;
+  readonly attribute unsigned long length;
+  DOMString substringData(unsigned long offset, unsigned long count);
+  void appendData(DOMString data);
+  void insertData(unsigned long offset, DOMString data);
+  void deleteData(unsigned long offset, unsigned long count);
+  void replaceData(unsigned long offset, unsigned long count, DOMString data);
+};
+
+[Constructor(optional DOMString data = &quot;&quot;)]
+interface Text : CharacterData {
+  [NewObject] Text splitText(unsigned long offset);
+  readonly attribute DOMString wholeText;
+};
+
+interface ProcessingInstruction : CharacterData {
+  readonly attribute DOMString target;
+};
+
+[Constructor(optional DOMString data = &quot;&quot;)]
+interface Comment : CharacterData {
+};
+
+[Constructor]
+interface Range {
+  readonly attribute Node startContainer;
+  readonly attribute unsigned long startOffset;
+  readonly attribute Node endContainer;
+  readonly attribute unsigned long endOffset;
+  readonly attribute boolean collapsed;
+  readonly attribute Node commonAncestorContainer;
+
+  void setStart(Node node, unsigned long offset);
+  void setEnd(Node node, unsigned long offset);
+  void setStartBefore(Node node);
+  void setStartAfter(Node node);
+  void setEndBefore(Node node);
+  void setEndAfter(Node node);
+  void collapse(optional boolean toStart = false);
+  void selectNode(Node node);
+  void selectNodeContents(Node node);
+
+  const unsigned short START_TO_START = 0;
+  const unsigned short START_TO_END = 1;
+  const unsigned short END_TO_END = 2;
+  const unsigned short END_TO_START = 3;
+  short compareBoundaryPoints(unsigned short how, Range sourceRange);
+
+  void deleteContents();
+  [NewObject] DocumentFragment extractContents();
+  [NewObject] DocumentFragment cloneContents();
+  void insertNode(Node node);
+  void surroundContents(Node newParent);
+
+  [NewObject] Range cloneRange();
+  void detach();
+
+  boolean isPointInRange(Node node, unsigned long offset);
+  short comparePoint(Node node, unsigned long offset);
+
+  boolean intersectsNode(Node node);
+
+  stringifier;
+};
+
+interface NodeIterator {
+  [SameObject] readonly attribute Node root;
+  readonly attribute Node referenceNode;
+  readonly attribute boolean pointerBeforeReferenceNode;
+  readonly attribute unsigned long whatToShow;
+  readonly attribute NodeFilter? filter;
+
+  Node? nextNode();
+  Node? previousNode();
+
+  void detach();
+};
+
+interface TreeWalker {
+  [SameObject] readonly attribute Node root;
+  readonly attribute unsigned long whatToShow;
+  readonly attribute NodeFilter? filter;
+           attribute Node currentNode;
+
+  Node? parentNode();
+  Node? firstChild();
+  Node? lastChild();
+  Node? previousSibling();
+  Node? nextSibling();
+  Node? previousNode();
+  Node? nextNode();
+};
+
+callback interface NodeFilter {
+  // Constants for acceptNode()
+  const unsigned short FILTER_ACCEPT = 1;
+  const unsigned short FILTER_REJECT = 2;
+  const unsigned short FILTER_SKIP = 3;
+
+  // Constants for whatToShow
+  const unsigned long SHOW_ALL = 0xFFFFFFFF;
+  const unsigned long SHOW_ELEMENT = 0x1;
+  const unsigned long SHOW_ATTRIBUTE = 0x2; // historical
+  const unsigned long SHOW_TEXT = 0x4;
+  const unsigned long SHOW_CDATA_SECTION = 0x8; // historical
+  const unsigned long SHOW_ENTITY_REFERENCE = 0x10; // historical
+  const unsigned long SHOW_ENTITY = 0x20; // historical
+  const unsigned long SHOW_PROCESSING_INSTRUCTION = 0x40;
+  const unsigned long SHOW_COMMENT = 0x80;
+  const unsigned long SHOW_DOCUMENT = 0x100;
+  const unsigned long SHOW_DOCUMENT_TYPE = 0x200;
+  const unsigned long SHOW_DOCUMENT_FRAGMENT = 0x400;
+  const unsigned long SHOW_NOTATION = 0x800; // historical
+
+  unsigned short acceptNode(Node node);
+};
+
+interface DOMTokenList {
+  readonly attribute unsigned long length;
+  getter DOMString? item(unsigned long index);
+  boolean contains(DOMString token);
+  void add(DOMString... tokens);
+  void remove(DOMString... tokens);
+  boolean toggle(DOMString token, optional boolean force);
+  stringifier;
+//  iterable&lt;DOMString&gt;;
+};
+
+interface DOMSettableTokenList : DOMTokenList {
+            attribute DOMString value;
+};
+&lt;/script&gt;
+&lt;script&gt;
+&quot;use strict&quot;;
+var xmlDoc, detachedRange, element;
+var idlArray;
+setup(function() {
+  xmlDoc = document.implementation.createDocument(null, &quot;&quot;, null);
+  detachedRange = document.createRange();
+  detachedRange.detach();
+  element = xmlDoc.createElementNS(null, &quot;test&quot;);
+  element.setAttribute(&quot;bar&quot;, &quot;baz&quot;);
+
+  idlArray = new IdlArray();
+  idlArray.add_idls(document.querySelector(&quot;script[type=text\\/plain]&quot;).textContent);
+  idlArray.add_objects({
+    Event: ['document.createEvent(&quot;Event&quot;)', 'new Event(&quot;foo&quot;)'],
+    CustomEvent: ['new CustomEvent(&quot;foo&quot;)'],
+    XMLDocument: ['xmlDoc'],
+    DOMImplementation: ['document.implementation'],
+    DocumentFragment: ['document.createDocumentFragment()'],
+    DocumentType: ['document.doctype'],
+    Element: ['element'],
+    Attr: ['document.querySelector(&quot;[id]&quot;).attributes[0]'],
+    Text: ['document.createTextNode(&quot;abc&quot;)'],
+    ProcessingInstruction: ['xmlDoc.createProcessingInstruction(&quot;abc&quot;, &quot;def&quot;)'],
+    Comment: ['document.createComment(&quot;abc&quot;)'],
+    Range: ['document.createRange()', 'detachedRange'],
+    NodeIterator: ['document.createNodeIterator(document.body, NodeFilter.SHOW_ALL, null, false)'],
+    TreeWalker: ['document.createTreeWalker(document.body, NodeFilter.SHOW_ALL, null, false)'],
+    NodeList: ['document.querySelectorAll(&quot;script&quot;)'],
+    HTMLCollection: ['document.body.children'],
+    DOMTokenList: ['document.body.classList'],
+  });
+});
+idlArray.test();
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomlistsDOMTokenListstringifierexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomlistsDOMTokenListstringifierexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-stringifier-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/lists/DOMTokenList-stringifier-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-stringifier-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-stringifier-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+FAIL DOMTokenList stringifier assert_equals: String(classList) should compress whitespace expected &quot;a b&quot; but got &quot;   a  a b&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomlistsDOMTokenListstringifierhtmlfromrev189470trunkLayoutTestshttptestsw3cdomlistsDOMTokenListstringifierhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-stringifier.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/lists/DOMTokenList-stringifier.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-stringifier.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/lists/DOMTokenList-stringifier.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;DOMTokenList stringifier&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-domtokenlist-stringifier&quot;&gt;
+&lt;link rel=author title=Ms2ger href=&quot;mailto:Ms2ger@gmail.com&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;span class=&quot;   a  a b&quot;&gt;&lt;/span&gt;
+&lt;script&gt;
+test(function() {
+  var span = document.querySelector(&quot;span&quot;);
+  assert_equals(span.getAttribute(&quot;class&quot;), &quot;   a  a b&quot;,
+                &quot;getAttribute should return the literal value&quot;);
+  assert_equals(span.className, &quot;   a  a b&quot;,
+                &quot;className should return the literal value&quot;);
+  assert_equals(String(span.classList), &quot;a b&quot;,
+                &quot;String(classList) should compress whitespace&quot;);
+  assert_equals(span.classList.toString(), &quot;a b&quot;,
+                &quot;classList.toString() should compress whitespace&quot;);
+  assert_class_string(span.classList, &quot;DOMTokenList&quot;);
+});
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDataappendDataexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDataappendDataexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-appendData-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-appendData-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-appendData-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-appendData-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+
+PASS Text.appendData('bar') 
+PASS Text.appendData('') 
+PASS Text.appendData(non-ASCII) 
+PASS Text.appendData(null) 
+PASS Text.appendData(undefined) 
+PASS Text.appendData('', 'bar') 
+FAIL Text.appendData() assert_throws: function &quot;function () { node.appendData() }&quot; did not throw
+PASS Comment.appendData('bar') 
+PASS Comment.appendData('') 
+PASS Comment.appendData(non-ASCII) 
+PASS Comment.appendData(null) 
+PASS Comment.appendData(undefined) 
+PASS Comment.appendData('', 'bar') 
+FAIL Comment.appendData() assert_throws: function &quot;function () { node.appendData() }&quot; did not throw
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDataappendDatahtmlfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDataappendDatahtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-appendData.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-appendData.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-appendData.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-appendData.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,70 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;CharacterData.appendData&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-appenddata&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-data&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+function testNode(create, type) {
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.appendData(&quot;bar&quot;)
+    assert_equals(node.data, &quot;testbar&quot;)
+  }, type + &quot;.appendData('bar')&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.appendData(&quot;&quot;)
+    assert_equals(node.data, &quot;test&quot;)
+  }, type + &quot;.appendData('')&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+    node.appendData(&quot;, append more 資料,測試資料&quot;);
+    assert_equals(node.data, &quot;test, append more 資料,測試資料&quot;);
+    assert_equals(node.length, 25);
+  }, type + &quot;.appendData(non-ASCII)&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.appendData(null)
+    assert_equals(node.data, &quot;testnull&quot;)
+  }, type + &quot;.appendData(null)&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.appendData(undefined)
+    assert_equals(node.data, &quot;testundefined&quot;)
+  }, type + &quot;.appendData(undefined)&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.appendData(&quot;&quot;, &quot;bar&quot;)
+    assert_equals(node.data, &quot;test&quot;)
+  }, type + &quot;.appendData('', 'bar')&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_throws(new TypeError(), function() { node.appendData() });
+    assert_equals(node.data, &quot;test&quot;)
+  }, type + &quot;.appendData()&quot;)
+}
+
+testNode(function() { return document.createTextNode(&quot;test&quot;) }, &quot;Text&quot;)
+testNode(function() { return document.createComment(&quot;test&quot;) }, &quot;Comment&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatadataexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDatadataexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-data-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-data-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-data-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-data-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+
+PASS Text.data initial value 
+PASS Text.data = null 
+PASS Text.data = undefined 
+PASS Text.data = 0 
+PASS Text.data = '' 
+PASS Text.data = '--' 
+PASS Text.data = '資料' 
+PASS Text.data = '🌠 test 🌠 TEST' 
+PASS Comment.data initial value 
+PASS Comment.data = null 
+PASS Comment.data = undefined 
+PASS Comment.data = 0 
+PASS Comment.data = '' 
+PASS Comment.data = '--' 
+PASS Comment.data = '資料' 
+PASS Comment.data = '🌠 test 🌠 TEST' 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatadatahtmlfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDatadatahtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-data.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-data.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-data.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-data.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,82 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;CharacterData.data&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-data&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+function testNode(create, type) {
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+    assert_equals(node.length, 4)
+  }, type + &quot;.data initial value&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = null;
+    assert_equals(node.data, &quot;&quot;)
+    assert_equals(node.length, 0)
+  }, type + &quot;.data = null&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = undefined;
+    assert_equals(node.data, &quot;undefined&quot;)
+    assert_equals(node.length, 9)
+  }, type + &quot;.data = undefined&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = 0;
+    assert_equals(node.data, &quot;0&quot;)
+    assert_equals(node.length, 1)
+  }, type + &quot;.data = 0&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;&quot;;
+    assert_equals(node.data, &quot;&quot;)
+    assert_equals(node.length, 0)
+  }, type + &quot;.data = ''&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;--&quot;;
+    assert_equals(node.data, &quot;--&quot;)
+    assert_equals(node.length, 2)
+  }, type + &quot;.data = '--'&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;資料&quot;;
+    assert_equals(node.data, &quot;資料&quot;)
+    assert_equals(node.length, 2)
+  }, type + &quot;.data = '資料'&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;🌠 test 🌠 TEST&quot;;
+    assert_equals(node.data, &quot;🌠 test 🌠 TEST&quot;)
+    assert_equals(node.length, 15)  // Counting UTF-16 code units
+  }, type + &quot;.data = '🌠 test 🌠 TEST'&quot;)
+}
+
+testNode(function() { return document.createTextNode(&quot;test&quot;) }, &quot;Text&quot;)
+testNode(function() { return document.createComment(&quot;test&quot;) }, &quot;Comment&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatadeleteDataexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDatadeleteDataexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-deleteData-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-deleteData-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-deleteData-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-deleteData-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+
+PASS Text.deleteData() out of bounds 
+PASS Text.deleteData() at the start 
+PASS Text.deleteData() at the end 
+PASS Text.deleteData() in the middle 
+PASS Text.deleteData() with zero count 
+FAIL Text.deleteData() with small negative count IndexSizeError: DOM Exception 1
+PASS Text.deleteData() with large negative count 
+PASS Text.deleteData() with non-ascii data 
+PASS Text.deleteData() with non-BMP data 
+PASS Comment.deleteData() out of bounds 
+PASS Comment.deleteData() at the start 
+PASS Comment.deleteData() at the end 
+PASS Comment.deleteData() in the middle 
+PASS Comment.deleteData() with zero count 
+FAIL Comment.deleteData() with small negative count IndexSizeError: DOM Exception 1
+PASS Comment.deleteData() with large negative count 
+PASS Comment.deleteData() with non-ascii data 
+PASS Comment.deleteData() with non-BMP data 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatadeleteDatahtmlfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDatadeleteDatahtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-deleteData.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-deleteData.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-deleteData.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-deleteData.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,95 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;CharacterData.deleteData&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-deletedata&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-data&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+function testNode(create, type) {
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_throws(&quot;INDEX_SIZE_ERR&quot;, function() { node.deleteData(5, 10) })
+    assert_throws(&quot;INDEX_SIZE_ERR&quot;, function() { node.deleteData(5, 0) })
+    assert_throws(&quot;INDEX_SIZE_ERR&quot;, function() { node.deleteData(-1, 10) })
+    assert_throws(&quot;INDEX_SIZE_ERR&quot;, function() { node.deleteData(-1, 0) })
+  }, type + &quot;.deleteData() out of bounds&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.deleteData(0, 2)
+    assert_equals(node.data, &quot;st&quot;)
+  }, type + &quot;.deleteData() at the start&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.deleteData(2, 10)
+    assert_equals(node.data, &quot;te&quot;)
+  }, type + &quot;.deleteData() at the end&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.deleteData(1, 1)
+    assert_equals(node.data, &quot;tst&quot;)
+  }, type + &quot;.deleteData() in the middle&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.deleteData(2, 0)
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.deleteData(0, 0)
+    assert_equals(node.data, &quot;test&quot;)
+  }, type + &quot;.deleteData() with zero count&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.deleteData(2, -1)
+    assert_equals(node.data, &quot;te&quot;)
+  }, type + &quot;.deleteData() with small negative count&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.deleteData(1, -0x100000000 + 2)
+    assert_equals(node.data, &quot;tt&quot;)
+  }, type + &quot;.deleteData() with large negative count&quot;)
+
+  test(function() {
+    var node = create()
+    node.data = &quot;This is the character data test, append more 資料,更多測試資料&quot;;
+
+    node.deleteData(40, 5);
+    assert_equals(node.data, &quot;This is the character data test, append 資料,更多測試資料&quot;);
+    node.deleteData(45, 2);
+    assert_equals(node.data, &quot;This is the character data test, append 資料,更多資料&quot;);
+  }, type + &quot;.deleteData() with non-ascii data&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;🌠 test 🌠 TEST&quot;
+
+    node.deleteData(5, 8);  // Counting UTF-16 code units
+    assert_equals(node.data, &quot;🌠 teST&quot;);
+  }, type + &quot;.deleteData() with non-BMP data&quot;)
+}
+
+testNode(function() { return document.createTextNode(&quot;test&quot;) }, &quot;Text&quot;)
+testNode(function() { return document.createComment(&quot;test&quot;) }, &quot;Comment&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatainsertDataexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDatainsertDataexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-insertData-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-insertData-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-insertData-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-insertData-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+
+PASS Text.insertData() out of bounds 
+PASS Text.insertData() negative out of bounds 
+PASS Text.insertData() negative in bounds 
+PASS Text.insertData('') 
+PASS Text.insertData() at the start 
+PASS Text.insertData() in the middle 
+PASS Text.insertData() at the end 
+PASS Text.insertData() with non-ascii data 
+PASS Text.insertData() with non-BMP data 
+PASS Comment.insertData() out of bounds 
+PASS Comment.insertData() negative out of bounds 
+PASS Comment.insertData() negative in bounds 
+PASS Comment.insertData('') 
+PASS Comment.insertData() at the start 
+PASS Comment.insertData() in the middle 
+PASS Comment.insertData() at the end 
+PASS Comment.insertData() with non-ascii data 
+PASS Comment.insertData() with non-BMP data 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatainsertDatahtmlfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDatainsertDatahtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-insertData.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-insertData.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-insertData.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-insertData.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,90 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;CharacterData.insertData&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-insertdata&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-data&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+function testNode(create, type) {
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_throws(&quot;INDEX_SIZE_ERR&quot;, function() { node.insertData(5, &quot;x&quot;) })
+    assert_throws(&quot;INDEX_SIZE_ERR&quot;, function() { node.insertData(5, &quot;&quot;) })
+  }, type + &quot;.insertData() out of bounds&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_throws(&quot;INDEX_SIZE_ERR&quot;, function() { node.insertData(-1, &quot;x&quot;) })
+    assert_throws(&quot;INDEX_SIZE_ERR&quot;, function() { node.insertData(-0x100000000 + 5, &quot;x&quot;) })
+  }, type + &quot;.insertData() negative out of bounds&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.insertData(-0x100000000 + 2, &quot;X&quot;)
+    assert_equals(node.data, &quot;teXst&quot;)
+  }, type + &quot;.insertData() negative in bounds&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.insertData(0, &quot;&quot;)
+    assert_equals(node.data, &quot;test&quot;)
+  }, type + &quot;.insertData('')&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.insertData(0, &quot;X&quot;)
+    assert_equals(node.data, &quot;Xtest&quot;)
+  }, type + &quot;.insertData() at the start&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.insertData(2, &quot;X&quot;)
+    assert_equals(node.data, &quot;teXst&quot;)
+  }, type + &quot;.insertData() in the middle&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.insertData(4, &quot;ing&quot;)
+    assert_equals(node.data, &quot;testing&quot;)
+  }, type + &quot;.insertData() at the end&quot;)
+
+  test(function() {
+    var node = create()
+    node.data = &quot;This is the character data, append more 資料,測試資料&quot;;
+
+    node.insertData(26, &quot; test&quot;);
+    assert_equals(node.data, &quot;This is the character data test, append more 資料,測試資料&quot;);
+    node.insertData(48, &quot;更多&quot;);
+    assert_equals(node.data, &quot;This is the character data test, append more 資料,更多測試資料&quot;);
+  }, type + &quot;.insertData() with non-ascii data&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;🌠 test 🌠 TEST&quot;
+
+    node.insertData(5, &quot;--&quot;);  // Counting UTF-16 code units
+    assert_equals(node.data, &quot;🌠 te--st 🌠 TEST&quot;);
+  }, type + &quot;.insertData() with non-BMP data&quot;)
+}
+
+testNode(function() { return document.createTextNode(&quot;test&quot;) }, &quot;Text&quot;)
+testNode(function() { return document.createComment(&quot;test&quot;) }, &quot;Comment&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDataremoveexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDataremoveexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-remove-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-remove-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-remove-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-remove-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+
+PASS text should support remove() 
+PASS remove() should work if text doesn't have a parent 
+PASS remove() should work if text does have a parent 
+PASS remove() should work if text does have a parent and siblings 
+PASS comment should support remove() 
+PASS remove() should work if comment doesn't have a parent 
+PASS remove() should work if comment does have a parent 
+PASS remove() should work if comment does have a parent and siblings 
+PASS PI should support remove() 
+PASS remove() should work if PI doesn't have a parent 
+PASS remove() should work if PI does have a parent 
+PASS remove() should work if PI does have a parent and siblings 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDataremovehtmlfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDataremovehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-remove.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-remove.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-remove.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-remove.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,24 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;CharacterData.remove&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-childnode-remove&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;ChildNode-remove.js&quot;&gt;&lt;/script&gt;
+&lt;div id=log&gt;&lt;/div&gt;
+&lt;script&gt;
+var text, text_parent,
+    comment, comment_parent,
+    pi, pi_parent;
+setup(function() {
+  text = document.createTextNode(&quot;text&quot;);
+  text_parent = document.createElement(&quot;div&quot;);
+  comment = document.createComment(&quot;comment&quot;);
+  comment_parent = document.createElement(&quot;div&quot;);
+  pi = document.createProcessingInstruction(&quot;foo&quot;, &quot;bar&quot;);
+  pi_parent = document.createElement(&quot;div&quot;);
+});
+testRemove(text, text_parent, &quot;text&quot;);
+testRemove(comment, comment_parent, &quot;comment&quot;);
+testRemove(pi, pi_parent, &quot;PI&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatareplaceDataexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDatareplaceDataexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-replaceData-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-replaceData-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-replaceData-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-replaceData-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+
+PASS Text.replaceData() with invalid offset 
+PASS Text.replaceData() with clamped count 
+FAIL Text.replaceData() with negative clamped count IndexSizeError: DOM Exception 1
+PASS Text.replaceData() before the start 
+PASS Text.replaceData() at the start (shorter) 
+PASS Text.replaceData() at the start (equal length) 
+PASS Text.replaceData() at the start (longer) 
+PASS Text.replaceData() in the middle (shorter) 
+PASS Text.replaceData() in the middle (equal length) 
+PASS Text.replaceData() in the middle (longer) 
+PASS Text.replaceData() at the end (shorter) 
+PASS Text.replaceData() at the end (same length) 
+PASS Text.replaceData() at the end (longer) 
+PASS Text.replaceData() the whole string 
+PASS Text.replaceData() with the empty string 
+PASS Text.replaceData() with non-ASCII data 
+PASS Text.replaceData() with non-BMP data 
+PASS Comment.replaceData() with invalid offset 
+PASS Comment.replaceData() with clamped count 
+FAIL Comment.replaceData() with negative clamped count IndexSizeError: DOM Exception 1
+PASS Comment.replaceData() before the start 
+PASS Comment.replaceData() at the start (shorter) 
+PASS Comment.replaceData() at the start (equal length) 
+PASS Comment.replaceData() at the start (longer) 
+PASS Comment.replaceData() in the middle (shorter) 
+PASS Comment.replaceData() in the middle (equal length) 
+PASS Comment.replaceData() in the middle (longer) 
+PASS Comment.replaceData() at the end (shorter) 
+PASS Comment.replaceData() at the end (same length) 
+PASS Comment.replaceData() at the end (longer) 
+PASS Comment.replaceData() the whole string 
+PASS Comment.replaceData() with the empty string 
+PASS Comment.replaceData() with non-ASCII data 
+PASS Comment.replaceData() with non-BMP data 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatareplaceDatahtmlfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDatareplaceDatahtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-replaceData.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-replaceData.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-replaceData.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-replaceData.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,163 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;CharacterData.replaceData&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-replacedata&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-data&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+function testNode(create, type) {
+  // Step 2.
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_throws(&quot;IndexSizeError&quot;, function() { node.replaceData(5, 1, &quot;x&quot;) })
+    assert_throws(&quot;IndexSizeError&quot;, function() { node.replaceData(5, 0, &quot;&quot;) })
+    assert_throws(&quot;IndexSizeError&quot;, function() { node.replaceData(-1, 1, &quot;x&quot;) })
+    assert_throws(&quot;IndexSizeError&quot;, function() { node.replaceData(-1, 0, &quot;&quot;) })
+    assert_equals(node.data, &quot;test&quot;)
+  }, type + &quot;.replaceData() with invalid offset&quot;)
+
+  // Step 3.
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(2, 10, &quot;yo&quot;)
+    assert_equals(node.data, &quot;teyo&quot;)
+  }, type + &quot;.replaceData() with clamped count&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(2, -1, &quot;yo&quot;)
+    assert_equals(node.data, &quot;teyo&quot;)
+  }, type + &quot;.replaceData() with negative clamped count&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(0, 0, &quot;yo&quot;)
+    assert_equals(node.data, &quot;yotest&quot;)
+  }, type + &quot;.replaceData() before the start&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(0, 2, &quot;y&quot;)
+    assert_equals(node.data, &quot;yst&quot;)
+  }, type + &quot;.replaceData() at the start (shorter)&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(0, 2, &quot;yo&quot;)
+    assert_equals(node.data, &quot;yost&quot;)
+  }, type + &quot;.replaceData() at the start (equal length)&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(0, 2, &quot;yoa&quot;)
+    assert_equals(node.data, &quot;yoast&quot;)
+  }, type + &quot;.replaceData() at the start (longer)&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(1, 2, &quot;o&quot;)
+    assert_equals(node.data, &quot;tot&quot;)
+  }, type + &quot;.replaceData() in the middle (shorter)&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(1, 2, &quot;yo&quot;)
+    assert_equals(node.data, &quot;tyot&quot;)
+  }, type + &quot;.replaceData() in the middle (equal length)&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(1, 1, &quot;waddup&quot;)
+    assert_equals(node.data, &quot;twaddupst&quot;)
+    node.replaceData(1, 1, &quot;yup&quot;)
+    assert_equals(node.data, &quot;tyupaddupst&quot;)
+  }, type + &quot;.replaceData() in the middle (longer)&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(1, 20, &quot;yo&quot;)
+    assert_equals(node.data, &quot;tyo&quot;)
+  }, type + &quot;.replaceData() at the end (shorter)&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(2, 20, &quot;yo&quot;)
+    assert_equals(node.data, &quot;teyo&quot;)
+  }, type + &quot;.replaceData() at the end (same length)&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(4, 20, &quot;yo&quot;)
+    assert_equals(node.data, &quot;testyo&quot;)
+  }, type + &quot;.replaceData() at the end (longer)&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(0, 4, &quot;quux&quot;)
+    assert_equals(node.data, &quot;quux&quot;)
+  }, type + &quot;.replaceData() the whole string&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.replaceData(0, 4, &quot;&quot;)
+    assert_equals(node.data, &quot;&quot;)
+  }, type + &quot;.replaceData() with the empty string&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;This is the character data test, append 資料,更多資料&quot;;
+
+    node.replaceData(33, 6, &quot;other&quot;);
+    assert_equals(node.data, &quot;This is the character data test, other 資料,更多資料&quot;);
+    node.replaceData(44, 2, &quot;文字&quot;);
+    assert_equals(node.data, &quot;This is the character data test, other 資料,更多文字&quot;);
+  }, type + &quot;.replaceData() with non-ASCII data&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;🌠 test 🌠 TEST&quot;
+
+    node.replaceData(5, 8, &quot;--&quot;);  // Counting UTF-16 code units
+    assert_equals(node.data, &quot;🌠 te--ST&quot;);
+  }, type + &quot;.replaceData() with non-BMP data&quot;)
+}
+
+testNode(function() { return document.createTextNode(&quot;test&quot;) }, &quot;Text&quot;)
+testNode(function() { return document.createComment(&quot;test&quot;) }, &quot;Comment&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatasubstringDataexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDatasubstringDataexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-substringData-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-substringData-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-substringData-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-substringData-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,30 @@
</span><ins>+
+FAIL Text.substringData() with too few arguments assert_throws: function &quot;function () { node.substringData() }&quot; did not throw
+PASS Text.substringData() with too many arguments 
+PASS Text.substringData() with invalid offset 
+PASS Text.substringData() with in-bounds offset 
+PASS Text.substringData() with zero count 
+PASS Text.substringData() with very large offset 
+PASS Text.substringData() with negative offset 
+PASS Text.substringData() with string offset 
+PASS Text.substringData() with in-bounds count 
+PASS Text.substringData() with large count 
+PASS Text.substringData() with very large count 
+FAIL Text.substringData() with negative count IndexSizeError: DOM Exception 1
+PASS Text.substringData() with non-ASCII data 
+PASS Text.substringData() with non-BMP data 
+FAIL Comment.substringData() with too few arguments assert_throws: function &quot;function () { node.substringData() }&quot; did not throw
+PASS Comment.substringData() with too many arguments 
+PASS Comment.substringData() with invalid offset 
+PASS Comment.substringData() with in-bounds offset 
+PASS Comment.substringData() with zero count 
+PASS Comment.substringData() with very large offset 
+PASS Comment.substringData() with negative offset 
+PASS Comment.substringData() with string offset 
+PASS Comment.substringData() with in-bounds count 
+PASS Comment.substringData() with large count 
+PASS Comment.substringData() with very large count 
+FAIL Comment.substringData() with negative count IndexSizeError: DOM Exception 1
+PASS Comment.substringData() with non-ASCII data 
+PASS Comment.substringData() with non-BMP data 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatasubstringDatahtmlfromrev189470trunkLayoutTestshttptestsw3cdomnodesCharacterDatasubstringDatahtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-substringData.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/CharacterData-substringData.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-substringData.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-substringData.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,137 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;CharacterData.substringData&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-substringdata&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-data&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+function testNode(create, type) {
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_throws(new TypeError(), function() { node.substringData() })
+    assert_throws(new TypeError(), function() { node.substringData(0) })
+  }, type + &quot;.substringData() with too few arguments&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_equals(node.substringData(0, 1, &quot;test&quot;), &quot;t&quot;)
+  }, type + &quot;.substringData() with too many arguments&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_throws(&quot;IndexSizeError&quot;, function() { node.substringData(5, 0) })
+    assert_throws(&quot;IndexSizeError&quot;, function() { node.substringData(6, 0) })
+    assert_throws(&quot;IndexSizeError&quot;, function() { node.substringData(-1, 0) })
+  }, type + &quot;.substringData() with invalid offset&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_equals(node.substringData(0, 1), &quot;t&quot;)
+    assert_equals(node.substringData(1, 1), &quot;e&quot;)
+    assert_equals(node.substringData(2, 1), &quot;s&quot;)
+    assert_equals(node.substringData(3, 1), &quot;t&quot;)
+    assert_equals(node.substringData(4, 1), &quot;&quot;)
+  }, type + &quot;.substringData() with in-bounds offset&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_equals(node.substringData(0, 0), &quot;&quot;)
+    assert_equals(node.substringData(1, 0), &quot;&quot;)
+    assert_equals(node.substringData(2, 0), &quot;&quot;)
+    assert_equals(node.substringData(3, 0), &quot;&quot;)
+    assert_equals(node.substringData(4, 0), &quot;&quot;)
+  }, type + &quot;.substringData() with zero count&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_equals(node.substringData(0x100000000 + 0, 1), &quot;t&quot;)
+    assert_equals(node.substringData(0x100000000 + 1, 1), &quot;e&quot;)
+    assert_equals(node.substringData(0x100000000 + 2, 1), &quot;s&quot;)
+    assert_equals(node.substringData(0x100000000 + 3, 1), &quot;t&quot;)
+    assert_equals(node.substringData(0x100000000 + 4, 1), &quot;&quot;)
+  }, type + &quot;.substringData() with very large offset&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_equals(node.substringData(-0x100000000 + 2, 1), &quot;s&quot;)
+  }, type + &quot;.substringData() with negative offset&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_equals(node.substringData(&quot;test&quot;, 3), &quot;tes&quot;)
+  }, type + &quot;.substringData() with string offset&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_equals(node.substringData(0, 1), &quot;t&quot;)
+    assert_equals(node.substringData(0, 2), &quot;te&quot;)
+    assert_equals(node.substringData(0, 3), &quot;tes&quot;)
+    assert_equals(node.substringData(0, 4), &quot;test&quot;)
+  }, type + &quot;.substringData() with in-bounds count&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_equals(node.substringData(0, 5), &quot;test&quot;)
+    assert_equals(node.substringData(2, 20), &quot;st&quot;)
+  }, type + &quot;.substringData() with large count&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_equals(node.substringData(2, 0x100000000 + 1), &quot;s&quot;)
+  }, type + &quot;.substringData() with very large count&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    assert_equals(node.substringData(0, -1), &quot;test&quot;)
+    assert_equals(node.substringData(0, -0x100000000 + 2), &quot;te&quot;)
+  }, type + &quot;.substringData() with negative count&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;This is the character data test, other 資料,更多文字&quot;
+
+    assert_equals(node.substringData(12, 4), &quot;char&quot;)
+    assert_equals(node.substringData(39, 2), &quot;資料&quot;)
+  }, type + &quot;.substringData() with non-ASCII data&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;🌠 test 🌠 TEST&quot;
+
+    assert_equals(node.substringData(5, 8), &quot;st 🌠 TE&quot;)  // Counting UTF-16 code units
+  }, type + &quot;.substringData() with non-BMP data&quot;)
+}
+
+testNode(function() { return document.createTextNode(&quot;test&quot;) }, &quot;Text&quot;)
+testNode(function() { return document.createComment(&quot;test&quot;) }, &quot;Comment&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatasurrogatesexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-surrogates-expected.txt (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-surrogates-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-surrogates-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+
+PASS Text.substringData() splitting surrogate pairs 
+PASS Text.replaceData() splitting and creating surrogate pairs 
+PASS Text.deleteData() splitting and creating surrogate pairs 
+PASS Text.insertData() splitting and creating surrogate pairs 
+PASS Comment.substringData() splitting surrogate pairs 
+PASS Comment.replaceData() splitting and creating surrogate pairs 
+PASS Comment.deleteData() splitting and creating surrogate pairs 
+PASS Comment.insertData() splitting and creating surrogate pairs 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCharacterDatasurrogateshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-surrogates.html (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-surrogates.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/CharacterData-surrogates.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,74 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Splitting and joining surrogate pairs in CharacterData methods&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-substringdata&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-replacedata&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-insertdata&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-deletedata&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-characterdata-data&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+function testNode(create, type) {
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;🌠 test 🌠 TEST&quot;
+
+    assert_equals(node.substringData(1, 8), &quot;\uDF20 test \uD83C&quot;)
+  }, type + &quot;.substringData() splitting surrogate pairs&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;🌠 test 🌠 TEST&quot;
+
+    node.replaceData(1, 4, &quot;--&quot;);
+    assert_equals(node.data, &quot;\uD83C--st 🌠 TEST&quot;);
+
+    node.replaceData(1, 2, &quot;\uDF1F &quot;);
+    assert_equals(node.data, &quot;🌟 st 🌠 TEST&quot;);
+
+    node.replaceData(5, 2, &quot;---&quot;);
+    assert_equals(node.data, &quot;🌟 st---\uDF20 TEST&quot;);
+
+    node.replaceData(6, 2, &quot; \uD83D&quot;);
+    assert_equals(node.data, &quot;🌟 st- 🜠 TEST&quot;);
+  }, type + &quot;.replaceData() splitting and creating surrogate pairs&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;🌠 test 🌠 TEST&quot;
+
+    node.deleteData(1, 4);
+    assert_equals(node.data, &quot;\uD83Cst 🌠 TEST&quot;);
+
+    node.deleteData(1, 4);
+    assert_equals(node.data, &quot;🌠 TEST&quot;);
+  }, type + &quot;.deleteData() splitting and creating surrogate pairs&quot;)
+
+  test(function() {
+    var node = create()
+    assert_equals(node.data, &quot;test&quot;)
+
+    node.data = &quot;🌠 test 🌠 TEST&quot;
+
+    node.insertData(1, &quot;--&quot;);
+    assert_equals(node.data, &quot;\uD83C--\uDF20 test 🌠 TEST&quot;);
+
+    node.insertData(1, &quot;\uDF1F &quot;);
+    assert_equals(node.data, &quot;🌟 --\uDF20 test 🌠 TEST&quot;);
+
+    node.insertData(5, &quot; \uD83D&quot;);
+    assert_equals(node.data, &quot;🌟 -- 🜠 test 🌠 TEST&quot;);
+  }, type + &quot;.insertData() splitting and creating surrogate pairs&quot;)
+}
+
+testNode(function() { return document.createTextNode(&quot;test&quot;) }, &quot;Text&quot;)
+testNode(function() { return document.createComment(&quot;test&quot;) }, &quot;Comment&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNodeafterexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesChildNodeafterexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-after-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/ChildNode-after-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-after-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-after-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,47 @@
</span><ins>+
+PASS Comment.after() without any argument. 
+PASS Comment.after() with null as an argument. 
+PASS Comment.after() with undefined as an argument. 
+PASS Comment.after() with the empty string as an argument. 
+PASS Comment.after() with only text as an argument. 
+PASS Comment.after() with only one element as an argument. 
+PASS Comment.after() with one element and text as arguments. 
+PASS Comment.after() with context object itself as the argument. 
+PASS Comment.after() with context object itself and node as the arguments, switching positions. 
+PASS Comment.after() with all siblings of child as arguments. 
+PASS Comment.before() with some siblings of child as arguments; no changes in tree; viable sibling is first child. 
+PASS Comment.after() with some siblings of child as arguments; no changes in tree. 
+PASS Comment.after() when pre-insert behaves like append. 
+PASS Comment.after() with one sibling of child and text as arguments. 
+PASS Comment.after() on a child without any parent. 
+PASS Element.after() without any argument. 
+PASS Element.after() with null as an argument. 
+PASS Element.after() with undefined as an argument. 
+PASS Element.after() with the empty string as an argument. 
+PASS Element.after() with only text as an argument. 
+PASS Element.after() with only one element as an argument. 
+PASS Element.after() with one element and text as arguments. 
+PASS Element.after() with context object itself as the argument. 
+PASS Element.after() with context object itself and node as the arguments, switching positions. 
+PASS Element.after() with all siblings of child as arguments. 
+PASS Element.before() with some siblings of child as arguments; no changes in tree; viable sibling is first child. 
+PASS Element.after() with some siblings of child as arguments; no changes in tree. 
+PASS Element.after() when pre-insert behaves like append. 
+PASS Element.after() with one sibling of child and text as arguments. 
+PASS Element.after() on a child without any parent. 
+PASS Text.after() without any argument. 
+PASS Text.after() with null as an argument. 
+PASS Text.after() with undefined as an argument. 
+PASS Text.after() with the empty string as an argument. 
+PASS Text.after() with only text as an argument. 
+PASS Text.after() with only one element as an argument. 
+PASS Text.after() with one element and text as arguments. 
+PASS Text.after() with context object itself as the argument. 
+PASS Text.after() with context object itself and node as the arguments, switching positions. 
+PASS Text.after() with all siblings of child as arguments. 
+PASS Text.before() with some siblings of child as arguments; no changes in tree; viable sibling is first child. 
+PASS Text.after() with some siblings of child as arguments; no changes in tree. 
+PASS Text.after() when pre-insert behaves like append. 
+PASS Text.after() with one sibling of child and text as arguments. 
+PASS Text.after() on a child without any parent. 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNodeafterhtmlfromrev189470trunkLayoutTestshttptestsw3cdomnodesChildNodeafterhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-after.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/ChildNode-after.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-after.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-after.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,166 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;ChildNode.after&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-childnode-after&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+
+function test_after(child, nodeName, innerHTML) {
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.after();
+        assert_equals(parent.innerHTML, innerHTML);
+    }, nodeName + '.after() without any argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.after(null);
+        var expected = innerHTML + 'null';
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.after() with null as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.after(undefined);
+        var expected = innerHTML + 'undefined';
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.after() with undefined as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.after('');
+        assert_equals(parent.lastChild.data, '');
+    }, nodeName + '.after() with the empty string as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.after('text');
+        var expected = innerHTML + 'text';
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.after() with only text as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        parent.appendChild(child);
+        child.after(x);
+        var expected = innerHTML + '&lt;x&gt;&lt;/x&gt;';
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.after() with only one element as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        parent.appendChild(child);
+        child.after(x, 'text');
+        var expected = innerHTML + '&lt;x&gt;&lt;/x&gt;text';
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.after() with one element and text as arguments.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.after('text', child);
+        var expected = 'text' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.after() with context object itself as the argument.');
+
+    test(function() {
+        var parent = document.createElement('div')
+        var x = document.createElement('x');
+        parent.appendChild(x);
+        parent.appendChild(child);
+        child.after(child, x);
+        var expected = innerHTML + '&lt;x&gt;&lt;/x&gt;';
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.after() with context object itself and node as the arguments, switching positions.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        var z = document.createElement('z');
+        parent.appendChild(y);
+        parent.appendChild(child);
+        parent.appendChild(x);
+        child.after(x, y, z);
+        var expected = innerHTML + '&lt;x&gt;&lt;/x&gt;&lt;y&gt;&lt;/y&gt;&lt;z&gt;&lt;/z&gt;';
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.after() with all siblings of child as arguments.');
+
+    test(function() {
+        var parent = document.createElement('div')
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        var z = document.createElement('z');
+        parent.appendChild(child);
+        parent.appendChild(x);
+        parent.appendChild(y);
+        parent.appendChild(z);
+        child.after(x, y);
+        var expected = innerHTML + '&lt;x&gt;&lt;/x&gt;&lt;y&gt;&lt;/y&gt;&lt;z&gt;&lt;/z&gt;';
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() with some siblings of child as arguments; no changes in tree; viable sibling is first child.');
+
+    test(function() {
+        var parent = document.createElement('div')
+        var v = document.createElement('v');
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        var z = document.createElement('z');
+        parent.appendChild(child);
+        parent.appendChild(v);
+        parent.appendChild(x);
+        parent.appendChild(y);
+        parent.appendChild(z);
+        child.after(v, x);
+        var expected = innerHTML + '&lt;v&gt;&lt;/v&gt;&lt;x&gt;&lt;/x&gt;&lt;y&gt;&lt;/y&gt;&lt;z&gt;&lt;/z&gt;';
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.after() with some siblings of child as arguments; no changes in tree.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        parent.appendChild(child);
+        parent.appendChild(x);
+        parent.appendChild(y);
+        child.after(y, x);
+        var expected = innerHTML + '&lt;y&gt;&lt;/y&gt;&lt;x&gt;&lt;/x&gt;';
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.after() when pre-insert behaves like append.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        parent.appendChild(child);
+        parent.appendChild(x);
+        parent.appendChild(document.createTextNode('1'));
+        parent.appendChild(y);
+        child.after(x, '2');
+        var expected = innerHTML + '&lt;x&gt;&lt;/x&gt;21&lt;y&gt;&lt;/y&gt;';
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.after() with one sibling of child and text as arguments.');
+
+    test(function() {
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        x.after(y);
+        assert_equals(x.nextSibling, null);
+    }, nodeName + '.after() on a child without any parent.');
+}
+
+test_after(document.createComment('test'), 'Comment', '&lt;!--test--&gt;');
+test_after(document.createElement('test'), 'Element', '&lt;test&gt;&lt;/test&gt;');
+test_after(document.createTextNode('test'), 'Text', 'test');
+
+&lt;/script&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNodebeforeexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesChildNodebeforeexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-before-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/ChildNode-before-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-before-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-before-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,47 @@
</span><ins>+
+PASS Comment.before() without any argument. 
+PASS Comment.before() with null as an argument. 
+PASS Comment.before() with undefined as an argument. 
+PASS Comment.before() with the empty string as an argument. 
+PASS Comment.before() with only text as an argument. 
+PASS Comment.before() with only one element as an argument. 
+PASS Comment.before() with one element and text as arguments. 
+PASS Comment.before() with context object itself as the argument. 
+PASS Comment.before() with context object itself and node as the arguments, switching positions. 
+PASS Comment.before() with all siblings of child as arguments. 
+PASS Comment.before() with some siblings of child as arguments; no changes in tree; viable sibling is first child. 
+PASS Comment.before() with some siblings of child as arguments; no changes in tree. 
+PASS Comment.before() when pre-insert behaves like prepend. 
+PASS Comment.before() with one sibling of child and text as arguments. 
+PASS Comment.before() on a child without any parent. 
+PASS Element.before() without any argument. 
+PASS Element.before() with null as an argument. 
+PASS Element.before() with undefined as an argument. 
+PASS Element.before() with the empty string as an argument. 
+PASS Element.before() with only text as an argument. 
+PASS Element.before() with only one element as an argument. 
+PASS Element.before() with one element and text as arguments. 
+PASS Element.before() with context object itself as the argument. 
+PASS Element.before() with context object itself and node as the arguments, switching positions. 
+PASS Element.before() with all siblings of child as arguments. 
+PASS Element.before() with some siblings of child as arguments; no changes in tree; viable sibling is first child. 
+PASS Element.before() with some siblings of child as arguments; no changes in tree. 
+PASS Element.before() when pre-insert behaves like prepend. 
+PASS Element.before() with one sibling of child and text as arguments. 
+PASS Element.before() on a child without any parent. 
+PASS Text.before() without any argument. 
+PASS Text.before() with null as an argument. 
+PASS Text.before() with undefined as an argument. 
+PASS Text.before() with the empty string as an argument. 
+PASS Text.before() with only text as an argument. 
+PASS Text.before() with only one element as an argument. 
+PASS Text.before() with one element and text as arguments. 
+PASS Text.before() with context object itself as the argument. 
+PASS Text.before() with context object itself and node as the arguments, switching positions. 
+PASS Text.before() with all siblings of child as arguments. 
+PASS Text.before() with some siblings of child as arguments; no changes in tree; viable sibling is first child. 
+PASS Text.before() with some siblings of child as arguments; no changes in tree. 
+PASS Text.before() when pre-insert behaves like prepend. 
+PASS Text.before() with one sibling of child and text as arguments. 
+PASS Text.before() on a child without any parent. 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNodebeforehtmlfromrev189470trunkLayoutTestshttptestsw3cdomnodesChildNodebeforehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-before.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/ChildNode-before.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-before.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-before.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,166 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;ChildNode.before&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-childnode-before&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+
+function test_before(child, nodeName, innerHTML) {
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.before();
+        assert_equals(parent.innerHTML, innerHTML);
+    }, nodeName + '.before() without any argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.before(null);
+        var expected = 'null' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() with null as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.before(undefined);
+        var expected = 'undefined' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() with undefined as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.before('');
+        assert_equals(parent.firstChild.data, '');
+    }, nodeName + '.before() with the empty string as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.before('text');
+        var expected = 'text' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() with only text as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        parent.appendChild(child);
+        child.before(x);
+        var expected = '&lt;x&gt;&lt;/x&gt;' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() with only one element as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        parent.appendChild(child);
+        child.before(x, 'text');
+        var expected = '&lt;x&gt;&lt;/x&gt;text' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() with one element and text as arguments.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.before('text', child);
+        var expected = 'text' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() with context object itself as the argument.');
+
+    test(function() {
+        var parent = document.createElement('div')
+        var x = document.createElement('x');
+        parent.appendChild(child);
+        parent.appendChild(x);
+        child.before(x, child);
+        var expected = '&lt;x&gt;&lt;/x&gt;' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() with context object itself and node as the arguments, switching positions.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        var z = document.createElement('z');
+        parent.appendChild(y);
+        parent.appendChild(child);
+        parent.appendChild(x);
+        child.before(x, y, z);
+        var expected = '&lt;x&gt;&lt;/x&gt;&lt;y&gt;&lt;/y&gt;&lt;z&gt;&lt;/z&gt;' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() with all siblings of child as arguments.');
+
+    test(function() {
+        var parent = document.createElement('div')
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        var z = document.createElement('z');
+        parent.appendChild(x);
+        parent.appendChild(y);
+        parent.appendChild(z);
+        parent.appendChild(child);
+        child.before(y, z);
+        var expected = '&lt;x&gt;&lt;/x&gt;&lt;y&gt;&lt;/y&gt;&lt;z&gt;&lt;/z&gt;' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() with some siblings of child as arguments; no changes in tree; viable sibling is first child.');
+
+    test(function() {
+        var parent = document.createElement('div')
+        var v = document.createElement('v');
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        var z = document.createElement('z');
+        parent.appendChild(v);
+        parent.appendChild(x);
+        parent.appendChild(y);
+        parent.appendChild(z);
+        parent.appendChild(child);
+        child.before(y, z);
+        var expected = '&lt;v&gt;&lt;/v&gt;&lt;x&gt;&lt;/x&gt;&lt;y&gt;&lt;/y&gt;&lt;z&gt;&lt;/z&gt;' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() with some siblings of child as arguments; no changes in tree.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        parent.appendChild(x);
+        parent.appendChild(y);
+        parent.appendChild(child);
+        child.before(y, x);
+        var expected = '&lt;y&gt;&lt;/y&gt;&lt;x&gt;&lt;/x&gt;' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() when pre-insert behaves like prepend.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        parent.appendChild(x);
+        parent.appendChild(document.createTextNode('1'));
+        var y = document.createElement('y');
+        parent.appendChild(y);
+        parent.appendChild(child);
+        child.before(x, '2');
+        var expected = '1&lt;y&gt;&lt;/y&gt;&lt;x&gt;&lt;/x&gt;2' + innerHTML;
+        assert_equals(parent.innerHTML, expected);
+    }, nodeName + '.before() with one sibling of child and text as arguments.');
+
+    test(function() {
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        x.before(y);
+        assert_equals(x.previousSibling, null);
+    }, nodeName + '.before() on a child without any parent.');
+}
+
+test_before(document.createComment('test'), 'Comment', '&lt;!--test--&gt;');
+test_before(document.createElement('test'), 'Element', '&lt;test&gt;&lt;/test&gt;');
+test_before(document.createTextNode('test'), 'Text', 'test');
+
+&lt;/script&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNoderemovejsfromrev189470trunkLayoutTestshttptestsw3cdomnodesChildNoderemovejs"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-remove.js (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/ChildNode-remove.js) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-remove.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-remove.js        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,30 @@
</span><ins>+function testRemove(node, parent, type) {
+  test(function() {
+    assert_true(&quot;remove&quot; in node);
+    assert_equals(typeof node.remove, &quot;function&quot;);
+    assert_equals(node.remove.length, 0);
+  }, type + &quot; should support remove()&quot;);
+  test(function() {
+    assert_equals(node.parentNode, null, &quot;Node should not have a parent&quot;);
+    assert_equals(node.remove(), undefined);
+    assert_equals(node.parentNode, null, &quot;Removed new node should not have a parent&quot;);
+  }, &quot;remove() should work if &quot; + type + &quot; doesn't have a parent&quot;);
+  test(function() {
+    assert_equals(node.parentNode, null, &quot;Node should not have a parent&quot;);
+    parent.appendChild(node);
+    assert_equals(node.parentNode, parent, &quot;Appended node should have a parent&quot;);
+    assert_equals(node.remove(), undefined);
+    assert_equals(node.parentNode, null, &quot;Removed node should not have a parent&quot;);
+    assert_array_equals(parent.childNodes, [], &quot;Parent should not have children&quot;);
+  }, &quot;remove() should work if &quot; + type + &quot; does have a parent&quot;);
+  test(function() {
+    assert_equals(node.parentNode, null, &quot;Node should not have a parent&quot;);
+    var before = parent.appendChild(document.createComment(&quot;before&quot;));
+    parent.appendChild(node);
+    var after = parent.appendChild(document.createComment(&quot;after&quot;));
+    assert_equals(node.parentNode, parent, &quot;Appended node should have a parent&quot;);
+    assert_equals(node.remove(), undefined);
+    assert_equals(node.parentNode, null, &quot;Removed node should not have a parent&quot;);
+    assert_array_equals(parent.childNodes, [before, after], &quot;Parent should have two children left&quot;);
+  }, &quot;remove() should work if &quot; + type + &quot; does have a parent and siblings&quot;);
+}
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNodereplaceWithexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesChildNodereplaceWithexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-replaceWith-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/ChildNode-replaceWith-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-replaceWith-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-replaceWith-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+
+FAIL Comment.replaceWith() without any argument. assert_equals: expected &quot;&quot; but got &quot;&lt;!--test--&gt;&quot;
+PASS Comment.replaceWith() with null as an argument. 
+PASS Comment.replaceWith() with undefined as an argument. 
+PASS Comment.replaceWith() with empty string as an argument. 
+PASS Comment.replaceWith() with only text as an argument. 
+PASS Comment.replaceWith() with only one element as an argument. 
+PASS Comment.replaceWith() with sibling of child as arguments. 
+PASS Comment.replaceWith() with one sibling of child and text as arguments. 
+PASS Comment.replaceWith() with one sibling of child and child itself as arguments. 
+PASS Comment.replaceWith() with one element and text as arguments. 
+PASS Comment.replaceWith() on a parentless child with two elements as arguments. 
+FAIL Element.replaceWith() without any argument. assert_equals: expected &quot;&quot; but got &quot;&lt;test&gt;&lt;/test&gt;&quot;
+PASS Element.replaceWith() with null as an argument. 
+PASS Element.replaceWith() with undefined as an argument. 
+PASS Element.replaceWith() with empty string as an argument. 
+PASS Element.replaceWith() with only text as an argument. 
+PASS Element.replaceWith() with only one element as an argument. 
+PASS Element.replaceWith() with sibling of child as arguments. 
+PASS Element.replaceWith() with one sibling of child and text as arguments. 
+PASS Element.replaceWith() with one sibling of child and child itself as arguments. 
+PASS Element.replaceWith() with one element and text as arguments. 
+PASS Element.replaceWith() on a parentless child with two elements as arguments. 
+FAIL Text.replaceWith() without any argument. assert_equals: expected &quot;&quot; but got &quot;test&quot;
+PASS Text.replaceWith() with null as an argument. 
+PASS Text.replaceWith() with undefined as an argument. 
+PASS Text.replaceWith() with empty string as an argument. 
+PASS Text.replaceWith() with only text as an argument. 
+PASS Text.replaceWith() with only one element as an argument. 
+PASS Text.replaceWith() with sibling of child as arguments. 
+PASS Text.replaceWith() with one sibling of child and text as arguments. 
+PASS Text.replaceWith() with one sibling of child and child itself as arguments. 
+PASS Text.replaceWith() with one element and text as arguments. 
+PASS Text.replaceWith() on a parentless child with two elements as arguments. 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesChildNodereplaceWithhtmlfromrev189470trunkLayoutTestshttptestsw3cdomnodesChildNodereplaceWithhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-replaceWith.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/ChildNode-replaceWith.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-replaceWith.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/ChildNode-replaceWith.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,110 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;ChildNode.replaceWith&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-childnode-replaceWith&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+
+function test_replaceWith(child, nodeName, innerHTML) {
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.replaceWith();
+        assert_equals(parent.innerHTML, '');
+    }, nodeName + '.replaceWith() without any argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.replaceWith(null);
+        assert_equals(parent.innerHTML, 'null');
+    }, nodeName + '.replaceWith() with null as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.replaceWith(undefined);
+        assert_equals(parent.innerHTML, 'undefined');
+    }, nodeName + '.replaceWith() with undefined as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.replaceWith('');
+        assert_equals(parent.innerHTML, '');
+    }, nodeName + '.replaceWith() with empty string as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        parent.appendChild(child);
+        child.replaceWith('text');
+        assert_equals(parent.innerHTML, 'text');
+    }, nodeName + '.replaceWith() with only text as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        parent.appendChild(child);
+        child.replaceWith(x);
+        assert_equals(parent.innerHTML, '&lt;x&gt;&lt;/x&gt;');
+    }, nodeName + '.replaceWith() with only one element as an argument.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        var z = document.createElement('z');
+        parent.appendChild(y);
+        parent.appendChild(child);
+        parent.appendChild(x);
+        child.replaceWith(x, y, z);
+        assert_equals(parent.innerHTML, '&lt;x&gt;&lt;/x&gt;&lt;y&gt;&lt;/y&gt;&lt;z&gt;&lt;/z&gt;');
+    }, nodeName + '.replaceWith() with sibling of child as arguments.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        parent.appendChild(child);
+        parent.appendChild(x);
+        parent.appendChild(document.createTextNode('1'));
+        child.replaceWith(x, '2');
+        assert_equals(parent.innerHTML, '&lt;x&gt;&lt;/x&gt;21');
+    }, nodeName + '.replaceWith() with one sibling of child and text as arguments.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        parent.appendChild(child);
+        parent.appendChild(x);
+        parent.appendChild(document.createTextNode('text'));
+        child.replaceWith(x, child);
+        assert_equals(parent.innerHTML, '&lt;x&gt;&lt;/x&gt;' + innerHTML + 'text');
+    }, nodeName + '.replaceWith() with one sibling of child and child itself as arguments.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        parent.appendChild(child);
+        child.replaceWith(x, 'text');
+        assert_equals(parent.innerHTML, '&lt;x&gt;&lt;/x&gt;text');
+    }, nodeName + '.replaceWith() with one element and text as arguments.');
+
+    test(function() {
+        var parent = document.createElement('div');
+        var x = document.createElement('x');
+        var y = document.createElement('y');
+        parent.appendChild(x);
+        parent.appendChild(y);
+        child.replaceWith(x, y);
+        assert_equals(parent.innerHTML, '&lt;x&gt;&lt;/x&gt;&lt;y&gt;&lt;/y&gt;');
+    }, nodeName + '.replaceWith() on a parentless child with two elements as arguments.');
+}
+
+test_replaceWith(document.createComment('test'), 'Comment', '&lt;!--test--&gt;');
+test_replaceWith(document.createElement('test'), 'Element', '&lt;test&gt;&lt;/test&gt;');
+test_replaceWith(document.createTextNode('test'), 'Text', 'test');
+
+&lt;/script&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCommentTextconstructorjsfromrev189470trunkLayoutTestshttptestsw3cdomnodesCommentTextconstructorjs"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Comment-Text-constructor.js (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/Comment-Text-constructor.js) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Comment-Text-constructor.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Comment-Text-constructor.js        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,77 @@
</span><ins>+function test_constructor(ctor) {
+  test(function() {
+    var object = new window[ctor]();
+    assert_equals(Object.getPrototypeOf(object),
+                  window[ctor].prototype, &quot;Prototype chain: &quot; + ctor);
+    assert_equals(Object.getPrototypeOf(Object.getPrototypeOf(object)),
+                  CharacterData.prototype, &quot;Prototype chain: CharacterData&quot;);
+    assert_equals(Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(object))),
+                  Node.prototype, &quot;Prototype chain: Node&quot;);
+  }, &quot;new &quot; + ctor + &quot;(): prototype chain&quot;);
+
+  test(function() {
+    var object = new window[ctor]();
+    assert_true(object instanceof Node, &quot;Should be a Node&quot;);
+    assert_true(object instanceof CharacterData, &quot;Should be a CharacterData&quot;);
+    assert_true(object instanceof window[ctor], &quot;Should be a &quot; + ctor);
+  }, &quot;new &quot; + ctor + &quot;(): instanceof&quot;);
+
+  test(function() {
+    var object = new window[ctor]();
+    assert_equals(object.data, &quot;&quot;);
+    assert_equals(object.nodeValue, &quot;&quot;);
+    assert_equals(object.ownerDocument, document);
+  }, &quot;new &quot; + ctor + &quot;(): no arguments&quot;);
+
+  var arguments = [
+    [undefined, &quot;&quot;],
+    [null, &quot;null&quot;],
+    [42, &quot;42&quot;],
+    [&quot;&quot;, &quot;&quot;],
+    [&quot;-&quot;, &quot;-&quot;],
+    [&quot;--&quot;, &quot;--&quot;],
+    [&quot;--&gt;&quot;, &quot;--&gt;&quot;],
+    [&quot;&lt;!--&quot;, &quot;&lt;!--&quot;],
+    [&quot;\u0000&quot;, &quot;\u0000&quot;],
+    [&quot;\u0000test&quot;, &quot;\u0000test&quot;],
+    [&quot;&amp;amp;&quot;, &quot;&amp;amp;&quot;],
+  ];
+
+  arguments.forEach(function(a) {
+    var argument = a[0], expected = a[1];
+    test(function() {
+      var object = new window[ctor](argument);
+      assert_equals(object.data, expected);
+      assert_equals(object.nodeValue, expected);
+      assert_equals(object.ownerDocument, document);
+    }, &quot;new &quot; + ctor + &quot;(): &quot; + format_value(argument));
+  });
+
+  test(function() {
+    var called = [];
+    var object = new window[ctor]({
+      toString: function() {
+        called.push(&quot;first&quot;);
+        return &quot;text&quot;;
+      }
+    }, {
+      toString: function() {
+        called.push(&quot;second&quot;);
+        assert_unreached(&quot;Should not look at the second argument.&quot;);
+      }
+    });
+    assert_equals(object.data, &quot;text&quot;);
+    assert_equals(object.nodeValue, &quot;text&quot;);
+    assert_equals(object.ownerDocument, document);
+    assert_array_equals(called, [&quot;first&quot;]);
+  }, &quot;new &quot; + ctor + &quot;(): two arguments&quot;)
+
+  async_test(&quot;new &quot; + ctor + &quot;() should get the correct ownerDocument across globals&quot;).step(function() {
+    var iframe = document.createElement(&quot;iframe&quot;);
+    iframe.onload = this.step_func_done(function() {
+      var object = new iframe.contentWindow[ctor]();
+      assert_equals(object.ownerDocument, iframe.contentDocument);
+    });
+    document.body.appendChild(iframe);
+  });
+}
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCommentconstructorexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesCommentconstructorexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Comment-constructor-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/Comment-constructor-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Comment-constructor-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Comment-constructor-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+
+
+PASS new Comment(): prototype chain 
+PASS new Comment(): instanceof 
+PASS new Comment(): no arguments 
+FAIL new Comment(): undefined assert_equals: expected &quot;&quot; but got &quot;undefined&quot;
+PASS new Comment(): null 
+PASS new Comment(): 42 
+PASS new Comment(): &quot;&quot; 
+PASS new Comment(): &quot;-&quot; 
+PASS new Comment(): &quot;--&quot; 
+PASS new Comment(): &quot;--&gt;&quot; 
+PASS new Comment(): &quot;&lt;!--&quot; 
+PASS new Comment(): &quot;\0&quot; 
+PASS new Comment(): &quot;\0test&quot; 
+PASS new Comment(): &quot;&amp;amp;&quot; 
+PASS new Comment(): two arguments 
+PASS new Comment() should get the correct ownerDocument across globals 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesCommentconstructorhtmlfromrev189470trunkLayoutTestshttptestsw3cdomnodesCommentconstructorhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Comment-constructor.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/Comment-constructor.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Comment-constructor.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Comment-constructor.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Comment constructor&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-comment&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Comment-Text-constructor.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+test_constructor(&quot;Comment&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationcreateDocumentexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesDOMImplementationcreateDocumentexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/DOMImplementation-createDocument-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,261 @@
</span><ins>+
+PASS DOMImplementation.createDocument(namespace, qualifiedName, doctype) 
+PASS createDocument test 0: null,undefined,null,null 
+FAIL createDocument test 0: metadata for null,undefined,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 1: null,&quot;foo&quot;,null,null 
+FAIL createDocument test 1: metadata for null,&quot;foo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 2: null,&quot;1foo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 3: null,&quot;f1oo&quot;,null,null 
+FAIL createDocument test 3: metadata for null,&quot;f1oo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 4: null,&quot;foo1&quot;,null,null 
+FAIL createDocument test 4: metadata for null,&quot;foo1&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 5: null,&quot;1foo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 6: null,&quot;̀foo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 7: null,&quot;}foo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 8: null,&quot;f}oo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 9: null,&quot;foo}&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 10: null,&quot;\x{FFFF}foo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 11: null,&quot;f\x{FFFF}oo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 12: null,&quot;foo\x{FFFF}&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 13: null,&quot;&lt;foo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 14: null,&quot;foo&gt;&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 15: null,&quot;&lt;foo&gt;&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 16: null,&quot;f&lt;oo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 17: null,&quot;^^&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 18: null,&quot;:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 19: null,&quot;f:oo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 20: null,&quot;foo:&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 21: null,&quot;:&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 22: null,&quot;xml&quot;,null,null 
+FAIL createDocument test 22: metadata for null,&quot;xml&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 23: null,&quot;xmlns&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 24: null,&quot;xmlfoo&quot;,null,null 
+FAIL createDocument test 24: metadata for null,&quot;xmlfoo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 25: null,&quot;xml:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 26: null,&quot;xmlns:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 27: null,&quot;xmlfoo:bar&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 28: null,&quot;null:xml&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 29: &quot;&quot;,&quot;:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 30: &quot;&quot;,&quot;f:oo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 31: &quot;&quot;,&quot;foo:&quot;,null,&quot;NAMESPACE_ERR&quot; 
+FAIL createDocument test 32: undefined,undefined,null,null assert_equals: expected (object) null but got (string) &quot;undefined&quot;
+FAIL createDocument test 32: metadata for undefined,undefined,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+FAIL createDocument test 33: undefined,&quot;foo&quot;,null,null assert_equals: expected (object) null but got (string) &quot;undefined&quot;
+FAIL createDocument test 33: metadata for undefined,&quot;foo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 34: undefined,&quot;1foo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+FAIL createDocument test 35: undefined,&quot;f1oo&quot;,null,null assert_equals: expected (object) null but got (string) &quot;undefined&quot;
+FAIL createDocument test 35: metadata for undefined,&quot;f1oo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+FAIL createDocument test 36: undefined,&quot;foo1&quot;,null,null assert_equals: expected (object) null but got (string) &quot;undefined&quot;
+FAIL createDocument test 36: metadata for undefined,&quot;foo1&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 37: undefined,&quot;:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+FAIL createDocument test 38: undefined,&quot;f:oo&quot;,null,&quot;NAMESPACE_ERR&quot; assert_throws: function &quot;function () { document.implementation.createDocument(name...&quot; did not throw
+PASS createDocument test 39: undefined,&quot;foo:&quot;,null,&quot;NAMESPACE_ERR&quot; 
+FAIL createDocument test 40: undefined,&quot;xml&quot;,null,null assert_equals: expected (object) null but got (string) &quot;undefined&quot;
+FAIL createDocument test 40: metadata for undefined,&quot;xml&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 41: undefined,&quot;xmlns&quot;,null,&quot;NAMESPACE_ERR&quot; 
+FAIL createDocument test 42: undefined,&quot;xmlfoo&quot;,null,null assert_equals: expected (object) null but got (string) &quot;undefined&quot;
+FAIL createDocument test 42: metadata for undefined,&quot;xmlfoo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 43: undefined,&quot;xml:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 44: undefined,&quot;xmlns:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+FAIL createDocument test 45: undefined,&quot;xmlfoo:bar&quot;,null,&quot;NAMESPACE_ERR&quot; assert_throws: function &quot;function () { document.implementation.createDocument(name...&quot; did not throw
+PASS createDocument test 46: &quot;http://example.com/&quot;,&quot;foo&quot;,null,null 
+FAIL createDocument test 46: metadata for &quot;http://example.com/&quot;,&quot;foo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 47: &quot;http://example.com/&quot;,&quot;1foo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 48: &quot;http://example.com/&quot;,&quot;f1oo&quot;,null,null 
+FAIL createDocument test 48: metadata for &quot;http://example.com/&quot;,&quot;f1oo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 49: &quot;http://example.com/&quot;,&quot;foo1&quot;,null,null 
+FAIL createDocument test 49: metadata for &quot;http://example.com/&quot;,&quot;foo1&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 50: &quot;http://example.com/&quot;,&quot;:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 51: &quot;http://example.com/&quot;,&quot;f:oo&quot;,null,null 
+FAIL createDocument test 51: metadata for &quot;http://example.com/&quot;,&quot;f:oo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 52: &quot;http://example.com/&quot;,&quot;foo:&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 53: &quot;http://example.com/&quot;,&quot;_:_&quot;,null,null 
+FAIL createDocument test 53: metadata for &quot;http://example.com/&quot;,&quot;_:_&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 54: &quot;http://example.com/&quot;,&quot;_:h0&quot;,null,null 
+FAIL createDocument test 54: metadata for &quot;http://example.com/&quot;,&quot;_:h0&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 55: &quot;http://example.com/&quot;,&quot;_:test&quot;,null,null 
+FAIL createDocument test 55: metadata for &quot;http://example.com/&quot;,&quot;_:test&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 56: &quot;http://example.com/&quot;,&quot;l_:_&quot;,null,null 
+FAIL createDocument test 56: metadata for &quot;http://example.com/&quot;,&quot;l_:_&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 57: &quot;http://example.com/&quot;,&quot;ns:_0&quot;,null,null 
+FAIL createDocument test 57: metadata for &quot;http://example.com/&quot;,&quot;ns:_0&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 58: &quot;http://example.com/&quot;,&quot;ns:a0&quot;,null,null 
+FAIL createDocument test 58: metadata for &quot;http://example.com/&quot;,&quot;ns:a0&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 59: &quot;http://example.com/&quot;,&quot;ns0:test&quot;,null,null 
+FAIL createDocument test 59: metadata for &quot;http://example.com/&quot;,&quot;ns0:test&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 60: &quot;http://example.com/&quot;,&quot;a.b:c&quot;,null,null 
+FAIL createDocument test 60: metadata for &quot;http://example.com/&quot;,&quot;a.b:c&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 61: &quot;http://example.com/&quot;,&quot;a-b:c&quot;,null,null 
+FAIL createDocument test 61: metadata for &quot;http://example.com/&quot;,&quot;a-b:c&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 62: &quot;http://example.com/&quot;,&quot;a-b:c&quot;,null,null 
+FAIL createDocument test 62: metadata for &quot;http://example.com/&quot;,&quot;a-b:c&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 63: &quot;http://example.com/&quot;,&quot;xml&quot;,null,null 
+FAIL createDocument test 63: metadata for &quot;http://example.com/&quot;,&quot;xml&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 64: &quot;http://example.com/&quot;,&quot;xmlns&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 65: &quot;http://example.com/&quot;,&quot;XMLNS&quot;,null,null 
+FAIL createDocument test 65: metadata for &quot;http://example.com/&quot;,&quot;XMLNS&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 66: &quot;http://example.com/&quot;,&quot;xmlfoo&quot;,null,null 
+FAIL createDocument test 66: metadata for &quot;http://example.com/&quot;,&quot;xmlfoo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 67: &quot;http://example.com/&quot;,&quot;xml:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 68: &quot;http://example.com/&quot;,&quot;XML:foo&quot;,null,null 
+FAIL createDocument test 68: metadata for &quot;http://example.com/&quot;,&quot;XML:foo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 69: &quot;http://example.com/&quot;,&quot;xmlns:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 70: &quot;http://example.com/&quot;,&quot;XMLNS:foo&quot;,null,null 
+FAIL createDocument test 70: metadata for &quot;http://example.com/&quot;,&quot;XMLNS:foo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 71: &quot;http://example.com/&quot;,&quot;xmlfoo:bar&quot;,null,null 
+FAIL createDocument test 71: metadata for &quot;http://example.com/&quot;,&quot;xmlfoo:bar&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 72: &quot;http://example.com/&quot;,&quot;prefix::local&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 73: &quot;http://example.com/&quot;,&quot;namespaceURI:{&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 74: &quot;http://example.com/&quot;,&quot;namespaceURI:}&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 75: &quot;http://example.com/&quot;,&quot;namespaceURI:~&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 76: &quot;http://example.com/&quot;,&quot;namespaceURI:'&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 77: &quot;http://example.com/&quot;,&quot;namespaceURI:!&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 78: &quot;http://example.com/&quot;,&quot;namespaceURI:@&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 79: &quot;http://example.com/&quot;,&quot;namespaceURI:#&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 80: &quot;http://example.com/&quot;,&quot;namespaceURI:$&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 81: &quot;http://example.com/&quot;,&quot;namespaceURI:%&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 82: &quot;http://example.com/&quot;,&quot;namespaceURI:^&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 83: &quot;http://example.com/&quot;,&quot;namespaceURI:&amp;&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 84: &quot;http://example.com/&quot;,&quot;namespaceURI:*&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 85: &quot;http://example.com/&quot;,&quot;namespaceURI:(&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 86: &quot;http://example.com/&quot;,&quot;namespaceURI:)&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 87: &quot;http://example.com/&quot;,&quot;namespaceURI:+&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 88: &quot;http://example.com/&quot;,&quot;namespaceURI:=&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 89: &quot;http://example.com/&quot;,&quot;namespaceURI:[&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 90: &quot;http://example.com/&quot;,&quot;namespaceURI:]&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 91: &quot;http://example.com/&quot;,&quot;namespaceURI:\\&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 92: &quot;http://example.com/&quot;,&quot;namespaceURI:/&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 93: &quot;http://example.com/&quot;,&quot;namespaceURI:;&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 94: &quot;http://example.com/&quot;,&quot;namespaceURI:`&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 95: &quot;http://example.com/&quot;,&quot;namespaceURI:&lt;&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 96: &quot;http://example.com/&quot;,&quot;namespaceURI:&gt;&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 97: &quot;http://example.com/&quot;,&quot;namespaceURI:,&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 98: &quot;http://example.com/&quot;,&quot;namespaceURI:a &quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 99: &quot;http://example.com/&quot;,&quot;namespaceURI:\&quot;&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 100: &quot;/&quot;,&quot;foo&quot;,null,null 
+FAIL createDocument test 100: metadata for &quot;/&quot;,&quot;foo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 101: &quot;/&quot;,&quot;1foo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 102: &quot;/&quot;,&quot;f1oo&quot;,null,null 
+FAIL createDocument test 102: metadata for &quot;/&quot;,&quot;f1oo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 103: &quot;/&quot;,&quot;foo1&quot;,null,null 
+FAIL createDocument test 103: metadata for &quot;/&quot;,&quot;foo1&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 104: &quot;/&quot;,&quot;:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 105: &quot;/&quot;,&quot;f:oo&quot;,null,null 
+FAIL createDocument test 105: metadata for &quot;/&quot;,&quot;f:oo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 106: &quot;/&quot;,&quot;foo:&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 107: &quot;/&quot;,&quot;xml&quot;,null,null 
+FAIL createDocument test 107: metadata for &quot;/&quot;,&quot;xml&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 108: &quot;/&quot;,&quot;xmlns&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 109: &quot;/&quot;,&quot;xmlfoo&quot;,null,null 
+FAIL createDocument test 109: metadata for &quot;/&quot;,&quot;xmlfoo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 110: &quot;/&quot;,&quot;xml:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 111: &quot;/&quot;,&quot;xmlns:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 112: &quot;/&quot;,&quot;xmlfoo:bar&quot;,null,null 
+FAIL createDocument test 112: metadata for &quot;/&quot;,&quot;xmlfoo:bar&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 113: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;foo&quot;,null,null 
+FAIL createDocument test 113: metadata for &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;foo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 114: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;1foo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 115: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;f1oo&quot;,null,null 
+FAIL createDocument test 115: metadata for &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;f1oo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 116: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;foo1&quot;,null,null 
+FAIL createDocument test 116: metadata for &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;foo1&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 117: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 118: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;f:oo&quot;,null,null 
+FAIL createDocument test 118: metadata for &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;f:oo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 119: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;foo:&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 120: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;xml&quot;,null,null 
+FAIL createDocument test 120: metadata for &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;xml&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 121: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;xmlns&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 122: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;xmlfoo&quot;,null,null 
+FAIL createDocument test 122: metadata for &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;xmlfoo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 123: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;xml:foo&quot;,null,null 
+FAIL createDocument test 123: metadata for &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;xml:foo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 124: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;xmlns:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 125: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;xmlfoo:bar&quot;,null,null 
+FAIL createDocument test 125: metadata for &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;xmlfoo:bar&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 126: &quot;http://www.w3.org/XML/1998/namespaces&quot;,&quot;xml:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 127: &quot;http://www.w3.org/xml/1998/namespace&quot;,&quot;xml:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 128: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 129: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;1foo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 130: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;f1oo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 131: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;foo1&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 132: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 133: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;f:oo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 134: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;foo:&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 135: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;xml&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 136: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;xmlns&quot;,null,null 
+FAIL createDocument test 136: metadata for &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;xmlns&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 137: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;xmlfoo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 138: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;xml:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 139: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;xmlns:foo&quot;,null,null 
+FAIL createDocument test 139: metadata for &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;xmlns:foo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 140: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;xmlfoo:bar&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 141: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;foo:xmlns&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 142: &quot;foo:&quot;,&quot;foo&quot;,null,null 
+FAIL createDocument test 142: metadata for &quot;foo:&quot;,&quot;foo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 143: &quot;foo:&quot;,&quot;1foo&quot;,null,&quot;INVALID_CHARACTER_ERR&quot; 
+PASS createDocument test 144: &quot;foo:&quot;,&quot;f1oo&quot;,null,null 
+FAIL createDocument test 144: metadata for &quot;foo:&quot;,&quot;f1oo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 145: &quot;foo:&quot;,&quot;foo1&quot;,null,null 
+FAIL createDocument test 145: metadata for &quot;foo:&quot;,&quot;foo1&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 146: &quot;foo:&quot;,&quot;:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 147: &quot;foo:&quot;,&quot;f:oo&quot;,null,null 
+FAIL createDocument test 147: metadata for &quot;foo:&quot;,&quot;f:oo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 148: &quot;foo:&quot;,&quot;foo:&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 149: &quot;foo:&quot;,&quot;xml&quot;,null,null 
+FAIL createDocument test 149: metadata for &quot;foo:&quot;,&quot;xml&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 150: &quot;foo:&quot;,&quot;xmlns&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 151: &quot;foo:&quot;,&quot;xmlfoo&quot;,null,null 
+FAIL createDocument test 151: metadata for &quot;foo:&quot;,&quot;xmlfoo&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 152: &quot;foo:&quot;,&quot;xml:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 153: &quot;foo:&quot;,&quot;xmlns:foo&quot;,null,&quot;NAMESPACE_ERR&quot; 
+PASS createDocument test 154: &quot;foo:&quot;,&quot;xmlfoo:bar&quot;,null,null 
+FAIL createDocument test 154: metadata for &quot;foo:&quot;,&quot;xmlfoo:bar&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+FAIL createDocument test 155: null,null,false,object &quot;TypeError&quot; assert_throws: function &quot;function () { document.implementation.createDocument(name...&quot; did not throw
+PASS createDocument test 156: null,null,null,null 
+FAIL createDocument test 156: metadata for null,null,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 157: null,&quot;&quot;,null,null 
+FAIL createDocument test 157: metadata for null,&quot;&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 158: undefined,null,undefined,null 
+FAIL createDocument test 158: metadata for undefined,null,undefined assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+FAIL createDocument test 159: undefined,undefined,undefined,null assert_equals: expected (object) null but got (string) &quot;undefined&quot;
+FAIL createDocument test 159: metadata for undefined,undefined,undefined assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 160: undefined,&quot;&quot;,undefined,null 
+FAIL createDocument test 160: metadata for undefined,&quot;&quot;,undefined assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 161: &quot;http://example.com/&quot;,null,null,null 
+FAIL createDocument test 161: metadata for &quot;http://example.com/&quot;,null,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 162: &quot;http://example.com/&quot;,&quot;&quot;,null,null 
+FAIL createDocument test 162: metadata for &quot;http://example.com/&quot;,&quot;&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 163: &quot;/&quot;,null,null,null 
+FAIL createDocument test 163: metadata for &quot;/&quot;,null,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 164: &quot;/&quot;,&quot;&quot;,null,null 
+FAIL createDocument test 164: metadata for &quot;/&quot;,&quot;&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 165: &quot;http://www.w3.org/XML/1998/namespace&quot;,null,null,null 
+FAIL createDocument test 165: metadata for &quot;http://www.w3.org/XML/1998/namespace&quot;,null,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 166: &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;&quot;,null,null 
+FAIL createDocument test 166: metadata for &quot;http://www.w3.org/XML/1998/namespace&quot;,&quot;&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 167: &quot;http://www.w3.org/2000/xmlns/&quot;,null,null,null 
+FAIL createDocument test 167: metadata for &quot;http://www.w3.org/2000/xmlns/&quot;,null,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 168: &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;&quot;,null,null 
+FAIL createDocument test 168: metadata for &quot;http://www.w3.org/2000/xmlns/&quot;,&quot;&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 169: &quot;foo:&quot;,null,null,null 
+FAIL createDocument test 169: metadata for &quot;foo:&quot;,null,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 170: &quot;foo:&quot;,&quot;&quot;,null,null 
+FAIL createDocument test 170: metadata for &quot;foo:&quot;,&quot;&quot;,null assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 171: null,null,DocumentType node,null 
+FAIL createDocument test 171: metadata for null,null,DocumentType node assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 172: null,null,DocumentType node,null 
+FAIL createDocument test 172: metadata for null,null,DocumentType node assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 173: null,null,DocumentType node,null 
+FAIL createDocument test 173: metadata for null,null,DocumentType node assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 174: null,null,DocumentType node,null 
+FAIL createDocument test 174: metadata for null,null,DocumentType node assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 175: null,null,DocumentType node,null 
+FAIL createDocument test 175: metadata for null,null,DocumentType node assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 176: null,&quot;foo&quot;,DocumentType node,null 
+FAIL createDocument test 176: metadata for null,&quot;foo&quot;,DocumentType node assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 177: &quot;foo&quot;,null,DocumentType node,null 
+FAIL createDocument test 177: metadata for &quot;foo&quot;,null,DocumentType node assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+PASS createDocument test 178: &quot;foo&quot;,&quot;bar&quot;,DocumentType node,null 
+FAIL createDocument test 178: metadata for &quot;foo&quot;,&quot;bar&quot;,DocumentType node assert_equals: expected (string) &quot;UTF-8&quot; but got (object) null
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationcreateDocumenthtmlfromrev189470trunkLayoutTestshttptestsw3cdomnodesDOMImplementationcreateDocumenthtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument.html (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/DOMImplementation-createDocument.html) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocument.html        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,116 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;DOMImplementation.createDocument(namespace, qualifiedName, doctype)&lt;/title&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-domimplementation-createdocument&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-document-createelementns&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-node-nodetype&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-document-documentelement&quot;&gt;
+&lt;link rel=help href=&quot;https://dom.spec.whatwg.org/#dom-document-doctype&quot;&gt;
+&lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Document-createElementNS.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+test(function() {
+  var tests = createElementNS_tests.map(function(t) {
+    return [t[0], t[1], null, t[2]]
+  }).concat([
+    /* Arrays with four elements:
+     *   the namespace argument
+     *   the qualifiedName argument
+     *   the doctype argument
+     *   the expected exception, or null if none
+     */
+    [null, null, false, new TypeError()],
+    [null, null, null, null],
+    [null, &quot;&quot;, null, null],
+    [undefined, null, undefined, null],
+    [undefined, undefined, undefined, null],
+    [undefined, &quot;&quot;, undefined, null],
+    [&quot;http://example.com/&quot;, null, null, null],
+    [&quot;http://example.com/&quot;, &quot;&quot;, null, null],
+    [&quot;/&quot;, null, null, null],
+    [&quot;/&quot;, &quot;&quot;, null, null],
+    [&quot;http://www.w3.org/XML/1998/namespace&quot;, null, null, null],
+    [&quot;http://www.w3.org/XML/1998/namespace&quot;, &quot;&quot;, null, null],
+    [&quot;http://www.w3.org/2000/xmlns/&quot;, null, null, null],
+    [&quot;http://www.w3.org/2000/xmlns/&quot;, &quot;&quot;, null, null],
+    [&quot;foo:&quot;, null, null, null],
+    [&quot;foo:&quot;, &quot;&quot;, null, null],
+    [null, null, document.implementation.createDocumentType(&quot;foo&quot;, &quot;&quot;, &quot;&quot;), null],
+    [null, null, document.doctype, null], // This causes a horrible WebKit bug (now fixed in trunk).
+    [null, null, function() {
+        var foo = document.implementation.createDocumentType(&quot;foo&quot;, &quot;&quot;, &quot;&quot;);
+        document.implementation.createDocument(null, null, foo);
+        return foo;
+     }(), null], // DOCTYPE already associated with a document.
+    [null, null, function() {
+        var bar = document.implementation.createDocument(null, null, null);
+        return bar.implementation.createDocumentType(&quot;bar&quot;, &quot;&quot;, &quot;&quot;);
+     }(), null], // DOCTYPE created by a different implementation.
+    [null, null, function() {
+        var bar = document.implementation.createDocument(null, null, null);
+        var magic = bar.implementation.createDocumentType(&quot;bar&quot;, &quot;&quot;, &quot;&quot;);
+        bar.implementation.createDocument(null, null, magic);
+        return magic;
+     }(), null], // DOCTYPE created by a different implementation and already associated with a document.
+    [null, &quot;foo&quot;, document.implementation.createDocumentType(&quot;foo&quot;, &quot;&quot;, &quot;&quot;), null],
+    [&quot;foo&quot;, null, document.implementation.createDocumentType(&quot;foo&quot;, &quot;&quot;, &quot;&quot;), null],
+    [&quot;foo&quot;, &quot;bar&quot;, document.implementation.createDocumentType(&quot;foo&quot;, &quot;&quot;, &quot;&quot;), null],
+  ])
+
+  tests.forEach(function(t, i) {
+    var namespace = t[0], qualifiedName = t[1], doctype = t[2], expected = t[3]
+    test(function() {
+      if (expected != null) {
+        assert_throws(expected, function() { document.implementation.createDocument(namespace, qualifiedName, doctype) })
+      } else {
+        var doc = document.implementation.createDocument(namespace, qualifiedName, doctype)
+        assert_equals(doc.nodeType, Node.DOCUMENT_NODE)
+        assert_equals(doc.nodeType, doc.DOCUMENT_NODE)
+        assert_equals(doc.nodeName, &quot;#document&quot;)
+        assert_equals(doc.nodeValue, null)
+        var omitRootElement = qualifiedName === null || String(qualifiedName) === &quot;&quot;
+        if (omitRootElement) {
+          assert_equals(doc.documentElement, null)
+        } else {
+          var element = doc.documentElement
+          assert_not_equals(element, null)
+          assert_equals(element.nodeType, Node.ELEMENT_NODE)
+          assert_equals(element.ownerDocument, doc)
+          var qualified = String(qualifiedName), names = []
+          if (qualified.indexOf(&quot;:&quot;) &gt;= 0) {
+            names = qualified.split(&quot;:&quot;, 2)
+          } else {
+            names = [null, qualified]
+          }
+          assert_equals(element.prefix, names[0])
+          assert_equals(element.localName, names[1])
+          assert_equals(element.namespaceURI, namespace === undefined ? null : namespace)
+        }
+        if (!doctype) {
+          assert_equals(doc.doctype, null)
+        } else {
+          assert_equals(doc.doctype, doctype)
+          assert_equals(doc.doctype.ownerDocument, doc)
+        }
+        assert_equals(doc.childNodes.length, !omitRootElement + !!doctype)
+      }
+    }, &quot;createDocument test &quot; + i + &quot;: &quot; + t.map(function(el) { return format_value(el) }))
+
+    if (expected === null) {
+      test(function() {
+        var doc = document.implementation.createDocument(namespace, qualifiedName, doctype)
+        assert_equals(doc.compatMode, &quot;CSS1Compat&quot;)
+        assert_equals(doc.characterSet, &quot;UTF-8&quot;)
+        assert_equals(doc.inputEncoding, &quot;UTF-8&quot;)
+        assert_equals(doc.contentType, &quot;application/xml&quot;)
+        assert_equals(doc.URL, &quot;about:blank&quot;)
+        assert_equals(doc.documentURI, &quot;about:blank&quot;)
+        assert_equals(doc.createElement(&quot;DIV&quot;).localName, &quot;DIV&quot;);
+      }, &quot;createDocument test &quot; + i + &quot;: metadata for &quot; +
+      [namespace, qualifiedName, doctype].map(function(el) { return format_value(el) }))
+    }
+  })
+})
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesDOMImplementationcreateDocumentTypeexpectedtxtfromrev189470trunkLayoutTestshttptestsw3cdomnodesDOMImplementationcreateDocumentTypeexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocumentType-expected.txt (from rev 189470, trunk/LayoutTests/http/tests/w3c/dom/nodes/DOMImplementation-createDocumentType-expected.txt) (0 => 189471)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocumentType-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/DOMImplementation-createDocumentType-expected.txt        2015-09-08 01:09:45 UTC (rev 189471)
</span><span class="lines">@@ -0,0 +1,84 @@
</span><ins>+
+PASS DOMImplementation.createDocumentType(qualifiedName, publicId, systemId) 
+PASS createDocumentType(&quot;&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;test:root&quot;, &quot;1234&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;test:root&quot;, &quot;1234&quot;, &quot;test&quot;) should work 
+PASS createDocumentType(&quot;test:root&quot;, &quot;test&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;test:root&quot;, &quot;test&quot;, &quot;test&quot;) should work 
+PASS createDocumentType(&quot;_:_&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;_:h0&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;_:test&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;_:_.&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;_:a-&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;l_:_&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;ns:_0&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;ns:a0&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;ns0:test&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;ns:EEE.&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;ns:_-&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;a.b:c&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;a-b:c.j&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;a-b:c&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;foo&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;1foo&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;foo1&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;f1oo&quot;, &quot;&quot;, &quot;&quot;) should work 
+PASS createDocumentType(&quot;@foo&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;foo@&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;f@oo&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:{&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:}&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:~&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:'&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:!&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:@&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:#&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:$&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:%&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:^&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:&amp;&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:*&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:(&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:)&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:+&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:=&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:[&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:]&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:\\&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:/&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:;&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:`&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:&lt;&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:&gt;&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:,&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:a &quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;edi:\&quot;&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;{&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;}&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;'&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;~&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;`&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;@&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;#&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;$&quot;, &quot;&quot;, &quot;&quot;) should throw INVALID_CHARACTER_ERR 
+PASS createDocumentType(&quot;%&quot;, &quot;&quot;, &quot;&quot;) should th