<!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>[207939] 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/207939">207939</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-10-26 23:33:21 -0700 (Wed, 26 Oct 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Refresh WPT tests up to 0acd8f6
https://bugs.webkit.org/show_bug.cgi?id=164009

Patch by Youenn Fablet &lt;youennf@gmail.com&gt; on 2016-10-26
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* resources/ImportExpectations:
* resources/TestRepositories:
* resources/resource-files.json:
* resources/web-platform-tests-modules.json:
* web-platform-tests/WebIDL/current-realm-expected.txt: Added.
* web-platform-tests/WebIDL/current-realm.html: Added.
* web-platform-tests/WebIDL/w3c-import.log:
* web-platform-tests/XMLHttpRequest/abort-during-open-expected.txt:
* web-platform-tests/XMLHttpRequest/abort-during-open.js:
(test.async_test.test.step):
* web-platform-tests/XMLHttpRequest/abort-event-abort-expected.txt:
* web-platform-tests/XMLHttpRequest/abort-event-abort.htm:
* web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm: Added.
* web-platform-tests/XMLHttpRequest/open-during-abort-expected.txt:
* web-platform-tests/XMLHttpRequest/open-during-abort.htm:
* web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt:
* web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html:
* web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring-expected.txt:
* web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm:
* web-platform-tests/XMLHttpRequest/send-non-same-origin-expected.txt: Added.
* web-platform-tests/XMLHttpRequest/send-non-same-origin.htm: Added.
* web-platform-tests/XMLHttpRequest/w3c-import.log:
* web-platform-tests/check_stability.py: Added.
* web-platform-tests/ci_lint.sh: Added.
* web-platform-tests/ci_stability.sh: Added.
* web-platform-tests/config.json: Added.
* web-platform-tests/dom/events/Event-dispatch-click-expected.txt: Added.
* web-platform-tests/dom/events/Event-dispatch-click.html: Added.
* web-platform-tests/dom/events/w3c-import.log:
* web-platform-tests/dom/nodes/Node-contains-expected.txt:
* web-platform-tests/dom/nodes/Node-contains.html:
* web-platform-tests/dom/ranges/Range-mutations-appendChild-expected.txt: Added.
* web-platform-tests/dom/ranges/Range-mutations-appendChild.html: Added.
* web-platform-tests/dom/ranges/Range-mutations-appendData-expected.txt: Added.
* web-platform-tests/dom/ranges/Range-mutations-appendData.html: Added.
* web-platform-tests/dom/ranges/Range-mutations-dataChange-expected.txt: Added.
* web-platform-tests/dom/ranges/Range-mutations-dataChange.html: Added.
* web-platform-tests/dom/ranges/Range-mutations-deleteData-expected.txt: Added.
* web-platform-tests/dom/ranges/Range-mutations-deleteData.html: Added.
* web-platform-tests/dom/ranges/Range-mutations-insertBefore-expected.txt: Added.
* web-platform-tests/dom/ranges/Range-mutations-insertBefore.html: Added.
* web-platform-tests/dom/ranges/Range-mutations-insertData-expected.txt: Added.
* web-platform-tests/dom/ranges/Range-mutations-insertData.html: Added.
* web-platform-tests/dom/ranges/Range-mutations-removeChild-expected.txt: Added.
* web-platform-tests/dom/ranges/Range-mutations-removeChild.html: Added.
* web-platform-tests/dom/ranges/Range-mutations-replaceChild-expected.txt: Added.
* web-platform-tests/dom/ranges/Range-mutations-replaceChild.html: Added.
* web-platform-tests/dom/ranges/Range-mutations-replaceData-expected.txt: Added.
* web-platform-tests/dom/ranges/Range-mutations-replaceData.html: Added.
* web-platform-tests/dom/ranges/Range-mutations-splitText-expected.txt: Added.
* web-platform-tests/dom/ranges/Range-mutations-splitText.html: Added.
* web-platform-tests/dom/ranges/Range-mutations.js: Added.
* web-platform-tests/dom/ranges/w3c-import.log:
* web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_key1_dashinit.mp4: Added.
* web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html:
* web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/scripts/clearkey-update-non-ascii-input.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/generate-request-disallowed-input.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/invalid-license.js:
(runTest.):
(runTest):
* web-platform-tests/encrypted-media/scripts/onencrypted.js:
(runTest.):
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-destroy-persistent-license.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-persistent-license-events.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-persistent-license.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record-events.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-license.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-usage-record.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-temporary-encrypted-clear-sources.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-temporary-events.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-temporary-expired.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-temporary-multikey-sequential.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-temporary-multisession.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-temporary-setMediaKeys.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-temporary-two-videos.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-temporary-waitingforkey.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/playback-temporary.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/requestmediakeysystemaccess.js:
(expect_error):
* web-platform-tests/encrypted-media/scripts/setmediakeys-multiple-times-with-different-mediakeys.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/setmediakeys.js:
(runTest):
* web-platform-tests/encrypted-media/scripts/syntax-mediakeysession.js:
(runTest.test_generateRequest):
(runTest.create_remove_exception_test):
* web-platform-tests/encrypted-media/scripts/syntax-mediakeysystemaccess.js:
(runTest.func):
* web-platform-tests/encrypted-media/scripts/update-disallowed-input.js:
(runTest.):
(runTest):
* web-platform-tests/encrypted-media/scripts/w3c-import.log:
* web-platform-tests/encrypted-media/util/drm-messagehandler.js:
* web-platform-tests/encrypted-media/util/testmediasource.js:
(testmediasource.):
(testmediasource):
* web-platform-tests/encrypted-media/util/utils.js:
* web-platform-tests/fetch/api/basic/error-after-response.html:
* web-platform-tests/fetch/api/basic/scheme-data-expected.txt:
* web-platform-tests/fetch/api/basic/scheme-data-worker-expected.txt:
* web-platform-tests/fetch/api/basic/scheme-data.js:
(checkFetchResponse):
* web-platform-tests/fetch/api/basic/text-utf8.html:
* web-platform-tests/fetch/api/basic/w3c-import.log:
* web-platform-tests/fetch/api/cors/cors-redirect.js:
(corsRedirect):
* web-platform-tests/fetch/api/headers/headers-basic.html:
* web-platform-tests/fetch/api/redirect/redirect-count-expected.txt:
* web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt:
* web-platform-tests/fetch/api/redirect/redirect-count.js:
(redirectCount):
* web-platform-tests/fetch/api/request/multi-globals/current/current.html: Added.
* web-platform-tests/fetch/api/request/multi-globals/current/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
* web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html: Added.
* web-platform-tests/fetch/api/request/multi-globals/incumbent/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
* web-platform-tests/fetch/api/request/multi-globals/url-parsing-expected.txt: Added.
* web-platform-tests/fetch/api/request/multi-globals/url-parsing.html: Added.
* web-platform-tests/fetch/api/request/multi-globals/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
* web-platform-tests/fetch/api/request/request-consume-empty.html:
* web-platform-tests/fetch/api/request/w3c-import.log:
* web-platform-tests/fetch/api/resources/bad-chunk-encoding.py:
(main):
* web-platform-tests/fetch/api/resources/utils.js:
(encode_utf8):
* web-platform-tests/fetch/api/resources/w3c-import.log:
* web-platform-tests/fetch/api/response/multi-globals/current/current.html: Added.
* web-platform-tests/fetch/api/response/multi-globals/current/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
* web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html: Added.
* web-platform-tests/fetch/api/response/multi-globals/incumbent/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
* web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html: Added.
* web-platform-tests/fetch/api/response/multi-globals/relevant/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
* web-platform-tests/fetch/api/response/multi-globals/url-parsing-expected.txt: Added.
* web-platform-tests/fetch/api/response/multi-globals/url-parsing.html: Added.
* web-platform-tests/fetch/api/response/multi-globals/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
* web-platform-tests/fetch/api/response/response-clone-expected.txt:
* web-platform-tests/fetch/api/response/response-clone.html:
* web-platform-tests/fetch/api/response/response-consume-stream-expected.txt:
* web-platform-tests/fetch/api/response/response-consume-stream.html:
* web-platform-tests/fetch/api/response/response-consume.html:
* web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff: Added.
* web-platform-tests/fonts/math/fraction-axisheight7000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/fraction-rulethickness10000.woff: Added.
* web-platform-tests/fonts/math/largeop-displayoperatorminheight5000.woff: Added.
* web-platform-tests/fonts/math/limits-lowerlimitbaselinedropmin3000.woff: Added.
* web-platform-tests/fonts/math/limits-lowerlimitgapmin11000.woff: Added.
* web-platform-tests/fonts/math/limits-upperlimitbaselinerisemin5000.woff: Added.
* web-platform-tests/fonts/math/limits-upperlimitgapmin7000.woff: Added.
* web-platform-tests/fonts/math/lineheight5000-typolineheight2300.woff: Added.
* web-platform-tests/fonts/math/radical-degreebottomraisepercent25-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/radical-displaystyleverticalgap7000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/radical-extraascender3000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/radical-kernafterdegreeminus5000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/radical-kernbeforedegree4000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/radical-rulethickness8000.woff: Added.
* web-platform-tests/fonts/math/radical-verticalgap6000-rulethickness1000.woff: Added.
* web-platform-tests/fonts/math/scripts-spaceafterscript3000.woff: Added.
* web-platform-tests/fonts/math/scripts-subscriptbaselinedropmin9000.woff: Added.
* web-platform-tests/fonts/math/scripts-subscriptshiftdown6000.woff: Added.
* web-platform-tests/fonts/math/scripts-subscripttopmax4000.woff: Added.
* web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff: Added.
* web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000.woff: Added.
* web-platform-tests/fonts/math/scripts-superscriptbaselinedropmax10000.woff: Added.
* web-platform-tests/fonts/math/scripts-superscriptbottommin8000.woff: Added.
* web-platform-tests/fonts/math/scripts-superscriptshiftup7000.woff: Added.
* web-platform-tests/fonts/math/scripts-superscriptshiftupcramped5000.woff: Added.
* web-platform-tests/fonts/math/stack-axisheight7000.woff: Added.
* web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff: Added.
* web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff: Added.
* web-platform-tests/fonts/math/stack-displaystylegapmin4000.woff: Added.
* web-platform-tests/fonts/math/stack-gapmin8000.woff: Added.
* web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff: Added.
* web-platform-tests/fonts/math/stack-topshiftup9000.woff: Added.
* web-platform-tests/fonts/math/stretchstack-bottomshiftdown3000.woff: Added.
* web-platform-tests/fonts/math/stretchstack-gapabovemin7000.woff: Added.
* web-platform-tests/fonts/math/stretchstack-gapbelowmin11000.woff: Added.
* web-platform-tests/fonts/math/stretchstack-topshiftup5000.woff: Added.
* web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff: Added.
* web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff: Added.
* web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff: Added.
* web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff: Added.
* web-platform-tests/fonts/math/w3c-import.log: Added.
* web-platform-tests/fonts/math/xheight500.woff: Added.
* web-platform-tests/html/browsers/history/the-location-interface/security_location_0-expected.txt: Added.
* web-platform-tests/html/browsers/history/the-location-interface/security_location_0.htm: Added.
* web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log:
* web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log:
* web-platform-tests/html/browsers/the-window-object/security-window/window-security-expected.txt: Added.
* web-platform-tests/html/browsers/the-window-object/security-window/window-security.html: Added.
* web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log:
* web-platform-tests/html/browsers/windows/w3c-import.log:
* web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript-expected.txt: Added.
* web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html: Added.
* web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log:
* web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified-expected.txt: Added.
* web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified.html: Added.
* web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-img-element/data-url-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing.html: Added.
* web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case-expected.txt:
* web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case.html:
* web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-expected.txt:
* web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol.html:
* web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2-expected.txt:
* web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html:
* web-platform-tests/html/semantics/interactive-elements/the-details-element/w3c-import.log:
* web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt: Added.
* web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html: Added.
* web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
* web-platform-tests/html/webappapis/scripting/events/messageevent-constructor-expected.txt: Added.
* web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.html: Added.
* web-platform-tests/html/webappapis/scripting/events/w3c-import.log:
* web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt:
* web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js:
(run_test):
* web-platform-tests/lint.whitelist:
* web-platform-tests/url/setters_tests.json:
* web-platform-tests/url/url-setters-expected.txt:
* web-platform-tests/url/url-setters.html:
* web-platform-tests/w3c-import.log:
* web-platform-tests/webrtc/OWNERS: Added.
* web-platform-tests/webrtc/datachannel-emptystring.html: Added.
* web-platform-tests/webrtc/no-media-call.html: Added.
* web-platform-tests/webrtc/promises-call.html: Added.
* web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor.html: Added.
* web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html: Added.
* web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log.
* web-platform-tests/webrtc/simplecall.html: Added.
* web-platform-tests/webrtc/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log.

LayoutTests:

* TestExpectations: Skipping webrtc tests for now.
* tests-options.json:</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="#trunkLayoutTestsimportedw3cresourcesImportExpectations">trunk/LayoutTests/imported/w3c/resources/ImportExpectations</a></li>
<li><a href="#trunkLayoutTestsimportedw3cresourcesTestRepositories">trunk/LayoutTests/imported/w3c/resources/TestRepositories</a></li>
<li><a href="#trunkLayoutTestsimportedw3cresourcesresourcefilesjson">trunk/LayoutTests/imported/w3c/resources/resource-files.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3cresourceswebplatformtestsmodulesjson">trunk/LayoutTests/imported/w3c/resources/web-platform-tests-modules.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsWebIDLw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestabortduringopenexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-open-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestabortduringopenjs">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-open.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestaborteventabortexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-event-abort-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestaborteventaborthtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-event-abort.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenduringabortexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenduringaborthtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendblobwithnomimetypeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendblobwithnomimetypehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsenddataunexpectedtostringexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsenddataunexpectedtostringhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodecontainsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-contains-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodecontainshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-contains.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediadrmmp4playbackretrievedestroypersistentlicensehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediadrmmp4playbacktemporaryexpiredhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediaresourcesdrmretrievedestroypersistentlicensehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsclearkeyupdatenonasciiinputjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/clearkey-update-non-ascii-input.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsgeneraterequestdisallowedinputjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/generate-request-disallowed-input.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsinvalidlicensejs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/invalid-license.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsonencryptedjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/onencrypted.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackdestroypersistentlicensejs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-destroy-persistent-license.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackpersistentlicenseeventsjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-license-events.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackpersistentlicensejs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-license.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackpersistentusagerecordeventsjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record-events.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackpersistentusagerecordjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackretrievepersistentlicensejs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-license.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackretrievepersistentusagerecordjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-usage-record.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporaryencryptedclearsourcesjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-encrypted-clear-sources.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporaryeventsjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-events.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporaryexpiredjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-expired.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporarymultikeysequentialjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-multikey-sequential.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporarymultisessionjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-multisession.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporarysetMediaKeysjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-setMediaKeys.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporarytwovideosjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-two-videos.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporarywaitingforkeyjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-waitingforkey.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporaryjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsrequestmediakeysystemaccessjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/requestmediakeysystemaccess.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptssetmediakeysmultipletimeswithdifferentmediakeysjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/setmediakeys-multiple-times-with-different-mediakeys.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptssetmediakeysjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/setmediakeys.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptssyntaxmediakeysessionjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/syntax-mediakeysession.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptssyntaxmediakeysystemaccessjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/syntax-mediakeysystemaccess.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsupdatedisallowedinputjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/update-disallowed-input.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediautildrmmessagehandlerjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/util/drm-messagehandler.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediautiltestmediasourcejs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/util/testmediasource.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediautilutilsjs">trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/util/utils.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicerrorafterresponsehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/error-after-response.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicschemedataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicschemedataworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data-worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicschemedatajs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasictextutf8html">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/text-utf8.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsredirectjs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiheadersheadersbasichtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-basic.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiredirectredirectcountexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiredirectredirectcountworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiredirectredirectcountjs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestconsumeemptyhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-consume-empty.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesbadchunkencodingpy">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/bad-chunk-encoding.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesutilsjs">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/utils.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponsecloneexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-clone-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponseclonehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-clone.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponseconsumestreamexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-consume-stream-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponseconsumestreamhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-consume-stream.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponseconsumehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-consume.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacew3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindoww3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomdocumentsdomtreeaccessorsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsdocumentmetadatathebaseelementw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheinputelementradiogroupnamecaseexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheinputelementradiogroupnamecasehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsgroupingcontenttheolelementgroupingolexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsgroupingcontenttheolelementgroupingolhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsgroupingcontenttheolelementolstartreflection2expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsgroupingcontenttheolelementolstartreflection2html">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsinteractiveelementsthedetailselementw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-details-element/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsscripting1thescriptelementw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapissystemstateandcapabilitiesthenavigatorobjectNavigatorIDexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapissystemstateandcapabilitiesthenavigatorobjectNavigatorIDjs">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestslintwhitelist">trunk/LayoutTests/imported/w3c/web-platform-tests/lint.whitelist</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlsetters_testsjson">trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurlsettersexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsurlurlsettershtml">trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/w3c-import.log</a></li>
<li><a href="#trunkLayoutTeststestsoptionsjson">trunk/LayoutTests/tests-options.json</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsWebIDLcurrentrealmexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/current-realm-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsWebIDLcurrentrealmhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/current-realm.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventuploadprogresscrossoriginexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventuploadprogresscrossoriginhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendnonsameoriginexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-non-same-origin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendnonsameoriginhtm">trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-non-same-origin.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscheck_stabilitypy">trunk/LayoutTests/imported/w3c/web-platform-tests/check_stability.py</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsci_lintsh">trunk/LayoutTests/imported/w3c/web-platform-tests/ci_lint.sh</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsci_stabilitysh">trunk/LayoutTests/imported/w3c/web-platform-tests/ci_stability.sh</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchclickexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-click-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchclickhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-click.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsappendChildexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendChild-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsappendChildhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendChild.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsappendDataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendData-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsappendDatahtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendData.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsdataChangeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-dataChange-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsdataChangehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-dataChange.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsdeleteDataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-deleteData-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsdeleteDatahtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-deleteData.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsinsertBeforeexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertBefore-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsinsertBeforehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertBefore.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsinsertDataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertData-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsinsertDatahtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertData.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsremoveChildexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-removeChild-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsremoveChildhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-removeChild.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsreplaceChildexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceChild-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsreplaceChildhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceChild.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsreplaceDataexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceData-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsreplaceDatahtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceData.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationssplitTextexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-splitText-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationssplitTexthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-splitText.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsjs">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations.js</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/current/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalscurrentcurrenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/current/current.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalscurrentw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/current/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/incumbent/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalsincumbentincumbenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalsincumbentw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/incumbent/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalsurlparsingexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/url-parsing-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalsurlparsinghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/url-parsing.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/</li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/current/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalscurrentcurrenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/current/current.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalscurrentw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/current/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/incumbent/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsincumbentincumbenthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsincumbentw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/incumbent/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/relevant/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsrelevantrelevanthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsrelevantw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/relevant/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsurlparsingexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/url-parsing-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsurlparsinghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/url-parsing.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/w3c-import.log</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathaxisheight5000verticalarrow14000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractionaxisheight7000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-axisheight7000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractiondenominatordisplaystylegapmin5000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractiondenominatordisplaystyleshiftdown6000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractiondenominatorgapmin4000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractiondenominatorshiftdown3000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractionnumeratordisplaystylegapmin8000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractionnumeratordisplaystyleshiftup2000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractionnumeratorgapmin9000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractionnumeratorshiftup11000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractionrulethickness10000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-rulethickness10000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathlargeopdisplayoperatorminheight5000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/largeop-displayoperatorminheight5000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathlimitslowerlimitbaselinedropmin3000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-lowerlimitbaselinedropmin3000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathlimitslowerlimitgapmin11000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-lowerlimitgapmin11000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathlimitsupperlimitbaselinerisemin5000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-upperlimitbaselinerisemin5000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathlimitsupperlimitgapmin7000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-upperlimitgapmin7000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathlineheight5000typolineheight2300woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/lineheight5000-typolineheight2300.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicaldegreebottomraisepercent25rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-degreebottomraisepercent25-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicaldisplaystyleverticalgap7000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-displaystyleverticalgap7000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicalextraascender3000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-extraascender3000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicalkernafterdegreeminus5000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-kernafterdegreeminus5000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicalkernbeforedegree4000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-kernbeforedegree4000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicalrulethickness8000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-rulethickness8000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicalverticalgap6000rulethickness1000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-verticalgap6000-rulethickness1000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptsspaceafterscript3000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-spaceafterscript3000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssubscriptbaselinedropmin9000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscriptbaselinedropmin9000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssubscriptshiftdown6000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscriptshiftdown6000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssubscripttopmax4000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscripttopmax4000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssubsuperscriptgapmin11000superscriptbottommaxwithsubscript3000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssubsuperscriptgapmin11000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssuperscriptbaselinedropmax10000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptbaselinedropmax10000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssuperscriptbottommin8000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptbottommin8000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssuperscriptshiftup7000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptshiftup7000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssuperscriptshiftupcramped5000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptshiftupcramped5000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstackaxisheight7000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-axisheight7000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstackbottomdisplaystyleshiftdown5000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstackbottomshiftdown6000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstackdisplaystylegapmin4000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-displaystylegapmin4000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstackgapmin8000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-gapmin8000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstacktopdisplaystyleshiftup3000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstacktopshiftup9000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-topshiftup9000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstretchstackbottomshiftdown3000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-bottomshiftdown3000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstretchstackgapabovemin7000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-gapabovemin7000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstretchstackgapbelowmin11000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-gapbelowmin11000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstretchstacktopshiftup5000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-topshiftup5000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathunderoveraccentbaseheight4000overbarextraascender3000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathunderoveraccentbaseheight4000overbarverticalgap11000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathunderoveraccentbaseheight4000underbarextradescender5000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathunderoveraccentbaseheight4000underbarverticalgap7000woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsfontsmathxheight500woff">trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/xheight500.woff</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacesecurity_location_0expectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/security_location_0-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacesecurity_location_0htm">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/security_location_0.htm</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindowwindowsecurityexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/window-security-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindowwindowsecurityhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/window-security.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomdocumentsdomtreeaccessorsDocumentcurrentScriptexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldomdocumentsdomtreeaccessorsDocumentcurrentScripthtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsdocumentmetadatathebaseelementbase_href_specifiedexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsdocumentmetadatathebaseelementbase_href_specifiedhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementdataurlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementdataurlhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementusemapcasingexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementusemapcasinghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementusemapcasingexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementusemapcasinghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsscripting1thescriptelementdataurlexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsscripting1thescriptelementdataurlhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsmessageeventconstructorexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/messageevent-constructor-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsmessageeventconstructorhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.html</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcOWNERS">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/OWNERS</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcdatachannelemptystringhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/datachannel-emptystring.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcnomediacallhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcpromisescallhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/promises-call.html</a></li>
<li>trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/</li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionrtcpeerconnectionconstructorhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionrtcpeerconnectionidlhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcsimplecallhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/simplecall.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestswebrtcw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/w3c-import.log</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/ChangeLog        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2016-10-26  Youenn Fablet  &lt;youennf@gmail.com&gt;
+
+        Refresh WPT tests up to 0acd8f6
+        https://bugs.webkit.org/show_bug.cgi?id=164009
+
+        Reviewed by Darin Adler.
+
+        * TestExpectations: Skipping webrtc tests for now.
+        * tests-options.json:
+
</ins><span class="cx"> 2016-10-26  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Web IDL] Add support for having string enumerations in their own IDL file
</span></span></pre></div>
<a id="trunkLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/TestExpectations (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/TestExpectations        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -976,3 +976,5 @@
</span><span class="cx"> webkit.org/b/163636 media/modern-media-controls/media-controller/media-controller-resize.html [ Pass Timeout ]
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/163887 svg/as-image/svg-image-with-data-uri-use-data-uri.svg [ Pass Crash ]
</span><ins>+
+imported/w3c/web-platform-tests/webrtc [ Skip ]
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,3 +1,276 @@
</span><ins>+2016-10-26  Youenn Fablet  &lt;youennf@gmail.com&gt;
+
+        Refresh WPT tests up to 0acd8f6
+        https://bugs.webkit.org/show_bug.cgi?id=164009
+
+        Reviewed by Darin Adler.
+
+        * resources/ImportExpectations:
+        * resources/TestRepositories:
+        * resources/resource-files.json:
+        * resources/web-platform-tests-modules.json:
+        * web-platform-tests/WebIDL/current-realm-expected.txt: Added.
+        * web-platform-tests/WebIDL/current-realm.html: Added.
+        * web-platform-tests/WebIDL/w3c-import.log:
+        * web-platform-tests/XMLHttpRequest/abort-during-open-expected.txt:
+        * web-platform-tests/XMLHttpRequest/abort-during-open.js:
+        (test.async_test.test.step):
+        * web-platform-tests/XMLHttpRequest/abort-event-abort-expected.txt:
+        * web-platform-tests/XMLHttpRequest/abort-event-abort.htm:
+        * web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm: Added.
+        * web-platform-tests/XMLHttpRequest/open-during-abort-expected.txt:
+        * web-platform-tests/XMLHttpRequest/open-during-abort.htm:
+        * web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt:
+        * web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html:
+        * web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring-expected.txt:
+        * web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm:
+        * web-platform-tests/XMLHttpRequest/send-non-same-origin-expected.txt: Added.
+        * web-platform-tests/XMLHttpRequest/send-non-same-origin.htm: Added.
+        * web-platform-tests/XMLHttpRequest/w3c-import.log:
+        * web-platform-tests/check_stability.py: Added.
+        * web-platform-tests/ci_lint.sh: Added.
+        * web-platform-tests/ci_stability.sh: Added.
+        * web-platform-tests/config.json: Added.
+        * web-platform-tests/dom/events/Event-dispatch-click-expected.txt: Added.
+        * web-platform-tests/dom/events/Event-dispatch-click.html: Added.
+        * web-platform-tests/dom/events/w3c-import.log:
+        * web-platform-tests/dom/nodes/Node-contains-expected.txt:
+        * web-platform-tests/dom/nodes/Node-contains.html:
+        * web-platform-tests/dom/ranges/Range-mutations-appendChild-expected.txt: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-appendChild.html: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-appendData-expected.txt: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-appendData.html: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-dataChange-expected.txt: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-dataChange.html: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-deleteData-expected.txt: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-deleteData.html: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-insertBefore-expected.txt: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-insertBefore.html: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-insertData-expected.txt: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-insertData.html: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-removeChild-expected.txt: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-removeChild.html: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-replaceChild-expected.txt: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-replaceChild.html: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-replaceData-expected.txt: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-replaceData.html: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-splitText-expected.txt: Added.
+        * web-platform-tests/dom/ranges/Range-mutations-splitText.html: Added.
+        * web-platform-tests/dom/ranges/Range-mutations.js: Added.
+        * web-platform-tests/dom/ranges/w3c-import.log:
+        * web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_key1_dashinit.mp4: Added.
+        * web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html:
+        * web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html:
+        * web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html:
+        * web-platform-tests/encrypted-media/scripts/clearkey-update-non-ascii-input.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/generate-request-disallowed-input.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/invalid-license.js:
+        (runTest.):
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/onencrypted.js:
+        (runTest.):
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-destroy-persistent-license.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-persistent-license-events.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-persistent-license.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record-events.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-license.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-usage-record.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-temporary-encrypted-clear-sources.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-temporary-events.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-temporary-expired.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-temporary-multikey-sequential.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-temporary-multisession.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-temporary-setMediaKeys.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-temporary-two-videos.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-temporary-waitingforkey.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/playback-temporary.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/requestmediakeysystemaccess.js:
+        (expect_error):
+        * web-platform-tests/encrypted-media/scripts/setmediakeys-multiple-times-with-different-mediakeys.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/setmediakeys.js:
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/syntax-mediakeysession.js:
+        (runTest.test_generateRequest):
+        (runTest.create_remove_exception_test):
+        * web-platform-tests/encrypted-media/scripts/syntax-mediakeysystemaccess.js:
+        (runTest.func):
+        * web-platform-tests/encrypted-media/scripts/update-disallowed-input.js:
+        (runTest.):
+        (runTest):
+        * web-platform-tests/encrypted-media/scripts/w3c-import.log:
+        * web-platform-tests/encrypted-media/util/drm-messagehandler.js:
+        * web-platform-tests/encrypted-media/util/testmediasource.js:
+        (testmediasource.):
+        (testmediasource):
+        * web-platform-tests/encrypted-media/util/utils.js:
+        * web-platform-tests/fetch/api/basic/error-after-response.html:
+        * web-platform-tests/fetch/api/basic/scheme-data-expected.txt:
+        * web-platform-tests/fetch/api/basic/scheme-data-worker-expected.txt:
+        * web-platform-tests/fetch/api/basic/scheme-data.js:
+        (checkFetchResponse):
+        * web-platform-tests/fetch/api/basic/text-utf8.html:
+        * web-platform-tests/fetch/api/basic/w3c-import.log:
+        * web-platform-tests/fetch/api/cors/cors-redirect.js:
+        (corsRedirect):
+        * web-platform-tests/fetch/api/headers/headers-basic.html:
+        * web-platform-tests/fetch/api/redirect/redirect-count-expected.txt:
+        * web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt:
+        * web-platform-tests/fetch/api/redirect/redirect-count.js:
+        (redirectCount):
+        * web-platform-tests/fetch/api/request/multi-globals/current/current.html: Added.
+        * web-platform-tests/fetch/api/request/multi-globals/current/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
+        * web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html: Added.
+        * web-platform-tests/fetch/api/request/multi-globals/incumbent/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
+        * web-platform-tests/fetch/api/request/multi-globals/url-parsing-expected.txt: Added.
+        * web-platform-tests/fetch/api/request/multi-globals/url-parsing.html: Added.
+        * web-platform-tests/fetch/api/request/multi-globals/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
+        * web-platform-tests/fetch/api/request/request-consume-empty.html:
+        * web-platform-tests/fetch/api/request/w3c-import.log:
+        * web-platform-tests/fetch/api/resources/bad-chunk-encoding.py:
+        (main):
+        * web-platform-tests/fetch/api/resources/utils.js:
+        (encode_utf8):
+        * web-platform-tests/fetch/api/resources/w3c-import.log:
+        * web-platform-tests/fetch/api/response/multi-globals/current/current.html: Added.
+        * web-platform-tests/fetch/api/response/multi-globals/current/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
+        * web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html: Added.
+        * web-platform-tests/fetch/api/response/multi-globals/incumbent/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
+        * web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html: Added.
+        * web-platform-tests/fetch/api/response/multi-globals/relevant/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
+        * web-platform-tests/fetch/api/response/multi-globals/url-parsing-expected.txt: Added.
+        * web-platform-tests/fetch/api/response/multi-globals/url-parsing.html: Added.
+        * web-platform-tests/fetch/api/response/multi-globals/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
+        * web-platform-tests/fetch/api/response/response-clone-expected.txt:
+        * web-platform-tests/fetch/api/response/response-clone.html:
+        * web-platform-tests/fetch/api/response/response-consume-stream-expected.txt:
+        * web-platform-tests/fetch/api/response/response-consume-stream.html:
+        * web-platform-tests/fetch/api/response/response-consume.html:
+        * web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff: Added.
+        * web-platform-tests/fonts/math/fraction-axisheight7000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/fraction-rulethickness10000.woff: Added.
+        * web-platform-tests/fonts/math/largeop-displayoperatorminheight5000.woff: Added.
+        * web-platform-tests/fonts/math/limits-lowerlimitbaselinedropmin3000.woff: Added.
+        * web-platform-tests/fonts/math/limits-lowerlimitgapmin11000.woff: Added.
+        * web-platform-tests/fonts/math/limits-upperlimitbaselinerisemin5000.woff: Added.
+        * web-platform-tests/fonts/math/limits-upperlimitgapmin7000.woff: Added.
+        * web-platform-tests/fonts/math/lineheight5000-typolineheight2300.woff: Added.
+        * web-platform-tests/fonts/math/radical-degreebottomraisepercent25-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/radical-displaystyleverticalgap7000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/radical-extraascender3000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/radical-kernafterdegreeminus5000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/radical-kernbeforedegree4000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/radical-rulethickness8000.woff: Added.
+        * web-platform-tests/fonts/math/radical-verticalgap6000-rulethickness1000.woff: Added.
+        * web-platform-tests/fonts/math/scripts-spaceafterscript3000.woff: Added.
+        * web-platform-tests/fonts/math/scripts-subscriptbaselinedropmin9000.woff: Added.
+        * web-platform-tests/fonts/math/scripts-subscriptshiftdown6000.woff: Added.
+        * web-platform-tests/fonts/math/scripts-subscripttopmax4000.woff: Added.
+        * web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff: Added.
+        * web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000.woff: Added.
+        * web-platform-tests/fonts/math/scripts-superscriptbaselinedropmax10000.woff: Added.
+        * web-platform-tests/fonts/math/scripts-superscriptbottommin8000.woff: Added.
+        * web-platform-tests/fonts/math/scripts-superscriptshiftup7000.woff: Added.
+        * web-platform-tests/fonts/math/scripts-superscriptshiftupcramped5000.woff: Added.
+        * web-platform-tests/fonts/math/stack-axisheight7000.woff: Added.
+        * web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff: Added.
+        * web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff: Added.
+        * web-platform-tests/fonts/math/stack-displaystylegapmin4000.woff: Added.
+        * web-platform-tests/fonts/math/stack-gapmin8000.woff: Added.
+        * web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff: Added.
+        * web-platform-tests/fonts/math/stack-topshiftup9000.woff: Added.
+        * web-platform-tests/fonts/math/stretchstack-bottomshiftdown3000.woff: Added.
+        * web-platform-tests/fonts/math/stretchstack-gapabovemin7000.woff: Added.
+        * web-platform-tests/fonts/math/stretchstack-gapbelowmin11000.woff: Added.
+        * web-platform-tests/fonts/math/stretchstack-topshiftup5000.woff: Added.
+        * web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff: Added.
+        * web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff: Added.
+        * web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff: Added.
+        * web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff: Added.
+        * web-platform-tests/fonts/math/w3c-import.log: Added.
+        * web-platform-tests/fonts/math/xheight500.woff: Added.
+        * web-platform-tests/html/browsers/history/the-location-interface/security_location_0-expected.txt: Added.
+        * web-platform-tests/html/browsers/history/the-location-interface/security_location_0.htm: Added.
+        * web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log:
+        * web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log:
+        * web-platform-tests/html/browsers/the-window-object/security-window/window-security-expected.txt: Added.
+        * web-platform-tests/html/browsers/the-window-object/security-window/window-security.html: Added.
+        * web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log:
+        * web-platform-tests/html/browsers/windows/w3c-import.log:
+        * web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript-expected.txt: Added.
+        * web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html: Added.
+        * web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log:
+        * web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified-expected.txt: Added.
+        * web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified.html: Added.
+        * web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log:
+        * web-platform-tests/html/semantics/embedded-content/the-img-element/data-url-expected.txt: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing-expected.txt: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
+        * web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing-expected.txt: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing.html: Added.
+        * web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log:
+        * web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case-expected.txt:
+        * web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case.html:
+        * web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-expected.txt:
+        * web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol.html:
+        * web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2-expected.txt:
+        * web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html:
+        * web-platform-tests/html/semantics/interactive-elements/the-details-element/w3c-import.log:
+        * web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt: Added.
+        * web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html: Added.
+        * web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
+        * web-platform-tests/html/webappapis/scripting/events/messageevent-constructor-expected.txt: Added.
+        * web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.html: Added.
+        * web-platform-tests/html/webappapis/scripting/events/w3c-import.log:
+        * web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt:
+        * web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js:
+        (run_test):
+        * web-platform-tests/lint.whitelist:
+        * web-platform-tests/url/setters_tests.json:
+        * web-platform-tests/url/url-setters-expected.txt:
+        * web-platform-tests/url/url-setters.html:
+        * web-platform-tests/w3c-import.log:
+        * web-platform-tests/webrtc/OWNERS: Added.
+        * web-platform-tests/webrtc/datachannel-emptystring.html: Added.
+        * web-platform-tests/webrtc/no-media-call.html: Added.
+        * web-platform-tests/webrtc/promises-call.html: Added.
+        * web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor.html: Added.
+        * web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html: Added.
+        * web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log.
+        * web-platform-tests/webrtc/simplecall.html: Added.
+        * web-platform-tests/webrtc/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log.
+
</ins><span class="cx"> 2016-10-25  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Updating attribute by textContent must create a single mutation record and custom element reaction
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cresourcesImportExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/resources/ImportExpectations (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/resources/ImportExpectations        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/resources/ImportExpectations        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -173,6 +173,8 @@
</span><span class="cx"> web-platform-tests/html/browsers/offline/application-cache-api [ Skip ]
</span><span class="cx"> web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.sub.html [ Skip ]
</span><span class="cx"> web-platform-tests/html/browsers/windows/browsing-context-first-created.xhtml [ Skip ]
</span><ins>+web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.html [ Skip ]
+web-platform-tests/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.html [ Skip ]
</ins><span class="cx"> web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.sub.html [ Skip ]
</span><span class="cx"> web-platform-tests/html/dom/elements/requirements-relating-to-bidirectional-algorithm-formatting-characters [ Skip ]
</span><span class="cx"> web-platform-tests/html/dom/reflection-original.html [ Skip ] # Not a test file
</span><span class="lines">@@ -230,6 +232,7 @@
</span><span class="cx"> web-platform-tests/innerText [ Skip ]
</span><span class="cx"> web-platform-tests/input-events [ Skip ]
</span><span class="cx"> web-platform-tests/js [ Skip ]
</span><ins>+web-platform-tests/mathml [ Skip ]
</ins><span class="cx"> web-platform-tests/mediacapture-record [ Skip ]
</span><span class="cx"> web-platform-tests/mediacapture-streams [ Skip ]
</span><span class="cx"> web-platform-tests/microdata [ Skip ]
</span><span class="lines">@@ -272,7 +275,7 @@
</span><span class="cx"> web-platform-tests/webdriver [ Skip ]
</span><span class="cx"> web-platform-tests/webgl [ Skip ]
</span><span class="cx"> web-platform-tests/webmessaging [ Skip ]
</span><del>-web-platform-tests/webrtc [ Skip ]
</del><ins>+#web-platform-tests/webrtc [ Pass ]
</ins><span class="cx"> web-platform-tests/websockets [ Skip ]
</span><span class="cx"> web-platform-tests/webstorage [ Skip ]
</span><span class="cx"> web-platform-tests/webvtt [ Skip ]
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cresourcesTestRepositories"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/resources/TestRepositories (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/resources/TestRepositories        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/resources/TestRepositories        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -15,7 +15,7 @@
</span><span class="cx">     {
</span><span class="cx">         &quot;name&quot;: &quot;web-platform-tests&quot;,
</span><span class="cx">         &quot;url&quot;: &quot;https://github.com/w3c/web-platform-tests.git&quot;, 
</span><del>-        &quot;revision&quot;: &quot;33f4da1&quot;,
</del><ins>+        &quot;revision&quot;: &quot;0acd8f6&quot;,
</ins><span class="cx">         &quot;paths_to_skip&quot;: [
</span><span class="cx">             &quot;conformance-checkers&quot;,
</span><span class="cx">             &quot;docs&quot;,
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cresourcesresourcefilesjson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/resources/resource-files.json (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/resources/resource-files.json        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/resources/resource-files.json        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -25,6 +25,11 @@
</span><span class="cx">         &quot;web-platform-tests/dom/nodes/ParentNode-querySelector-All-content.xht&quot;,
</span><span class="cx">         &quot;web-platform-tests/dom/nodes/getElementsByClassNameFrame.htm&quot;,
</span><span class="cx">         &quot;web-platform-tests/dom/ranges/Range-test-iframe.html&quot;,
</span><ins>+        &quot;web-platform-tests/fetch/api/request/multi-globals/current/current.html&quot;,
+        &quot;web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html&quot;,
+        &quot;web-platform-tests/fetch/api/response/multi-globals/current/current.html&quot;,
+        &quot;web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html&quot;,
+        &quot;web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html&quot;,
</ins><span class="cx">         &quot;web-platform-tests/html/browsers/browsing-the-web/history-traversal/001-1.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/browsers/browsing-the-web/history-traversal/001-2.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name-1.html&quot;,
</span><span class="lines">@@ -231,6 +236,7 @@
</span><span class="cx">         &quot;web-platform-tests/html/syntax/parsing/foreign_content_011.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/syntax/parsing/foreign_content_013.html&quot;,
</span><span class="cx">         &quot;web-platform-tests/html/webappapis/scripting/events/onerroreventhandler-frame.html&quot;,
</span><ins>+        &quot;web-platform-tests/mathml/relations/html5-tree/unique-identifier-1-iframe.html&quot;,
</ins><span class="cx">         &quot;web-platform-tests/resource-timing/iframe-setdomain.sub.html&quot;
</span><span class="cx">     ]
</span><span class="cx"> }
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cresourceswebplatformtestsmodulesjson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/resources/web-platform-tests-modules.json (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/resources/web-platform-tests-modules.json        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/resources/web-platform-tests-modules.json        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -3,8 +3,8 @@
</span><span class="cx">         &quot;path&quot;: [
</span><span class="cx">             &quot;resources&quot;
</span><span class="cx">         ], 
</span><del>-        &quot;url&quot;: &quot;https://github.com/w3c/testharness.js/archive/e810600306d0612c609c8daab606229a11061627.tar.gz&quot;, 
-        &quot;url_subpath&quot;: &quot;testharness.js-e810600306d0612c609c8daab606229a11061627&quot;
</del><ins>+        &quot;url&quot;: &quot;https://github.com/w3c/testharness.js/archive/873f9680aff66553f84d38f21a038c4534cc2789.tar.gz&quot;, 
+        &quot;url_subpath&quot;: &quot;testharness.js-873f9680aff66553f84d38f21a038c4534cc2789&quot;
</ins><span class="cx">     }, 
</span><span class="cx">     {
</span><span class="cx">         &quot;path&quot;: [
</span><span class="lines">@@ -28,8 +28,8 @@
</span><span class="cx">         &quot;path&quot;: [
</span><span class="cx">             &quot;tools&quot;
</span><span class="cx">         ], 
</span><del>-        &quot;url&quot;: &quot;https://github.com/w3c/wpt-tools/archive/5b4013ffae79602a0a633b6551d247bccb49ac8a.tar.gz&quot;, 
-        &quot;url_subpath&quot;: &quot;wpt-tools-5b4013ffae79602a0a633b6551d247bccb49ac8a&quot;
</del><ins>+        &quot;url&quot;: &quot;https://github.com/w3c/wpt-tools/archive/cf9748586c2bca14998eda5956be6cf4d6d221d9.tar.gz&quot;, 
+        &quot;url_subpath&quot;: &quot;wpt-tools-cf9748586c2bca14998eda5956be6cf4d6d221d9&quot;
</ins><span class="cx">     }, 
</span><span class="cx">     {
</span><span class="cx">         &quot;path&quot;: [
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsWebIDLcurrentrealmexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/current-realm-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/current-realm-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/current-realm-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+
+PASS querySelectorAll 
+PASS createElement 
+PASS createElementNS 
+PASS createDocumentFragment 
+PASS createTextNode 
+PASS createComment 
+PASS createProcessingInstruction 
+PASS createAttribute 
+PASS createAttributeNS 
+PASS createEvent 
+PASS createRange 
+PASS createNodeIterator 
+PASS createTreeWalker 
+PASS getElementsByTagName 
+PASS getElementsByTagNameNS 
+PASS getElementsByClassName 
+PASS createDocumentType 
+PASS createDocument 
+PASS createHTMLDocument 
+PASS NamedNodeMap item 
+PASS NamedNodeMap getNamedItem 
+PASS NamedNodeMap getNamedItemNS 
+PASS splitText 
+PASS extractContents 
+PASS cloneContents 
+PASS cloneRange 
+PASS getContext 2d 
+PASS getContext webgl 
+PASS createImageData 
+PASS getImageData 
+FAIL FontFace's load() The string did not match the expected pattern.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsWebIDLcurrentrealmhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/current-realm.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/current-realm.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/current-realm.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+&lt;!--  This tests the agreed upon outcome for https://www.w3.org/Bugs/Public/show_bug.cgi?id=24652
+     that has not been reflected in the IDL standard yet due to lack of editing resources.
+
+     TODO: https://github.com/w3c/webcrypto/issues/85  --&gt;
+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Current Realm&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;iframe srcdoc=&quot;&lt;body test&gt;&quot;&gt;&lt;/iframe&gt;
+&lt;script&gt;
+ setup({explicit_done:true})
+
+ function isObjectFromGlobal(object, global) {
+   return object instanceof global.Object;
+ }
+ function assert_global(obj) {
+   assert_false(isObjectFromGlobal(obj, self), obj + &quot; should not be from top-level Realm&quot;)
+   assert_true(isObjectFromGlobal(obj, self[0]), obj + &quot; should be from &lt;iframe&gt; Realm&quot;)
+ }
+
+ onload = function() {
+   [[&quot;querySelectorAll&quot;, &quot;test&quot;],
+    [&quot;createElement&quot;, &quot;x&quot;],
+    [&quot;createElementNS&quot;, null, &quot;x&quot;],
+    [&quot;createDocumentFragment&quot;],
+    [&quot;createTextNode&quot;, &quot;test&quot;],
+    [&quot;createComment&quot;, &quot;test&quot;],
+    [&quot;createProcessingInstruction&quot;, &quot;x&quot;, &quot;x&quot;],
+    [&quot;createAttribute&quot;, &quot;x&quot;],
+    [&quot;createAttributeNS&quot;, &quot;x&quot;, &quot;x&quot;],
+    [&quot;createEvent&quot;, &quot;Event&quot;],
+    [&quot;createRange&quot;],
+    [&quot;createNodeIterator&quot;, document.head],
+    [&quot;createTreeWalker&quot;, document.head]].forEach(function(val) {
+     test(function() {
+       var obj = self[0].document[val[0]](val[1], val[2])
+       assert_global(obj)
+
+       obj = Document.prototype[val[0]].call(self[0].document, val[1], val[2])
+       assert_global(obj)
+     }, val[0])
+   })
+
+   // Note: these are not [NewObject] and can be cached. But across globals?
+   ;[[&quot;getElementsByTagName&quot;, &quot;x&quot;],
+     [&quot;getElementsByTagNameNS&quot;, null, &quot;x&quot;],
+     [&quot;getElementsByClassName&quot;, &quot;x&quot;]].forEach(function(val) {
+     test(function() {
+       var obj = self[0].document[val[0]](val[1], val[2])
+       assert_global(obj)
+
+       var obj2 = Document.prototype[val[0]].call(self[0].document, val[1], val[2])
+       assert_global(obj)
+
+       assert_equals(obj, obj2) // XXX this might be controversial
+     }, val[0])
+   })
+
+   ;[[&quot;createDocumentType&quot;, &quot;x&quot;, &quot;&quot;, &quot;&quot;],
+     [&quot;createDocument&quot;, null, &quot;&quot;, null],
+     [&quot;createHTMLDocument&quot;, &quot;x&quot;]].forEach(function(val) {
+     test(function() {
+       var obj = self[0].document.implementation[val[0]](val[1], val[2], val[3])
+       assert_global(obj)
+
+       obj = DOMImplementation.prototype[val[0]].call(self[0].document.implementation, val[1], val[2], val[3])
+       assert_global(obj)
+     }, val[0])
+   })
+
+   ;[[&quot;item&quot;, 0],
+     [&quot;getNamedItem&quot;, &quot;test&quot;],
+     [&quot;getNamedItemNS&quot;, null, &quot;test&quot;]].forEach(function(val) {
+     test(function() {
+       var obj = self[0].document.body.attributes[val[0]](val[1], val[2])
+       assert_global(obj)
+
+       var obj2 = NamedNodeMap.prototype[val[0]].call(self[0].document.body.attributes, val[1], val[2])
+       assert_global(obj)
+
+       assert_equals(obj, obj2)
+     }, &quot;NamedNodeMap &quot; + val[0])
+   })
+
+   test(function() {
+     var c = self[0].document.createTextNode(&quot;&quot;),
+         obj = c.splitText(0)
+     assert_global(obj)
+
+     obj = Text.prototype.splitText.call(c, &quot;&quot;)
+     assert_global(obj)
+   }, &quot;splitText&quot;)
+
+   ;[&quot;extractContents&quot;,
+     &quot;cloneContents&quot;,
+     &quot;cloneRange&quot;].forEach(function(val) {
+     test(function() {
+       var c = self[0].document.createRange(),
+           obj = c[val]()
+       assert_global(obj)
+
+       obj = Range.prototype[val].call(c)
+       assert_global(obj)
+     }, val)
+   })
+
+   ;[&quot;2d&quot;, &quot;webgl&quot;].forEach(function(val) {
+     test(function() {
+       var c = self[0].document.createElement(&quot;canvas&quot;),
+           obj = c.getContext(val)
+       assert_global(obj)
+
+       obj = HTMLCanvasElement.prototype.getContext.call(c, val)
+       assert_global(obj)
+     }, &quot;getContext &quot; + val)
+   })
+
+   ;[[&quot;createImageData&quot;, 5, 5],
+     [&quot;getImageData&quot;, 5, 5, 5, 5]].forEach(function(val) {
+     test(function() {
+       var c = self[0].document.createElement(&quot;canvas&quot;).getContext(&quot;2d&quot;),
+           obj = c[val[0]](val[1], val[2], val[3], val[4]);
+       assert_global(obj)
+       assert_global(obj.data)
+
+       obj = CanvasRenderingContext2D.prototype[val[0]].call(c, val[1], val[2], val[3], val[4]);
+       assert_global(obj)
+       assert_global(obj.data)
+     }, val[0])
+   })
+
+   test(function() {
+     var c = new self[0].FontFace(&quot;test&quot;, &quot;about:blank&quot;),
+         obj = c.load()
+     assert_global(obj)
+
+     obj = FontFace.prototype.load.call(c)
+     assert_global(obj)
+   }, &quot;FontFace's load()&quot;)
+
+   done()
+ }
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsWebIDLw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -15,5 +15,6 @@
</span><span class="cx"> None
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/WebIDL/current-realm.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/WebIDL/readme.txt
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/WebIDL/testable_assertions.txt
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestabortduringopenexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-open-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-open-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-open-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-PASS XMLHttpRequest: abort() during OPEN 
</del><ins>+FAIL XMLHttpRequest: abort() during OPEN assert_equals: after abort() expected 1 but got 0
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestabortduringopenjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-open.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-open.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-open.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -7,8 +7,8 @@
</span><span class="cx">       assert_unreached()
</span><span class="cx">     })
</span><span class="cx">   }
</span><ins>+  assert_equals(client.readyState, 1, &quot;before abort()&quot;)
</ins><span class="cx">   client.abort()
</span><del>-  assert_equals(client.readyState, 0)
-  assert_throws(&quot;InvalidStateError&quot;, function() { client.send(&quot;test&quot;) }, &quot;calling send() after abort()&quot;)
</del><ins>+  assert_equals(client.readyState, 1, &quot;after abort()&quot;)
</ins><span class="cx"> })
</span><span class="cx"> test.done()
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestaborteventabortexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-event-abort-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-event-abort-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-event-abort-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-PASS XMLHttpRequest: The abort() method: do not fire abort event in OPENED state when send() flag is unset. send() throws after abort(). 
</del><ins>+FAIL XMLHttpRequest: The abort() method: do not fire abort event in OPENED state when send() flag is unset. assert_equals: abort() cannot change readyState when readyState is 1 and send() flag is unset expected 1 but got 0
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestaborteventaborthtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-event-abort.htm (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-event-abort.htm        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-event-abort.htm        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-abort()-method&quot; data-tested-assertations=&quot;following-sibling::ol/li[4]/ol/li[5]&quot; /&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx">     &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><del>-    &lt;title&gt;XMLHttpRequest: The abort() method: do not fire abort event in OPENED state when send() flag is unset. send() throws after abort().&lt;/title&gt;
</del><ins>+    &lt;title&gt;XMLHttpRequest: The abort() method: do not fire abort event in OPENED state when send() flag is unset.&lt;/title&gt;
</ins><span class="cx"> &lt;/head&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;body&gt;
</span><span class="lines">@@ -24,6 +24,7 @@
</span><span class="cx">                     if (xhr.readyState == 1)
</span><span class="cx">                     {
</span><span class="cx">                         xhr.abort();
</span><ins>+                        assert_equals(xhr.readyState, 1, &quot;abort() cannot change readyState when readyState is 1 and send() flag is unset&quot;)
</ins><span class="cx">                     }
</span><span class="cx">                 });
</span><span class="cx">             };
</span><span class="lines">@@ -37,7 +38,7 @@
</span><span class="cx">             };
</span><span class="cx"> 
</span><span class="cx">             xhr.open(&quot;GET&quot;, &quot;./resources/content.py&quot;, true); // This should cause a readystatechange event that calls abort()
</span><del>-            assert_throws(&quot;InvalidStateError&quot;, function(){ xhr.send() })
</del><ins>+            xhr.send() // should not throw since abort() was a no-op
</ins><span class="cx">             test.done()
</span><span class="cx">         });
</span><span class="cx">     &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventuploadprogresscrossoriginexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS XMLHttpRequest: upload progress event for cross-origin requests 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequesteventuploadprogresscrossoriginhtm"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,27 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html lang=en&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;XMLHttpRequest: upload progress event for cross-origin requests&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;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#handler-xhr-onprogress&quot; data-tested-assertations=&quot;../..&quot; /&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#the-send()-method&quot; data-tested-assertations=&quot;following::*//a[contains(@href,'#make-upload-progress-notifications')] following::ol[1]/li[8]&quot; /&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#make-upload-progress-notifications&quot; data-tested-assertations=&quot;.. ../following::ul/li[1]&quot; /&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#dom-xmlhttprequest-upload&quot; data-tested-assertations=&quot;..&quot; /&gt;
+
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script src=&quot;/common/get-host-info.sub.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+  var test = async_test();
+  test.step(function() {
+    var client = new XMLHttpRequest();
+    client.upload.onprogress = test.step_func(function() {
+      test.done();
+    });
+    client.onload = test.step_func(function() {
+      assert_unreached(&quot;onprogress not called.&quot;);
+    });
+    client.open(&quot;POST&quot;, get_host_info().HTTP_REMOTE_ORIGIN + &quot;/XMLHttpRequest/resources/corsenabled.py&quot;);
+    client.send(&quot;This is a test string.&quot;);
+  });
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenduringabortexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-PASS XMLHttpRequest: open() during abort() 
</del><ins>+FAIL XMLHttpRequest: open() during abort() assert_equals: expected 1 but got 0
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestopenduringaborthtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort.htm (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort.htm        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-during-abort.htm        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -26,6 +26,7 @@
</span><span class="cx">         abort_flag = true
</span><span class="cx">         client.abort()
</span><span class="cx">         assert_array_equals(result, expected)
</span><ins>+        assert_equals(client.readyState, 1) // abort() should only set state to UNSENT when DONE
</ins><span class="cx">       })
</span><span class="cx">     &lt;/script&gt;
</span><span class="cx">   &lt;/body&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendblobwithnomimetypeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,6 +1,10 @@
</span><span class="cx"> 
</span><del>-FAIL Synchronous blob loading with no mime type assert_equals: expected &quot;NO&quot; but got &quot;&quot;
-FAIL Asynchronous blob loading with no mime type assert_equals: expected &quot;NO&quot; but got &quot;&quot;
-FAIL Synchronous blob loading with invalid mime type assert_equals: expected &quot;NO&quot; but got &quot;&quot;
-FAIL Asynchronous blob loading with invalid mime type assert_equals: expected &quot;NO&quot; but got &quot;&quot;
</del><ins>+FAIL Synchronous blob loading with no mime type [POST] assert_equals: expected &quot;NO&quot; but got &quot;&quot;
+FAIL Asynchronous blob loading with no mime type [POST] assert_equals: expected &quot;NO&quot; but got &quot;&quot;
+FAIL Synchronous blob loading with no mime type [PUT] assert_equals: expected &quot;NO&quot; but got &quot;&quot;
+FAIL Asynchronous blob loading with no mime type [PUT] assert_equals: expected &quot;NO&quot; but got &quot;&quot;
+FAIL Synchronous blob loading with invalid mime type [POST] assert_equals: expected &quot;NO&quot; but got &quot;&quot;
+FAIL Asynchronous blob loading with invalid mime type [POST] assert_equals: expected &quot;NO&quot; but got &quot;&quot;
+FAIL Synchronous blob loading with invalid mime type [PUT] assert_equals: expected &quot;NO&quot; but got &quot;&quot;
+FAIL Asynchronous blob loading with invalid mime type [PUT] assert_equals: expected &quot;NO&quot; but got &quot;&quot;
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendblobwithnomimetypehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -20,17 +20,19 @@
</span><span class="cx">             [&quot;invalid mime type&quot;, new Blob([&quot;data&quot;], {type: &quot;Invalid \r\n mime \r\n type&quot;})]
</span><span class="cx">         ];
</span><span class="cx"> 
</span><del>-        blobTests.forEach(function(item){
</del><ins>+        function doSyncTest(testItem, method) {
</ins><span class="cx">             test(function() {
</span><span class="cx">                 var xhr = new XMLHttpRequest();
</span><del>-                xhr.open(&quot;POST&quot;, &quot;./resources/content.py&quot;, false);
-                xhr.send(item[1]);
</del><ins>+                xhr.open(method, &quot;./resources/content.py&quot;, false);
+                xhr.send(testItem[1]);
</ins><span class="cx"> 
</span><span class="cx">                 assert_equals(xhr.getResponseHeader(&quot;X-Request-Content-Length&quot;), &quot;4&quot;);
</span><span class="cx">                 assert_equals(xhr.getResponseHeader(&quot;X-Request-Content-Type&quot;), &quot;NO&quot;);
</span><del>-            }, &quot;Synchronous blob loading with &quot; + item[0]);
</del><ins>+            }, &quot;Synchronous blob loading with &quot; + testItem[0] + &quot; [&quot; + method + &quot;]&quot;);
+        }
</ins><span class="cx"> 
</span><del>-            var atest = async_test(&quot;Asynchronous blob loading with &quot; + item[0]);
</del><ins>+        function doAsyncTest(testItem, method) {
+            var atest = async_test(&quot;Asynchronous blob loading with &quot; + testItem[0] + &quot; [&quot; + method + &quot;]&quot;);
</ins><span class="cx">             atest.step(function() {
</span><span class="cx">                 var xhr = new XMLHttpRequest();
</span><span class="cx">                 xhr.onreadystatechange = function() {
</span><span class="lines">@@ -42,9 +44,17 @@
</span><span class="cx">                         atest.done();
</span><span class="cx">                     }
</span><span class="cx">                 }
</span><del>-                xhr.open(&quot;POST&quot;, &quot;./resources/content.py&quot;, true);
-                xhr.send(item[1]);
</del><ins>+                xhr.open(method, &quot;./resources/content.py&quot;, true);
+                xhr.send(testItem[1]);
</ins><span class="cx">             });
</span><ins>+        }
+
+        blobTests.forEach(function(item){
+            doSyncTest(item, &quot;POST&quot;);
+            doAsyncTest(item, &quot;POST&quot;);
+
+            doSyncTest(item, &quot;PUT&quot;);
+            doAsyncTest(item, &quot;PUT&quot;);
</ins><span class="cx">         });
</span><span class="cx">     &lt;/script&gt;
</span><span class="cx"> &lt;/body&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsenddataunexpectedtostringexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> 
</span><del>-PASS abort() called from data stringification 
</del><ins>+FAIL abort() called from data stringification The object is in an invalid state.
</ins><span class="cx"> PASS open() called from data stringification 
</span><span class="cx"> PASS send() called from data stringification 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsenddataunexpectedtostringhtm"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -17,9 +17,8 @@
</span><span class="cx">       client.abort();
</span><span class="cx">     }}
</span><span class="cx">     client.open('POST', 'resources/content.py')
</span><del>-    assert_throws(&quot;InvalidStateError&quot;, function(){
-      client.send(objAbortsOnStringification)
-    })
</del><ins>+    client.send(objAbortsOnStringification)
+    assert_equals(client.readyState, 1)
</ins><span class="cx">     test1.done()
</span><span class="cx">   });
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendnonsameoriginexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-non-same-origin-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-non-same-origin-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-non-same-origin-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+CONSOLE MESSAGE: line 23: XMLHttpRequest cannot load mailto:test@example.org. Cross origin requests are only supported for HTTP.
+CONSOLE MESSAGE: line 23: XMLHttpRequest cannot load tel:+31600000000. Cross origin requests are only supported for HTTP.
+CONSOLE MESSAGE: line 23: XMLHttpRequest cannot load http://127.0.0.1:8800/. Origin http://localhost:8800 is not allowed by Access-Control-Allow-Origin.
+CONSOLE MESSAGE: line 23: XMLHttpRequest cannot load javascript:alert('FAIL'). Cross origin requests are only supported for HTTP.
+CONSOLE MESSAGE: line 23: XMLHttpRequest cannot load http://127.0.0.1:8800/folder.txt. Origin http://localhost:8800 is not allowed by Access-Control-Allow-Origin.
+
+PASS XMLHttpRequest: send() - non same-origin (mailto:test@example.org) 
+PASS XMLHttpRequest: send() - non same-origin (tel:+31600000000) 
+PASS XMLHttpRequest: send() - non same-origin (http://127.0.0.1:8800) 
+PASS XMLHttpRequest: send() - non same-origin (javascript:alert('FAIL')) 
+PASS XMLHttpRequest: send() - non same-origin (folder.txt) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestsendnonsameoriginhtm"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-non-same-origin.htm (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-non-same-origin.htm                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-non-same-origin.htm        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;title&gt;XMLHttpRequest: send() - non same-origin&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;base&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#cross-origin-request-steps&quot; data-tested-assertations=&quot;/following::DL[2]/DT[1] /following::DL[2]/DD[1]&quot; /&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://xhr.spec.whatwg.org/#cross-origin-request-event-rules&quot; data-tested-assertations=&quot;/following::DL[1]/DT[2] /following::DL[1]/DD[2]&quot; /&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+    &lt;script src=&quot;/common/get-host-info.sub.js&quot;&gt;&lt;/script&gt;
+    &lt;script&gt;
+      // Setting base URL before running the tests
+      var host_info = get_host_info();
+      document.getElementsByTagName(&quot;base&quot;)[0].setAttribute(&quot;href&quot;, host_info.HTTP_REMOTE_ORIGIN);
+
+      function url(url) {
+        test(function() {
+          var client = new XMLHttpRequest()
+          client.open(&quot;GET&quot;, url, false)
+          assert_throws(&quot;NetworkError&quot;, function() { client.send() })
+        }, document.title + &quot; (&quot; + url + &quot;)&quot;)
+      }
+      url(&quot;mailto:test@example.org&quot;)
+      url(&quot;tel:+31600000000&quot;)
+      url(host_info.HTTP_REMOTE_ORIGIN)
+      url(&quot;javascript:alert('FAIL')&quot;)
+      url(&quot;folder.txt&quot;)
+    &lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsXMLHttpRequestw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -44,6 +44,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-readystate-sync-open.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-readystatechange-loaded.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-timeout.htm
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/folder.txt
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/formdata-blob.htm
</span><span class="lines">@@ -146,7 +147,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-no-response-event-loadend.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-no-response-event-loadstart.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-no-response-event-order.htm
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-non-same-origin.sub.htm
</del><ins>+/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-non-same-origin.htm
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-receive-utf16.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-bogus-sync.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-bogus.htm
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscheck_stabilitypy"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/check_stability.py (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/check_stability.py                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/check_stability.py        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,569 @@
</span><ins>+import argparse
+import json
+import logging
+import os
+import re
+import stat
+import subprocess
+import sys
+import tarfile
+import traceback
+import zipfile
+from cStringIO import StringIO
+from collections import defaultdict
+from urlparse import urljoin
+
+import requests
+
+BaseHandler = None
+LogActionFilter = None
+LogHandler = None
+LogLevelFilter = None
+StreamHandler = None
+TbplFormatter = None
+reader = None
+wptcommandline = None
+wptrunner = None
+
+
+logger = logging.getLogger(os.path.splitext(__file__)[0])
+
+
+def do_delayed_imports():
+    global BaseHandler
+    global LogLevelFilter
+    global StreamHandler
+    global TbplFormatter
+    global reader
+    global wptcommandline
+    global wptrunner
+    from mozlog import reader
+    from mozlog.formatters import TbplFormatter
+    from mozlog.handlers import BaseHandler, LogLevelFilter, StreamHandler
+    from wptrunner import wptcommandline, wptrunner
+    setup_log_handler()
+    setup_action_filter()
+
+
+def setup_logging():
+    handler = logging.StreamHandler(sys.stdout)
+    formatter = logging.Formatter(logging.BASIC_FORMAT, None)
+    handler.setFormatter(formatter)
+    logger.addHandler(handler)
+    logger.setLevel(logging.DEBUG)
+
+setup_logging()
+
+
+def setup_action_filter():
+    global LogActionFilter
+
+    class LogActionFilter(BaseHandler):
+        &quot;&quot;&quot;Handler that filters out messages with action of log and a level
+        lower than some specified level.
+
+        :param inner: Handler to use for messages that pass this filter
+        :param level: Minimum log level to process
+        &quot;&quot;&quot;
+        def __init__(self, inner, actions):
+            BaseHandler.__init__(self, inner)
+            self.inner = inner
+            self.actions = actions
+
+        def __call__(self, item):
+            if item[&quot;action&quot;] in self.actions:
+                return self.inner(item)
+
+
+class GitHub(object):
+    def __init__(self, org, repo, token):
+        self.token = token
+        self.headers = {&quot;Accept&quot;: &quot;application/vnd.github.v3+json&quot;}
+        self.auth = (self.token, &quot;x-oauth-basic&quot;)
+        self.org = org
+        self.repo = repo
+        self.base_url = &quot;https://api.github.com/repos/%s/%s/&quot; % (org, repo)
+
+    def _headers(self, headers):
+        if headers is None:
+            headers = {}
+        rv = self.headers.copy()
+        rv.update(headers)
+        return rv
+
+    def post(self, url, data, headers=None):
+        logger.debug(&quot;POST %s&quot; % url)
+        if data is not None:
+            data = json.dumps(data)
+        resp = requests.post(
+            url,
+            data=data,
+            headers=self._headers(headers),
+            auth=self.auth
+        )
+        resp.raise_for_status()
+        return resp
+
+    def get(self, url, headers=None):
+        logger.debug(&quot;GET %s&quot; % url)
+        resp = requests.get(
+            url,
+            headers=self._headers(headers),
+            auth=self.auth
+        )
+        resp.raise_for_status()
+        return resp
+
+    def post_comment(self, issue_number, body):
+        url = urljoin(self.base_url, &quot;issues/%s/comments&quot; % issue_number)
+        return self.post(url, {&quot;body&quot;: body})
+
+    def releases(self):
+        url = urljoin(self.base_url, &quot;releases/latest&quot;)
+        return self.get(url)
+
+
+class GitHubCommentHandler(logging.Handler):
+    def __init__(self, github, pull_number):
+        logging.Handler.__init__(self)
+        self.github = github
+        self.pull_number = pull_number
+        self.log_data = []
+
+    def emit(self, record):
+        try:
+            msg = self.format(record)
+            self.log_data.append(msg)
+        except Exception:
+            self.handleError(record)
+
+    def send(self):
+        self.github.post_comment(self.pull_number, &quot;\n&quot;.join(self.log_data))
+        self.log_data = []
+
+
+class Browser(object):
+    product = None
+
+    def __init__(self, github_token):
+        self.github_token = github_token
+
+
+class Firefox(Browser):
+    product = &quot;firefox&quot;
+
+    def install(self):
+        call(&quot;pip&quot;, &quot;install&quot;, &quot;-r&quot;, &quot;w3c/wptrunner/requirements_firefox.txt&quot;)
+        resp = get(&quot;https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-52.0a1.en-US.linux-x86_64.tar.bz2&quot;)
+        untar(resp.raw)
+
+        if not os.path.exists(&quot;profiles&quot;):
+            os.mkdir(&quot;profiles&quot;)
+        with open(os.path.join(&quot;profiles&quot;, &quot;prefs_general.js&quot;), &quot;wb&quot;) as f:
+            resp = get(&quot;https://hg.mozilla.org/mozilla-central/raw-file/tip/testing/profiles/prefs_general.js&quot;)
+            f.write(resp.content)
+        call(&quot;pip&quot;, &quot;install&quot;, &quot;-r&quot;, os.path.join(&quot;w3c&quot;, &quot;wptrunner&quot;, &quot;requirements_firefox.txt&quot;))
+
+    def _latest_geckodriver_version(self):
+        # This is used rather than an API call to avoid rate limits
+        tags = call(&quot;git&quot;, &quot;ls-remote&quot;, &quot;--tags&quot;, &quot;--refs&quot;,
+                    &quot;https://github.com/mozilla/geckodriver.git&quot;)
+        release_re = re.compile(&quot;.*refs/tags/v(\d+)\.(\d+)\.(\d+)&quot;)
+        latest_release = 0
+        for item in tags.split(&quot;\n&quot;):
+            m = release_re.match(item)
+            if m:
+                version = [int(item) for item in m.groups()]
+                if version &gt; latest_release:
+                    latest_release = version
+        assert latest_release != 0
+        return &quot;v%s.%s.%s&quot; % tuple(str(item) for item in latest_release)
+
+
+    def install_webdriver(self):
+        version = self._latest_geckodriver_version()
+        logger.debug(&quot;Latest geckodriver release %s&quot; % version)
+        url = &quot;https://github.com/mozilla/geckodriver/releases/download/%s/geckodriver-%s-linux64.tar.gz&quot; % (version, version)
+        untar(get(url).raw)
+
+    def wptrunner_args(self, root):
+        return {
+            &quot;product&quot;: &quot;firefox&quot;,
+            &quot;binary&quot;: &quot;%s/firefox/firefox&quot; % root,
+            &quot;certutil_binary&quot;: &quot;certutil&quot;,
+            &quot;webdriver_binary&quot;: &quot;%s/geckodriver&quot; % root,
+            &quot;prefs_root&quot;: &quot;%s/profiles&quot; % root,
+        }
+
+
+class Chrome(Browser):
+    product = &quot;chrome&quot;
+
+    def install(self):
+        latest = get(&quot;https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2FLAST_CHANGE?alt=media&quot;).text.strip()
+        url = &quot;https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%%2F%s%%2Fchrome-linux.zip?alt=media&quot; % latest
+        unzip(get(url).raw)
+        logger.debug(call(&quot;ls&quot;, &quot;-lhrt&quot;, &quot;chrome-linux&quot;))
+        call(&quot;pip&quot;, &quot;install&quot;, &quot;-r&quot;, os.path.join(&quot;w3c&quot;, &quot;wptrunner&quot;, &quot;requirements_chrome.txt&quot;))
+
+    def install_webdriver(self):
+        latest = get(&quot;http://chromedriver.storage.googleapis.com/LATEST_RELEASE&quot;).text.strip()
+        url = &quot;http://chromedriver.storage.googleapis.com/%s/chromedriver_linux64.zip&quot; % latest
+        unzip(get(url).raw)
+        st = os.stat('chromedriver')
+        os.chmod('chromedriver', st.st_mode | stat.S_IEXEC)
+
+    def wptrunner_args(self, root):
+        return {
+            &quot;product&quot;: &quot;chrome&quot;,
+            &quot;binary&quot;: &quot;%s/chrome-linux/chrome&quot; % root,
+            &quot;webdriver_binary&quot;: &quot;%s/chromedriver&quot; % root,
+            &quot;test_types&quot;: [&quot;testharness&quot;, &quot;reftest&quot;]
+        }
+
+
+def get(url):
+    logger.debug(&quot;GET %s&quot; % url)
+    resp = requests.get(url, stream=True)
+    resp.raise_for_status()
+    return resp
+
+
+def call(*args):
+    logger.debug(&quot;%s&quot; % &quot; &quot;.join(args))
+    return subprocess.check_output(args)
+
+
+def get_git_cmd(repo_path):
+    def git(cmd, *args):
+        full_cmd = [&quot;git&quot;, cmd] + list(args)
+        try:
+            return subprocess.check_output(full_cmd, cwd=repo_path, stderr=subprocess.STDOUT)
+        except subprocess.CalledProcessError as e:
+            logger.error(&quot;Git command exited with status %i&quot; % e.returncode)
+            logger.error(e.output)
+            sys.exit(1)
+    return git
+
+
+def seekable(fileobj):
+    try:
+        fileobj.seek(fileobj.tell())
+    except Exception:
+        return StringIO(fileobj.read())
+    else:
+        return fileobj
+
+
+def untar(fileobj):
+    logger.debug(&quot;untar&quot;)
+    fileobj = seekable(fileobj)
+    with tarfile.open(fileobj=fileobj) as tar_data:
+        tar_data.extractall()
+
+
+def unzip(fileobj):
+    logger.debug(&quot;unzip&quot;)
+    fileobj = seekable(fileobj)
+    with zipfile.ZipFile(fileobj) as zip_data:
+        for info in zip_data.infolist():
+            zip_data.extract(info)
+            perm = info.external_attr &gt;&gt; 16 &amp; 0x1FF
+            os.chmod(info.filename, perm)
+
+
+def setup_github_logging(args):
+    gh_handler = None
+    if args.comment_pr:
+        github = GitHub(&quot;w3c&quot;, &quot;web-platform-tests&quot;, args.gh_token)
+        try:
+            pr_number = int(args.comment_pr)
+        except ValueError:
+            pass
+        else:
+            gh_handler = GitHubCommentHandler(github, pr_number)
+            gh_handler.setLevel(logging.INFO)
+            logger.debug(&quot;Setting up GitHub logging&quot;)
+            logger.addHandler(gh_handler)
+    else:
+        logger.warning(&quot;No PR number found; not posting to GitHub&quot;)
+    return gh_handler
+
+
+class pwd(object):
+    def __init__(self, dir):
+        self.dir = dir
+        self.old_dir = None
+
+    def __enter__(self):
+        self.old_dir = os.path.abspath(os.curdir)
+        os.chdir(self.dir)
+
+    def __exit__(self, *args, **kwargs):
+        os.chdir(self.old_dir)
+        self.old_dir = None
+
+
+def fetch_wpt_master():
+    git = get_git_cmd(os.path.join(os.path.abspath(os.curdir), &quot;w3c&quot;, &quot;web-platform-tests&quot;))
+    git(&quot;fetch&quot;, &quot;https://github.com/w3c/web-platform-tests.git&quot;, &quot;master:master&quot;)
+
+
+def get_sha1():
+    git = get_git_cmd(os.path.join(os.path.abspath(os.curdir), &quot;w3c&quot;, &quot;web-platform-tests&quot;))
+    return git(&quot;rev-parse&quot;, &quot;HEAD&quot;).strip()
+
+def build_manifest():
+    with pwd(os.path.join(os.path.abspath(os.curdir), &quot;w3c&quot;, &quot;web-platform-tests&quot;)):
+        # TODO: Call the manifest code directly
+        call(&quot;python&quot;, &quot;manifest&quot;)
+
+
+def install_wptrunner():
+    call(&quot;git&quot;, &quot;clone&quot;, &quot;--depth=1&quot;, &quot;https://github.com/w3c/wptrunner.git&quot;, &quot;w3c/wptrunner&quot;)
+    git = get_git_cmd(os.path.join(os.path.abspath(os.curdir), &quot;w3c&quot;, &quot;wptrunner&quot;))
+    git(&quot;submodule&quot;, &quot;update&quot;, &quot;--init&quot;, &quot;--recursive&quot;)
+    call(&quot;pip&quot;, &quot;install&quot;, os.path.join(&quot;w3c&quot;, &quot;wptrunner&quot;))
+
+
+def get_files_changed():
+    root = os.path.abspath(os.curdir)
+    git = get_git_cmd(&quot;%s/w3c/web-platform-tests&quot; % root)
+    branch_point = git(&quot;merge-base&quot;, &quot;HEAD&quot;, &quot;master&quot;).strip()
+    logger.debug(&quot;Branch point from master: %s&quot; % branch_point)
+    logger.debug(git(&quot;log&quot;, &quot;--oneline&quot;, &quot;%s..&quot; % branch_point))
+    files = git(&quot;diff&quot;, &quot;--name-only&quot;, &quot;-z&quot;, &quot;%s..&quot; % branch_point)
+    if not files:
+        return []
+    assert files[-1] == &quot;\0&quot;
+    return [&quot;%s/w3c/web-platform-tests/%s&quot; % (root, item)
+            for item in files[:-1].split(&quot;\0&quot;)]
+
+
+def wptrunner_args(root, files_changed, iterations, browser):
+    parser = wptcommandline.create_parser([browser.product])
+    args = vars(parser.parse_args([]))
+    wpt_root = os.path.join(root, &quot;w3c&quot;, &quot;web-platform-tests&quot;)
+    args.update(browser.wptrunner_args(root))
+    args.update({
+        &quot;tests_root&quot;: wpt_root,
+        &quot;metadata_root&quot;: wpt_root,
+        &quot;repeat&quot;: iterations,
+        &quot;config&quot;: &quot;%s/w3c/wptrunner/wptrunner.default.ini&quot; % root,
+        &quot;test_list&quot;: files_changed,
+        &quot;restart_on_unexpected&quot;: False,
+        &quot;pause_after_test&quot;: False
+    })
+    wptcommandline.check_args(args)
+    return args
+
+
+def setup_log_handler():
+    global LogHandler
+
+    class LogHandler(reader.LogHandler):
+        def __init__(self):
+            self.results = defaultdict(lambda: defaultdict(lambda: defaultdict(int)))
+
+        def test_status(self, data):
+            self.results[data[&quot;test&quot;]][data.get(&quot;subtest&quot;)][data[&quot;status&quot;]] += 1
+
+        def test_end(self, data):
+            self.results[data[&quot;test&quot;]][None][data[&quot;status&quot;]] += 1
+
+
+def is_inconsistent(results_dict, iterations):
+    return len(results_dict) &gt; 1 or sum(results_dict.values()) != iterations
+
+
+def err_string(results_dict, iterations):
+    rv = []
+    total_results = sum(results_dict.values())
+    for key, value in sorted(results_dict.items()):
+        rv.append(&quot;%s%s&quot; %
+                  (key, &quot;: %s/%s&quot; % (value, iterations) if value != iterations else &quot;&quot;))
+    rv = &quot;, &quot;.join(rv)
+    if total_results &lt; iterations:
+        rv.append(&quot;MISSING: %s/%s&quot; % (iterations - total_results, iterations))
+    if len(results_dict) &gt; 1 or total_results != iterations:
+        rv = &quot;**%s**&quot; % rv
+    return rv
+
+
+def process_results(log, iterations):
+    inconsistent = []
+    handler = LogHandler()
+    reader.handle_log(reader.read(log), handler)
+    results = handler.results
+    for test, test_results in results.iteritems():
+        for subtest, result in test_results.iteritems():
+            if is_inconsistent(result, iterations):
+                inconsistent.append((test, subtest, result))
+    return results, inconsistent
+
+
+def table(headings, data, log):
+    cols = range(len(headings))
+    assert all(len(item) == len(cols) for item in data)
+    max_widths = reduce(lambda prev, cur: [(len(cur[i]) + 2)
+                                           if (len(cur[i]) + 2) &gt; prev[i]
+                                           else prev[i]
+                                           for i in cols],
+                        data,
+                        [len(item) + 2 for item in headings])
+    log(&quot;|%s|&quot; % &quot;|&quot;.join(item.center(max_widths[i]) for i, item in enumerate(headings)))
+    log(&quot;|%s|&quot; % &quot;|&quot;.join(&quot;-&quot; * max_widths[i] for i in cols))
+    for row in data:
+        log(&quot;|%s|&quot; % &quot;|&quot;.join(&quot; %s&quot; % row[i].ljust(max_widths[i] - 1) for i in cols))
+
+
+def write_inconsistent(inconsistent, iterations):
+    logger.error(&quot;## Unstable results ##\n&quot;)
+    strings = [(test, subtest if subtest else &quot;&quot;, err_string(results, iterations))
+                for test, subtest, results in inconsistent]
+    table([&quot;Test&quot;, &quot;Subtest&quot;, &quot;Results&quot;], strings, logger.error)
+
+
+def write_results(results, iterations):
+    logger.info(&quot;## All results ##\n&quot;)
+    for test, test_results in results.iteritems():
+        logger.info(&quot;### %s ###&quot; % test)
+        parent = test_results.pop(None)
+        strings = [(&quot;&quot;, err_string(parent, iterations))]
+        strings.extend(((subtest if subtest else &quot;&quot;, err_string(results, iterations))
+                        for subtest, results in test_results.iteritems()))
+        table([&quot;Subtest&quot;, &quot;Results&quot;], strings, logger.info)
+
+
+def get_parser():
+    parser = argparse.ArgumentParser()
+    parser.add_argument(&quot;--root&quot;,
+                        action=&quot;store&quot;,
+                        default=os.path.join(os.path.expanduser(&quot;~&quot;), &quot;build&quot;),
+                        help=&quot;Root path&quot;)
+    parser.add_argument(&quot;--iterations&quot;,
+                        action=&quot;store&quot;,
+                        default=10,
+                        type=int,
+                        help=&quot;Number of times to run tests&quot;)
+    parser.add_argument(&quot;--gh-token&quot;,
+                        action=&quot;store&quot;,
+                        default=os.environ.get(&quot;GH_TOKEN&quot;),
+                        help=&quot;OAuth token to use for accessing GitHub api&quot;)
+    parser.add_argument(&quot;--comment-pr&quot;,
+                        action=&quot;store&quot;,
+                        default=os.environ.get(&quot;TRAVIS_PULL_REQUEST&quot;),
+                        help=&quot;PR to comment on with stability results&quot;)
+    parser.add_argument(&quot;browser&quot;,
+                        action=&quot;store&quot;,
+                        help=&quot;Browser to run against&quot;)
+    return parser
+
+
+def main():
+    retcode = 0
+    parser = get_parser()
+    args = parser.parse_args()
+
+    if not os.path.exists(args.root):
+        logger.critical(&quot;Root directory %s does not exist&quot; % args.root)
+        return 1
+
+    os.chdir(args.root)
+
+    if args.gh_token:
+        gh_handler = setup_github_logging(args)
+    else:
+        logger.warning(&quot;Can't log to GitHub&quot;)
+        gh_handler = None
+
+    print &gt;&gt; sys.stderr, &quot;travis_fold:start:browser_setup&quot;
+    logger.info(&quot;# %s #&quot; % args.browser.title())
+
+    browser_cls = {&quot;firefox&quot;: Firefox,
+                   &quot;chrome&quot;: Chrome}.get(args.browser)
+    if browser_cls is None:
+        logger.critical(&quot;Unrecognised browser %s&quot; % args.browser)
+        return 1
+
+    fetch_wpt_master()
+
+    head_sha1 = get_sha1()
+    logger.info(&quot;Testing revision %s&quot; % head_sha1)
+
+    # For now just pass the whole list of changed files to wptrunner and
+    # assume that it will run everything that's actually a test
+    files_changed = get_files_changed()
+
+    if not files_changed:
+        logger.info(&quot;No files changed&quot;)
+        return 0
+
+    build_manifest()
+    install_wptrunner()
+    do_delayed_imports()
+
+    logger.debug(&quot;Files changed:\n%s&quot; % &quot;&quot;.join(&quot; * %s\n&quot; % item for item in files_changed))
+
+    browser = browser_cls(args.gh_token)
+
+    browser.install()
+    browser.install_webdriver()
+
+    kwargs = wptrunner_args(args.root,
+                            files_changed,
+                            args.iterations,
+                            browser)
+
+    print &gt;&gt; sys.stderr, &quot;travis_fold:end:browser_setup&quot;
+    print &gt;&gt; sys.stderr, &quot;travis_fold:start:running_tests&quot;
+    logger.info(&quot;Starting %i test iterations&quot; % args.iterations)
+    with open(&quot;raw.log&quot;, &quot;wb&quot;) as log:
+        wptrunner.setup_logging(kwargs,
+                                {&quot;raw&quot;: log})
+        # Setup logging for wptrunner that keeps process output and
+        # warning+ level logs only
+        wptrunner.logger.add_handler(
+            LogActionFilter(
+                LogLevelFilter(
+                    StreamHandler(
+                        sys.stdout,
+                        TbplFormatter()
+                    ),
+                    &quot;WARNING&quot;),
+                [&quot;log&quot;, &quot;process_output&quot;]))
+
+        wptrunner.run_tests(**kwargs)
+
+    with open(&quot;raw.log&quot;, &quot;rb&quot;) as log:
+        results, inconsistent = process_results(log, args.iterations)
+
+    print &gt;&gt; sys.stderr, &quot;travis_fold:end:running_tests&quot;
+
+    if results:
+        if inconsistent:
+            write_inconsistent(inconsistent, args.iterations)
+            retcode = 2
+        else:
+            logger.info(&quot;All results were stable\n&quot;)
+        print &gt;&gt; sys.stderr, &quot;travis_fold:start:full_results&quot;
+        write_results(results, args.iterations)
+        print &gt;&gt; sys.stderr, &quot;travis_fold:end:full_results&quot;
+    else:
+        logger.info(&quot;No tests run.&quot;)
+
+    try:
+        if gh_handler:
+            gh_handler.send()
+    except Exception:
+        logger.error(traceback.format_exc())
+    return retcode
+
+
+if __name__ == &quot;__main__&quot;:
+    try:
+        retcode = main()
+    except:
+        raise
+    else:
+        sys.exit(retcode)
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsci_lintsh"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/ci_lint.sh (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/ci_lint.sh                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/ci_lint.sh        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+set -ex
+
+./manifest
+./lint
+./diff-manifest.py
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsci_stabilitysh"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/ci_stability.sh (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/ci_stability.sh                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/ci_stability.sh        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+set -e
+
+hosts_fixup() {
+    echo &quot;travis_fold:start:hosts_fixup&quot;
+    echo &quot;Rewriting hosts file&quot;
+    echo &quot;## /etc/hosts ##&quot;
+    cat /etc/hosts
+    sudo sed -i 's/^::1\s*localhost/::1/' /etc/hosts
+    sudo sh -c 'echo &quot;
+127.0.0.1 web-platform.test
+127.0.0.1 www.web-platform.test
+127.0.0.1 www1.web-platform.test
+127.0.0.1 www2.web-platform.test
+127.0.0.1 xn--n8j6ds53lwwkrqhv28a.web-platform.test
+127.0.0.1 xn--lve-6lad.web-platform.test
+&quot; &gt;&gt; /etc/hosts'
+    echo &quot;== /etc/hosts ==&quot;
+    cat /etc/hosts
+    echo &quot;----------------&quot;
+    echo &quot;travis_fold:end:hosts_fixup&quot;
+}
+
+
+test_stability() {
+    python check_stability.py $PRODUCT
+}
+
+main() {
+    hosts_fixup
+    test_stability
+}
+
+main
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchclickexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-click-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-click-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-click-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+
+PASS basic with click() 
+PASS basic with dispatchEvent() 
+PASS basic with wrong event class 
+PASS look at parents only when event bubbles 
+FAIL look at parents when event bubbles assert_true: expected true got false
+FAIL pick the first with activation behavior &lt;input type=checkbox&gt; assert_true: child pre-click must be triggered expected true got false
+PASS pick the first with activation behavior &lt;a href&gt; 
+PASS event state during post-click handling 
+PASS redispatch during post-click handling 
+PASS disabled checkbox still has activation behavior 
+PASS disabled checkbox still has activation behavior, part 2 
+PASS disconnected checkbox should be checked 
+PASS disconnected radio should be checked 
+FAIL disconnected form should not submit assert_false: expected false got true
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsEventdispatchclickhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-click.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-click.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-click.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,204 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Synthetic click event &quot;magic&quot;&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;div id=dump style=display:none&gt;&lt;/div&gt;
+&lt;script&gt;
+var dump = document.getElementById(&quot;dump&quot;)
+
+async_test(function(t) {
+  var input = document.createElement(&quot;input&quot;)
+  input.type = &quot;checkbox&quot;
+  dump.appendChild(input)
+  input.onclick = t.step_func_done(function() {
+    assert_true(input.checked)
+  })
+  input.click()
+}, &quot;basic with click()&quot;)
+
+async_test(function(t) {
+  var input = document.createElement(&quot;input&quot;)
+  input.type = &quot;checkbox&quot;
+  dump.appendChild(input)
+  input.onclick = t.step_func_done(function() {
+    assert_true(input.checked)
+  })
+  input.dispatchEvent(new MouseEvent(&quot;click&quot;, {bubbles:true})) // equivalent to the above
+}, &quot;basic with dispatchEvent()&quot;)
+
+async_test(function(t) {
+  var input = document.createElement(&quot;input&quot;)
+  input.type = &quot;checkbox&quot;
+  dump.appendChild(input)
+  input.onclick = t.step_func_done(function() {
+    assert_false(input.checked)
+  })
+  input.dispatchEvent(new Event(&quot;click&quot;, {bubbles:true})) // no MouseEvent
+}, &quot;basic with wrong event class&quot;)
+
+async_test(function(t) {
+  var input = document.createElement(&quot;input&quot;)
+  input.type = &quot;checkbox&quot;
+  dump.appendChild(input)
+  var child = input.appendChild(new Text(&quot;does not matter&quot;))
+  child.dispatchEvent(new MouseEvent(&quot;click&quot;)) // does not bubble
+  assert_false(input.checked)
+  t.done()
+}, &quot;look at parents only when event bubbles&quot;)
+
+async_test(function(t) {
+  var input = document.createElement(&quot;input&quot;)
+  input.type = &quot;checkbox&quot;
+  dump.appendChild(input)
+  input.onclick = t.step_func_done(function() {
+    assert_true(input.checked)
+  })
+  var child = input.appendChild(new Text(&quot;does not matter&quot;))
+  child.dispatchEvent(new MouseEvent(&quot;click&quot;, {bubbles:true}))
+}, &quot;look at parents when event bubbles&quot;)
+
+async_test(function(t) {
+  var input = document.createElement(&quot;input&quot;)
+  input.type = &quot;checkbox&quot;
+  dump.appendChild(input)
+  input.onclick = t.step_func(function() {
+    assert_false(input.checked, &quot;input pre-click must not be triggered&quot;)
+  })
+  var child = input.appendChild(document.createElement(&quot;input&quot;))
+  child.type = &quot;checkbox&quot;
+  child.onclick = t.step_func(function() {
+    assert_true(input.checked, &quot;child pre-click must be triggered&quot;)
+  })
+  child.dispatchEvent(new MouseEvent(&quot;click&quot;, {bubbles:true}))
+  t.done()
+}, &quot;pick the first with activation behavior &lt;input type=checkbox&gt;&quot;)
+
+var globalCounter = 0 // sorry
+async_test(function(t) { // as above with &lt;a&gt;
+  var i = 0
+  var link = document.createElement(&quot;a&quot;)
+  link.href = &quot;javascript:(function(){globalCounter--})()&quot; // must not be triggered
+  dump.appendChild(link)
+  var child = link.appendChild(document.createElement(&quot;a&quot;))
+  child.href = &quot;javascript:(function(){globalCounter++})()&quot;
+  child.dispatchEvent(new MouseEvent(&quot;click&quot;, {bubbles:true}))
+  assert_equals(globalCounter, 1)
+  t.done()
+}, &quot;pick the first with activation behavior &lt;a href&gt;&quot;)
+
+async_test(function(t) {
+  var input = document.createElement(&quot;input&quot;)
+  input.type = &quot;checkbox&quot;
+  dump.appendChild(input)
+  var clickEvent = new MouseEvent(&quot;click&quot;)
+  input.onchange = t.step_func_done(function() {
+    assert_false(clickEvent.defaultPrevented)
+    assert_equals(clickEvent.eventPhase, 0)
+    assert_equals(clickEvent.currentTarget, null)
+    assert_equals(clickEvent.target, input)
+    assert_equals(clickEvent.composedPath().length, 0)
+  })
+  input.dispatchEvent(clickEvent)
+}, &quot;event state during post-click handling&quot;)
+
+async_test(function(t) {
+  var input = document.createElement(&quot;input&quot;)
+  input.type = &quot;checkbox&quot;
+  dump.appendChild(input)
+  var clickEvent = new MouseEvent(&quot;click&quot;)
+  var finalTarget = document.createElement(&quot;doesnotmatter&quot;)
+  finalTarget.onclick = t.step_func_done(function() {
+    assert_equals(clickEvent.target, finalTarget)
+  })
+  input.onchange = t.step_func(function() {
+    finalTarget.dispatchEvent(clickEvent)
+  })
+  input.dispatchEvent(clickEvent)
+}, &quot;redispatch during post-click handling&quot;)
+
+async_test(function(t) {
+  var input = document.createElement(&quot;input&quot;)
+  input.type = &quot;checkbox&quot;
+  dump.appendChild(input)
+  var child = input.appendChild(document.createElement(&quot;input&quot;))
+  child.type = &quot;checkbox&quot;
+  child.disabled = true
+  child.click()
+  assert_false(input.checked)
+  assert_false(child.checked)
+  t.done()
+}, &quot;disabled checkbox still has activation behavior&quot;)
+
+async_test(function(t) {
+  var state = &quot;start&quot;
+
+  var form = document.createElement(&quot;form&quot;)
+  form.onsubmit = t.step_func(() =&gt; {
+    if(state == &quot;start&quot; || state == &quot;checkbox&quot;) {
+      state = &quot;failure&quot;
+    } else if(state == &quot;form&quot;) {
+      state = &quot;done&quot;
+    }
+    return false
+  })
+  dump.appendChild(form)
+  var button = form.appendChild(document.createElement(&quot;button&quot;))
+  button.type = &quot;submit&quot;
+  var checkbox = button.appendChild(document.createElement(&quot;input&quot;))
+  checkbox.type = &quot;checkbox&quot;
+  checkbox.onclick = t.step_func(() =&gt; {
+    if(state == &quot;start&quot;) {
+      assert_unreached()
+    } else if(state == &quot;checkbox&quot;) {
+      assert_true(checkbox.checked)
+    }
+  })
+  checkbox.disabled = true
+  checkbox.click()
+  assert_equals(state, &quot;start&quot;)
+
+  state = &quot;checkbox&quot;
+  checkbox.disabled = false
+  checkbox.click()
+  assert_equals(state, &quot;checkbox&quot;)
+
+  state = &quot;form&quot;
+  button.click()
+  assert_equals(state, &quot;done&quot;)
+
+  t.done()
+}, &quot;disabled checkbox still has activation behavior, part 2&quot;)
+
+async_test(function(t) {
+  var input = document.createElement(&quot;input&quot;)
+  input.type = &quot;checkbox&quot;
+  input.onclick = t.step_func_done(function() {
+    assert_true(input.checked)
+  })
+  input.click()
+}, &quot;disconnected checkbox should be checked&quot;)
+
+async_test(function(t) {
+  var input = document.createElement(&quot;input&quot;)
+  input.type = &quot;radio&quot;
+  input.onclick = t.step_func_done(function() {
+    assert_true(input.checked)
+  })
+  input.click()
+}, &quot;disconnected radio should be checked&quot;)
+
+async_test(function(t) {
+  var form = document.createElement(&quot;form&quot;)
+  var didSubmit = false
+  form.onsubmit = t.step_func(() =&gt; {
+    didSubmit = true
+    return false
+  })
+  var input = form.appendChild(document.createElement(&quot;input&quot;))
+  input.type = &quot;submit&quot;
+  input.click()
+  assert_false(didSubmit)
+  t.done()
+}, &quot;disconnected form should not submit&quot;)
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomeventsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/events/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -24,6 +24,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-defaultPrevented.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-bubbles-false.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-bubbles-true.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-click.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-detached-click.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-handlers-changed.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-dispatch-multiple-stopPropagation.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodecontainsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-contains-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-contains-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-contains-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,1408 +1,1408 @@
</span><span class="cx"> 
</span><span class="cx"> PASS paras[0].contains(null) 
</span><del>-PASS paras[0].compareDocumentPosition(paras[0]) 
-PASS paras[0].compareDocumentPosition(paras[0].firstChild) 
-PASS paras[0].compareDocumentPosition(paras[1].firstChild) 
-PASS paras[0].compareDocumentPosition(foreignPara1) 
-PASS paras[0].compareDocumentPosition(foreignPara1.firstChild) 
-PASS paras[0].compareDocumentPosition(detachedPara1) 
-PASS paras[0].compareDocumentPosition(detachedPara1.firstChild) 
-PASS paras[0].compareDocumentPosition(document) 
-PASS paras[0].compareDocumentPosition(detachedDiv) 
-PASS paras[0].compareDocumentPosition(foreignDoc) 
-PASS paras[0].compareDocumentPosition(foreignPara2) 
-PASS paras[0].compareDocumentPosition(xmlDoc) 
-PASS paras[0].compareDocumentPosition(xmlElement) 
-PASS paras[0].compareDocumentPosition(detachedTextNode) 
-PASS paras[0].compareDocumentPosition(foreignTextNode) 
-PASS paras[0].compareDocumentPosition(processingInstruction) 
-PASS paras[0].compareDocumentPosition(detachedProcessingInstruction) 
-PASS paras[0].compareDocumentPosition(comment) 
-PASS paras[0].compareDocumentPosition(detachedComment) 
-PASS paras[0].compareDocumentPosition(docfrag) 
-PASS paras[0].compareDocumentPosition(doctype) 
-PASS paras[0].compareDocumentPosition(foreignDoctype) 
-PASS paras[0].compareDocumentPosition(paras[1]) 
-PASS paras[0].compareDocumentPosition(detachedPara2) 
-PASS paras[0].compareDocumentPosition(detachedPara2.firstChild) 
-PASS paras[0].compareDocumentPosition(testDiv) 
-PASS paras[0].compareDocumentPosition(detachedXmlElement) 
-PASS paras[0].compareDocumentPosition(detachedForeignTextNode) 
-PASS paras[0].compareDocumentPosition(xmlTextNode) 
-PASS paras[0].compareDocumentPosition(detachedXmlTextNode) 
-PASS paras[0].compareDocumentPosition(xmlComment) 
-PASS paras[0].compareDocumentPosition(foreignComment) 
-PASS paras[0].compareDocumentPosition(detachedForeignComment) 
-PASS paras[0].compareDocumentPosition(detachedXmlComment) 
-PASS paras[0].compareDocumentPosition(foreignDocfrag) 
-PASS paras[0].compareDocumentPosition(xmlDocfrag) 
-PASS paras[0].compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS paras[0].contains(paras[0]) 
+PASS paras[0].contains(paras[0].firstChild) 
+PASS paras[0].contains(paras[1].firstChild) 
+PASS paras[0].contains(foreignPara1) 
+PASS paras[0].contains(foreignPara1.firstChild) 
+PASS paras[0].contains(detachedPara1) 
+PASS paras[0].contains(detachedPara1.firstChild) 
+PASS paras[0].contains(document) 
+PASS paras[0].contains(detachedDiv) 
+PASS paras[0].contains(foreignDoc) 
+PASS paras[0].contains(foreignPara2) 
+PASS paras[0].contains(xmlDoc) 
+PASS paras[0].contains(xmlElement) 
+PASS paras[0].contains(detachedTextNode) 
+PASS paras[0].contains(foreignTextNode) 
+PASS paras[0].contains(processingInstruction) 
+PASS paras[0].contains(detachedProcessingInstruction) 
+PASS paras[0].contains(comment) 
+PASS paras[0].contains(detachedComment) 
+PASS paras[0].contains(docfrag) 
+PASS paras[0].contains(doctype) 
+PASS paras[0].contains(foreignDoctype) 
+PASS paras[0].contains(paras[1]) 
+PASS paras[0].contains(detachedPara2) 
+PASS paras[0].contains(detachedPara2.firstChild) 
+PASS paras[0].contains(testDiv) 
+PASS paras[0].contains(detachedXmlElement) 
+PASS paras[0].contains(detachedForeignTextNode) 
+PASS paras[0].contains(xmlTextNode) 
+PASS paras[0].contains(detachedXmlTextNode) 
+PASS paras[0].contains(xmlComment) 
+PASS paras[0].contains(foreignComment) 
+PASS paras[0].contains(detachedForeignComment) 
+PASS paras[0].contains(detachedXmlComment) 
+PASS paras[0].contains(foreignDocfrag) 
+PASS paras[0].contains(xmlDocfrag) 
+PASS paras[0].contains(xmlDoctype) 
</ins><span class="cx"> PASS paras[0].firstChild.contains(null) 
</span><del>-PASS paras[0].firstChild.compareDocumentPosition(paras[0]) 
-PASS paras[0].firstChild.compareDocumentPosition(paras[0].firstChild) 
-PASS paras[0].firstChild.compareDocumentPosition(paras[1].firstChild) 
-PASS paras[0].firstChild.compareDocumentPosition(foreignPara1) 
-PASS paras[0].firstChild.compareDocumentPosition(foreignPara1.firstChild) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedPara1) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedPara1.firstChild) 
-PASS paras[0].firstChild.compareDocumentPosition(document) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedDiv) 
-PASS paras[0].firstChild.compareDocumentPosition(foreignDoc) 
-PASS paras[0].firstChild.compareDocumentPosition(foreignPara2) 
-PASS paras[0].firstChild.compareDocumentPosition(xmlDoc) 
-PASS paras[0].firstChild.compareDocumentPosition(xmlElement) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedTextNode) 
-PASS paras[0].firstChild.compareDocumentPosition(foreignTextNode) 
-PASS paras[0].firstChild.compareDocumentPosition(processingInstruction) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedProcessingInstruction) 
-PASS paras[0].firstChild.compareDocumentPosition(comment) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedComment) 
-PASS paras[0].firstChild.compareDocumentPosition(docfrag) 
-PASS paras[0].firstChild.compareDocumentPosition(doctype) 
-PASS paras[0].firstChild.compareDocumentPosition(foreignDoctype) 
-PASS paras[0].firstChild.compareDocumentPosition(paras[1]) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedPara2) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedPara2.firstChild) 
-PASS paras[0].firstChild.compareDocumentPosition(testDiv) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedXmlElement) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedForeignTextNode) 
-PASS paras[0].firstChild.compareDocumentPosition(xmlTextNode) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedXmlTextNode) 
-PASS paras[0].firstChild.compareDocumentPosition(xmlComment) 
-PASS paras[0].firstChild.compareDocumentPosition(foreignComment) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedForeignComment) 
-PASS paras[0].firstChild.compareDocumentPosition(detachedXmlComment) 
-PASS paras[0].firstChild.compareDocumentPosition(foreignDocfrag) 
-PASS paras[0].firstChild.compareDocumentPosition(xmlDocfrag) 
-PASS paras[0].firstChild.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS paras[0].firstChild.contains(paras[0]) 
+PASS paras[0].firstChild.contains(paras[0].firstChild) 
+PASS paras[0].firstChild.contains(paras[1].firstChild) 
+PASS paras[0].firstChild.contains(foreignPara1) 
+PASS paras[0].firstChild.contains(foreignPara1.firstChild) 
+PASS paras[0].firstChild.contains(detachedPara1) 
+PASS paras[0].firstChild.contains(detachedPara1.firstChild) 
+PASS paras[0].firstChild.contains(document) 
+PASS paras[0].firstChild.contains(detachedDiv) 
+PASS paras[0].firstChild.contains(foreignDoc) 
+PASS paras[0].firstChild.contains(foreignPara2) 
+PASS paras[0].firstChild.contains(xmlDoc) 
+PASS paras[0].firstChild.contains(xmlElement) 
+PASS paras[0].firstChild.contains(detachedTextNode) 
+PASS paras[0].firstChild.contains(foreignTextNode) 
+PASS paras[0].firstChild.contains(processingInstruction) 
+PASS paras[0].firstChild.contains(detachedProcessingInstruction) 
+PASS paras[0].firstChild.contains(comment) 
+PASS paras[0].firstChild.contains(detachedComment) 
+PASS paras[0].firstChild.contains(docfrag) 
+PASS paras[0].firstChild.contains(doctype) 
+PASS paras[0].firstChild.contains(foreignDoctype) 
+PASS paras[0].firstChild.contains(paras[1]) 
+PASS paras[0].firstChild.contains(detachedPara2) 
+PASS paras[0].firstChild.contains(detachedPara2.firstChild) 
+PASS paras[0].firstChild.contains(testDiv) 
+PASS paras[0].firstChild.contains(detachedXmlElement) 
+PASS paras[0].firstChild.contains(detachedForeignTextNode) 
+PASS paras[0].firstChild.contains(xmlTextNode) 
+PASS paras[0].firstChild.contains(detachedXmlTextNode) 
+PASS paras[0].firstChild.contains(xmlComment) 
+PASS paras[0].firstChild.contains(foreignComment) 
+PASS paras[0].firstChild.contains(detachedForeignComment) 
+PASS paras[0].firstChild.contains(detachedXmlComment) 
+PASS paras[0].firstChild.contains(foreignDocfrag) 
+PASS paras[0].firstChild.contains(xmlDocfrag) 
+PASS paras[0].firstChild.contains(xmlDoctype) 
</ins><span class="cx"> PASS paras[1].firstChild.contains(null) 
</span><del>-PASS paras[1].firstChild.compareDocumentPosition(paras[0]) 
-PASS paras[1].firstChild.compareDocumentPosition(paras[0].firstChild) 
-PASS paras[1].firstChild.compareDocumentPosition(paras[1].firstChild) 
-PASS paras[1].firstChild.compareDocumentPosition(foreignPara1) 
-PASS paras[1].firstChild.compareDocumentPosition(foreignPara1.firstChild) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedPara1) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedPara1.firstChild) 
-PASS paras[1].firstChild.compareDocumentPosition(document) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedDiv) 
-PASS paras[1].firstChild.compareDocumentPosition(foreignDoc) 
-PASS paras[1].firstChild.compareDocumentPosition(foreignPara2) 
-PASS paras[1].firstChild.compareDocumentPosition(xmlDoc) 
-PASS paras[1].firstChild.compareDocumentPosition(xmlElement) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedTextNode) 
-PASS paras[1].firstChild.compareDocumentPosition(foreignTextNode) 
-PASS paras[1].firstChild.compareDocumentPosition(processingInstruction) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedProcessingInstruction) 
-PASS paras[1].firstChild.compareDocumentPosition(comment) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedComment) 
-PASS paras[1].firstChild.compareDocumentPosition(docfrag) 
-PASS paras[1].firstChild.compareDocumentPosition(doctype) 
-PASS paras[1].firstChild.compareDocumentPosition(foreignDoctype) 
-PASS paras[1].firstChild.compareDocumentPosition(paras[1]) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedPara2) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedPara2.firstChild) 
-PASS paras[1].firstChild.compareDocumentPosition(testDiv) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedXmlElement) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedForeignTextNode) 
-PASS paras[1].firstChild.compareDocumentPosition(xmlTextNode) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedXmlTextNode) 
-PASS paras[1].firstChild.compareDocumentPosition(xmlComment) 
-PASS paras[1].firstChild.compareDocumentPosition(foreignComment) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedForeignComment) 
-PASS paras[1].firstChild.compareDocumentPosition(detachedXmlComment) 
-PASS paras[1].firstChild.compareDocumentPosition(foreignDocfrag) 
-PASS paras[1].firstChild.compareDocumentPosition(xmlDocfrag) 
-PASS paras[1].firstChild.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS paras[1].firstChild.contains(paras[0]) 
+PASS paras[1].firstChild.contains(paras[0].firstChild) 
+PASS paras[1].firstChild.contains(paras[1].firstChild) 
+PASS paras[1].firstChild.contains(foreignPara1) 
+PASS paras[1].firstChild.contains(foreignPara1.firstChild) 
+PASS paras[1].firstChild.contains(detachedPara1) 
+PASS paras[1].firstChild.contains(detachedPara1.firstChild) 
+PASS paras[1].firstChild.contains(document) 
+PASS paras[1].firstChild.contains(detachedDiv) 
+PASS paras[1].firstChild.contains(foreignDoc) 
+PASS paras[1].firstChild.contains(foreignPara2) 
+PASS paras[1].firstChild.contains(xmlDoc) 
+PASS paras[1].firstChild.contains(xmlElement) 
+PASS paras[1].firstChild.contains(detachedTextNode) 
+PASS paras[1].firstChild.contains(foreignTextNode) 
+PASS paras[1].firstChild.contains(processingInstruction) 
+PASS paras[1].firstChild.contains(detachedProcessingInstruction) 
+PASS paras[1].firstChild.contains(comment) 
+PASS paras[1].firstChild.contains(detachedComment) 
+PASS paras[1].firstChild.contains(docfrag) 
+PASS paras[1].firstChild.contains(doctype) 
+PASS paras[1].firstChild.contains(foreignDoctype) 
+PASS paras[1].firstChild.contains(paras[1]) 
+PASS paras[1].firstChild.contains(detachedPara2) 
+PASS paras[1].firstChild.contains(detachedPara2.firstChild) 
+PASS paras[1].firstChild.contains(testDiv) 
+PASS paras[1].firstChild.contains(detachedXmlElement) 
+PASS paras[1].firstChild.contains(detachedForeignTextNode) 
+PASS paras[1].firstChild.contains(xmlTextNode) 
+PASS paras[1].firstChild.contains(detachedXmlTextNode) 
+PASS paras[1].firstChild.contains(xmlComment) 
+PASS paras[1].firstChild.contains(foreignComment) 
+PASS paras[1].firstChild.contains(detachedForeignComment) 
+PASS paras[1].firstChild.contains(detachedXmlComment) 
+PASS paras[1].firstChild.contains(foreignDocfrag) 
+PASS paras[1].firstChild.contains(xmlDocfrag) 
+PASS paras[1].firstChild.contains(xmlDoctype) 
</ins><span class="cx"> PASS foreignPara1.contains(null) 
</span><del>-PASS foreignPara1.compareDocumentPosition(paras[0]) 
-PASS foreignPara1.compareDocumentPosition(paras[0].firstChild) 
-PASS foreignPara1.compareDocumentPosition(paras[1].firstChild) 
-PASS foreignPara1.compareDocumentPosition(foreignPara1) 
-PASS foreignPara1.compareDocumentPosition(foreignPara1.firstChild) 
-PASS foreignPara1.compareDocumentPosition(detachedPara1) 
-PASS foreignPara1.compareDocumentPosition(detachedPara1.firstChild) 
-PASS foreignPara1.compareDocumentPosition(document) 
-PASS foreignPara1.compareDocumentPosition(detachedDiv) 
-PASS foreignPara1.compareDocumentPosition(foreignDoc) 
-PASS foreignPara1.compareDocumentPosition(foreignPara2) 
-PASS foreignPara1.compareDocumentPosition(xmlDoc) 
-PASS foreignPara1.compareDocumentPosition(xmlElement) 
-PASS foreignPara1.compareDocumentPosition(detachedTextNode) 
-PASS foreignPara1.compareDocumentPosition(foreignTextNode) 
-PASS foreignPara1.compareDocumentPosition(processingInstruction) 
-PASS foreignPara1.compareDocumentPosition(detachedProcessingInstruction) 
-PASS foreignPara1.compareDocumentPosition(comment) 
-PASS foreignPara1.compareDocumentPosition(detachedComment) 
-PASS foreignPara1.compareDocumentPosition(docfrag) 
-PASS foreignPara1.compareDocumentPosition(doctype) 
-PASS foreignPara1.compareDocumentPosition(foreignDoctype) 
-PASS foreignPara1.compareDocumentPosition(paras[1]) 
-PASS foreignPara1.compareDocumentPosition(detachedPara2) 
-PASS foreignPara1.compareDocumentPosition(detachedPara2.firstChild) 
-PASS foreignPara1.compareDocumentPosition(testDiv) 
-PASS foreignPara1.compareDocumentPosition(detachedXmlElement) 
-PASS foreignPara1.compareDocumentPosition(detachedForeignTextNode) 
-PASS foreignPara1.compareDocumentPosition(xmlTextNode) 
-PASS foreignPara1.compareDocumentPosition(detachedXmlTextNode) 
-PASS foreignPara1.compareDocumentPosition(xmlComment) 
-PASS foreignPara1.compareDocumentPosition(foreignComment) 
-PASS foreignPara1.compareDocumentPosition(detachedForeignComment) 
-PASS foreignPara1.compareDocumentPosition(detachedXmlComment) 
-PASS foreignPara1.compareDocumentPosition(foreignDocfrag) 
-PASS foreignPara1.compareDocumentPosition(xmlDocfrag) 
-PASS foreignPara1.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS foreignPara1.contains(paras[0]) 
+PASS foreignPara1.contains(paras[0].firstChild) 
+PASS foreignPara1.contains(paras[1].firstChild) 
+PASS foreignPara1.contains(foreignPara1) 
+PASS foreignPara1.contains(foreignPara1.firstChild) 
+PASS foreignPara1.contains(detachedPara1) 
+PASS foreignPara1.contains(detachedPara1.firstChild) 
+PASS foreignPara1.contains(document) 
+PASS foreignPara1.contains(detachedDiv) 
+PASS foreignPara1.contains(foreignDoc) 
+PASS foreignPara1.contains(foreignPara2) 
+PASS foreignPara1.contains(xmlDoc) 
+PASS foreignPara1.contains(xmlElement) 
+PASS foreignPara1.contains(detachedTextNode) 
+PASS foreignPara1.contains(foreignTextNode) 
+PASS foreignPara1.contains(processingInstruction) 
+PASS foreignPara1.contains(detachedProcessingInstruction) 
+PASS foreignPara1.contains(comment) 
+PASS foreignPara1.contains(detachedComment) 
+PASS foreignPara1.contains(docfrag) 
+PASS foreignPara1.contains(doctype) 
+PASS foreignPara1.contains(foreignDoctype) 
+PASS foreignPara1.contains(paras[1]) 
+PASS foreignPara1.contains(detachedPara2) 
+PASS foreignPara1.contains(detachedPara2.firstChild) 
+PASS foreignPara1.contains(testDiv) 
+PASS foreignPara1.contains(detachedXmlElement) 
+PASS foreignPara1.contains(detachedForeignTextNode) 
+PASS foreignPara1.contains(xmlTextNode) 
+PASS foreignPara1.contains(detachedXmlTextNode) 
+PASS foreignPara1.contains(xmlComment) 
+PASS foreignPara1.contains(foreignComment) 
+PASS foreignPara1.contains(detachedForeignComment) 
+PASS foreignPara1.contains(detachedXmlComment) 
+PASS foreignPara1.contains(foreignDocfrag) 
+PASS foreignPara1.contains(xmlDocfrag) 
+PASS foreignPara1.contains(xmlDoctype) 
</ins><span class="cx"> PASS foreignPara1.firstChild.contains(null) 
</span><del>-PASS foreignPara1.firstChild.compareDocumentPosition(paras[0]) 
-PASS foreignPara1.firstChild.compareDocumentPosition(paras[0].firstChild) 
-PASS foreignPara1.firstChild.compareDocumentPosition(paras[1].firstChild) 
-PASS foreignPara1.firstChild.compareDocumentPosition(foreignPara1) 
-PASS foreignPara1.firstChild.compareDocumentPosition(foreignPara1.firstChild) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedPara1) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedPara1.firstChild) 
-PASS foreignPara1.firstChild.compareDocumentPosition(document) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedDiv) 
-PASS foreignPara1.firstChild.compareDocumentPosition(foreignDoc) 
-PASS foreignPara1.firstChild.compareDocumentPosition(foreignPara2) 
-PASS foreignPara1.firstChild.compareDocumentPosition(xmlDoc) 
-PASS foreignPara1.firstChild.compareDocumentPosition(xmlElement) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedTextNode) 
-PASS foreignPara1.firstChild.compareDocumentPosition(foreignTextNode) 
-PASS foreignPara1.firstChild.compareDocumentPosition(processingInstruction) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedProcessingInstruction) 
-PASS foreignPara1.firstChild.compareDocumentPosition(comment) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedComment) 
-PASS foreignPara1.firstChild.compareDocumentPosition(docfrag) 
-PASS foreignPara1.firstChild.compareDocumentPosition(doctype) 
-PASS foreignPara1.firstChild.compareDocumentPosition(foreignDoctype) 
-PASS foreignPara1.firstChild.compareDocumentPosition(paras[1]) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedPara2) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedPara2.firstChild) 
-PASS foreignPara1.firstChild.compareDocumentPosition(testDiv) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedXmlElement) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedForeignTextNode) 
-PASS foreignPara1.firstChild.compareDocumentPosition(xmlTextNode) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedXmlTextNode) 
-PASS foreignPara1.firstChild.compareDocumentPosition(xmlComment) 
-PASS foreignPara1.firstChild.compareDocumentPosition(foreignComment) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedForeignComment) 
-PASS foreignPara1.firstChild.compareDocumentPosition(detachedXmlComment) 
-PASS foreignPara1.firstChild.compareDocumentPosition(foreignDocfrag) 
-PASS foreignPara1.firstChild.compareDocumentPosition(xmlDocfrag) 
-PASS foreignPara1.firstChild.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS foreignPara1.firstChild.contains(paras[0]) 
+PASS foreignPara1.firstChild.contains(paras[0].firstChild) 
+PASS foreignPara1.firstChild.contains(paras[1].firstChild) 
+PASS foreignPara1.firstChild.contains(foreignPara1) 
+PASS foreignPara1.firstChild.contains(foreignPara1.firstChild) 
+PASS foreignPara1.firstChild.contains(detachedPara1) 
+PASS foreignPara1.firstChild.contains(detachedPara1.firstChild) 
+PASS foreignPara1.firstChild.contains(document) 
+PASS foreignPara1.firstChild.contains(detachedDiv) 
+PASS foreignPara1.firstChild.contains(foreignDoc) 
+PASS foreignPara1.firstChild.contains(foreignPara2) 
+PASS foreignPara1.firstChild.contains(xmlDoc) 
+PASS foreignPara1.firstChild.contains(xmlElement) 
+PASS foreignPara1.firstChild.contains(detachedTextNode) 
+PASS foreignPara1.firstChild.contains(foreignTextNode) 
+PASS foreignPara1.firstChild.contains(processingInstruction) 
+PASS foreignPara1.firstChild.contains(detachedProcessingInstruction) 
+PASS foreignPara1.firstChild.contains(comment) 
+PASS foreignPara1.firstChild.contains(detachedComment) 
+PASS foreignPara1.firstChild.contains(docfrag) 
+PASS foreignPara1.firstChild.contains(doctype) 
+PASS foreignPara1.firstChild.contains(foreignDoctype) 
+PASS foreignPara1.firstChild.contains(paras[1]) 
+PASS foreignPara1.firstChild.contains(detachedPara2) 
+PASS foreignPara1.firstChild.contains(detachedPara2.firstChild) 
+PASS foreignPara1.firstChild.contains(testDiv) 
+PASS foreignPara1.firstChild.contains(detachedXmlElement) 
+PASS foreignPara1.firstChild.contains(detachedForeignTextNode) 
+PASS foreignPara1.firstChild.contains(xmlTextNode) 
+PASS foreignPara1.firstChild.contains(detachedXmlTextNode) 
+PASS foreignPara1.firstChild.contains(xmlComment) 
+PASS foreignPara1.firstChild.contains(foreignComment) 
+PASS foreignPara1.firstChild.contains(detachedForeignComment) 
+PASS foreignPara1.firstChild.contains(detachedXmlComment) 
+PASS foreignPara1.firstChild.contains(foreignDocfrag) 
+PASS foreignPara1.firstChild.contains(xmlDocfrag) 
+PASS foreignPara1.firstChild.contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedPara1.contains(null) 
</span><del>-PASS detachedPara1.compareDocumentPosition(paras[0]) 
-PASS detachedPara1.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedPara1.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedPara1.compareDocumentPosition(foreignPara1) 
-PASS detachedPara1.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedPara1.compareDocumentPosition(detachedPara1) 
-PASS detachedPara1.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedPara1.compareDocumentPosition(document) 
-PASS detachedPara1.compareDocumentPosition(detachedDiv) 
-PASS detachedPara1.compareDocumentPosition(foreignDoc) 
-PASS detachedPara1.compareDocumentPosition(foreignPara2) 
-PASS detachedPara1.compareDocumentPosition(xmlDoc) 
-PASS detachedPara1.compareDocumentPosition(xmlElement) 
-PASS detachedPara1.compareDocumentPosition(detachedTextNode) 
-PASS detachedPara1.compareDocumentPosition(foreignTextNode) 
-PASS detachedPara1.compareDocumentPosition(processingInstruction) 
-PASS detachedPara1.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedPara1.compareDocumentPosition(comment) 
-PASS detachedPara1.compareDocumentPosition(detachedComment) 
-PASS detachedPara1.compareDocumentPosition(docfrag) 
-PASS detachedPara1.compareDocumentPosition(doctype) 
-PASS detachedPara1.compareDocumentPosition(foreignDoctype) 
-PASS detachedPara1.compareDocumentPosition(paras[1]) 
-PASS detachedPara1.compareDocumentPosition(detachedPara2) 
-PASS detachedPara1.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedPara1.compareDocumentPosition(testDiv) 
-PASS detachedPara1.compareDocumentPosition(detachedXmlElement) 
-PASS detachedPara1.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedPara1.compareDocumentPosition(xmlTextNode) 
-PASS detachedPara1.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedPara1.compareDocumentPosition(xmlComment) 
-PASS detachedPara1.compareDocumentPosition(foreignComment) 
-PASS detachedPara1.compareDocumentPosition(detachedForeignComment) 
-PASS detachedPara1.compareDocumentPosition(detachedXmlComment) 
-PASS detachedPara1.compareDocumentPosition(foreignDocfrag) 
-PASS detachedPara1.compareDocumentPosition(xmlDocfrag) 
-PASS detachedPara1.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedPara1.contains(paras[0]) 
+PASS detachedPara1.contains(paras[0].firstChild) 
+PASS detachedPara1.contains(paras[1].firstChild) 
+PASS detachedPara1.contains(foreignPara1) 
+PASS detachedPara1.contains(foreignPara1.firstChild) 
+PASS detachedPara1.contains(detachedPara1) 
+PASS detachedPara1.contains(detachedPara1.firstChild) 
+PASS detachedPara1.contains(document) 
+PASS detachedPara1.contains(detachedDiv) 
+PASS detachedPara1.contains(foreignDoc) 
+PASS detachedPara1.contains(foreignPara2) 
+PASS detachedPara1.contains(xmlDoc) 
+PASS detachedPara1.contains(xmlElement) 
+PASS detachedPara1.contains(detachedTextNode) 
+PASS detachedPara1.contains(foreignTextNode) 
+PASS detachedPara1.contains(processingInstruction) 
+PASS detachedPara1.contains(detachedProcessingInstruction) 
+PASS detachedPara1.contains(comment) 
+PASS detachedPara1.contains(detachedComment) 
+PASS detachedPara1.contains(docfrag) 
+PASS detachedPara1.contains(doctype) 
+PASS detachedPara1.contains(foreignDoctype) 
+PASS detachedPara1.contains(paras[1]) 
+PASS detachedPara1.contains(detachedPara2) 
+PASS detachedPara1.contains(detachedPara2.firstChild) 
+PASS detachedPara1.contains(testDiv) 
+PASS detachedPara1.contains(detachedXmlElement) 
+PASS detachedPara1.contains(detachedForeignTextNode) 
+PASS detachedPara1.contains(xmlTextNode) 
+PASS detachedPara1.contains(detachedXmlTextNode) 
+PASS detachedPara1.contains(xmlComment) 
+PASS detachedPara1.contains(foreignComment) 
+PASS detachedPara1.contains(detachedForeignComment) 
+PASS detachedPara1.contains(detachedXmlComment) 
+PASS detachedPara1.contains(foreignDocfrag) 
+PASS detachedPara1.contains(xmlDocfrag) 
+PASS detachedPara1.contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedPara1.firstChild.contains(null) 
</span><del>-PASS detachedPara1.firstChild.compareDocumentPosition(paras[0]) 
-PASS detachedPara1.firstChild.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedPara1.firstChild.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedPara1.firstChild.compareDocumentPosition(foreignPara1) 
-PASS detachedPara1.firstChild.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedPara1) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedPara1.firstChild.compareDocumentPosition(document) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedDiv) 
-PASS detachedPara1.firstChild.compareDocumentPosition(foreignDoc) 
-PASS detachedPara1.firstChild.compareDocumentPosition(foreignPara2) 
-PASS detachedPara1.firstChild.compareDocumentPosition(xmlDoc) 
-PASS detachedPara1.firstChild.compareDocumentPosition(xmlElement) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedTextNode) 
-PASS detachedPara1.firstChild.compareDocumentPosition(foreignTextNode) 
-PASS detachedPara1.firstChild.compareDocumentPosition(processingInstruction) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedPara1.firstChild.compareDocumentPosition(comment) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedComment) 
-PASS detachedPara1.firstChild.compareDocumentPosition(docfrag) 
-PASS detachedPara1.firstChild.compareDocumentPosition(doctype) 
-PASS detachedPara1.firstChild.compareDocumentPosition(foreignDoctype) 
-PASS detachedPara1.firstChild.compareDocumentPosition(paras[1]) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedPara2) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedPara1.firstChild.compareDocumentPosition(testDiv) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedXmlElement) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedPara1.firstChild.compareDocumentPosition(xmlTextNode) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedPara1.firstChild.compareDocumentPosition(xmlComment) 
-PASS detachedPara1.firstChild.compareDocumentPosition(foreignComment) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedForeignComment) 
-PASS detachedPara1.firstChild.compareDocumentPosition(detachedXmlComment) 
-PASS detachedPara1.firstChild.compareDocumentPosition(foreignDocfrag) 
-PASS detachedPara1.firstChild.compareDocumentPosition(xmlDocfrag) 
-PASS detachedPara1.firstChild.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedPara1.firstChild.contains(paras[0]) 
+PASS detachedPara1.firstChild.contains(paras[0].firstChild) 
+PASS detachedPara1.firstChild.contains(paras[1].firstChild) 
+PASS detachedPara1.firstChild.contains(foreignPara1) 
+PASS detachedPara1.firstChild.contains(foreignPara1.firstChild) 
+PASS detachedPara1.firstChild.contains(detachedPara1) 
+PASS detachedPara1.firstChild.contains(detachedPara1.firstChild) 
+PASS detachedPara1.firstChild.contains(document) 
+PASS detachedPara1.firstChild.contains(detachedDiv) 
+PASS detachedPara1.firstChild.contains(foreignDoc) 
+PASS detachedPara1.firstChild.contains(foreignPara2) 
+PASS detachedPara1.firstChild.contains(xmlDoc) 
+PASS detachedPara1.firstChild.contains(xmlElement) 
+PASS detachedPara1.firstChild.contains(detachedTextNode) 
+PASS detachedPara1.firstChild.contains(foreignTextNode) 
+PASS detachedPara1.firstChild.contains(processingInstruction) 
+PASS detachedPara1.firstChild.contains(detachedProcessingInstruction) 
+PASS detachedPara1.firstChild.contains(comment) 
+PASS detachedPara1.firstChild.contains(detachedComment) 
+PASS detachedPara1.firstChild.contains(docfrag) 
+PASS detachedPara1.firstChild.contains(doctype) 
+PASS detachedPara1.firstChild.contains(foreignDoctype) 
+PASS detachedPara1.firstChild.contains(paras[1]) 
+PASS detachedPara1.firstChild.contains(detachedPara2) 
+PASS detachedPara1.firstChild.contains(detachedPara2.firstChild) 
+PASS detachedPara1.firstChild.contains(testDiv) 
+PASS detachedPara1.firstChild.contains(detachedXmlElement) 
+PASS detachedPara1.firstChild.contains(detachedForeignTextNode) 
+PASS detachedPara1.firstChild.contains(xmlTextNode) 
+PASS detachedPara1.firstChild.contains(detachedXmlTextNode) 
+PASS detachedPara1.firstChild.contains(xmlComment) 
+PASS detachedPara1.firstChild.contains(foreignComment) 
+PASS detachedPara1.firstChild.contains(detachedForeignComment) 
+PASS detachedPara1.firstChild.contains(detachedXmlComment) 
+PASS detachedPara1.firstChild.contains(foreignDocfrag) 
+PASS detachedPara1.firstChild.contains(xmlDocfrag) 
+PASS detachedPara1.firstChild.contains(xmlDoctype) 
</ins><span class="cx"> PASS document.contains(null) 
</span><del>-PASS document.compareDocumentPosition(paras[0]) 
-PASS document.compareDocumentPosition(paras[0].firstChild) 
-PASS document.compareDocumentPosition(paras[1].firstChild) 
-PASS document.compareDocumentPosition(foreignPara1) 
-PASS document.compareDocumentPosition(foreignPara1.firstChild) 
-PASS document.compareDocumentPosition(detachedPara1) 
-PASS document.compareDocumentPosition(detachedPara1.firstChild) 
-PASS document.compareDocumentPosition(document) 
-PASS document.compareDocumentPosition(detachedDiv) 
-PASS document.compareDocumentPosition(foreignDoc) 
-PASS document.compareDocumentPosition(foreignPara2) 
-PASS document.compareDocumentPosition(xmlDoc) 
-PASS document.compareDocumentPosition(xmlElement) 
-PASS document.compareDocumentPosition(detachedTextNode) 
-PASS document.compareDocumentPosition(foreignTextNode) 
-PASS document.compareDocumentPosition(processingInstruction) 
-PASS document.compareDocumentPosition(detachedProcessingInstruction) 
-PASS document.compareDocumentPosition(comment) 
-PASS document.compareDocumentPosition(detachedComment) 
-PASS document.compareDocumentPosition(docfrag) 
-PASS document.compareDocumentPosition(doctype) 
-PASS document.compareDocumentPosition(foreignDoctype) 
-PASS document.compareDocumentPosition(paras[1]) 
-PASS document.compareDocumentPosition(detachedPara2) 
-PASS document.compareDocumentPosition(detachedPara2.firstChild) 
-PASS document.compareDocumentPosition(testDiv) 
-PASS document.compareDocumentPosition(detachedXmlElement) 
-PASS document.compareDocumentPosition(detachedForeignTextNode) 
-PASS document.compareDocumentPosition(xmlTextNode) 
-PASS document.compareDocumentPosition(detachedXmlTextNode) 
-PASS document.compareDocumentPosition(xmlComment) 
-PASS document.compareDocumentPosition(foreignComment) 
-PASS document.compareDocumentPosition(detachedForeignComment) 
-PASS document.compareDocumentPosition(detachedXmlComment) 
-PASS document.compareDocumentPosition(foreignDocfrag) 
-PASS document.compareDocumentPosition(xmlDocfrag) 
-PASS document.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS document.contains(paras[0]) 
+PASS document.contains(paras[0].firstChild) 
+PASS document.contains(paras[1].firstChild) 
+PASS document.contains(foreignPara1) 
+PASS document.contains(foreignPara1.firstChild) 
+PASS document.contains(detachedPara1) 
+PASS document.contains(detachedPara1.firstChild) 
+PASS document.contains(document) 
+PASS document.contains(detachedDiv) 
+PASS document.contains(foreignDoc) 
+PASS document.contains(foreignPara2) 
+PASS document.contains(xmlDoc) 
+PASS document.contains(xmlElement) 
+PASS document.contains(detachedTextNode) 
+PASS document.contains(foreignTextNode) 
+PASS document.contains(processingInstruction) 
+PASS document.contains(detachedProcessingInstruction) 
+PASS document.contains(comment) 
+PASS document.contains(detachedComment) 
+PASS document.contains(docfrag) 
+PASS document.contains(doctype) 
+PASS document.contains(foreignDoctype) 
+PASS document.contains(paras[1]) 
+PASS document.contains(detachedPara2) 
+PASS document.contains(detachedPara2.firstChild) 
+PASS document.contains(testDiv) 
+PASS document.contains(detachedXmlElement) 
+PASS document.contains(detachedForeignTextNode) 
+PASS document.contains(xmlTextNode) 
+PASS document.contains(detachedXmlTextNode) 
+PASS document.contains(xmlComment) 
+PASS document.contains(foreignComment) 
+PASS document.contains(detachedForeignComment) 
+PASS document.contains(detachedXmlComment) 
+PASS document.contains(foreignDocfrag) 
+PASS document.contains(xmlDocfrag) 
+PASS document.contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedDiv.contains(null) 
</span><del>-PASS detachedDiv.compareDocumentPosition(paras[0]) 
-PASS detachedDiv.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedDiv.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedDiv.compareDocumentPosition(foreignPara1) 
-PASS detachedDiv.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedDiv.compareDocumentPosition(detachedPara1) 
-PASS detachedDiv.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedDiv.compareDocumentPosition(document) 
-PASS detachedDiv.compareDocumentPosition(detachedDiv) 
-PASS detachedDiv.compareDocumentPosition(foreignDoc) 
-PASS detachedDiv.compareDocumentPosition(foreignPara2) 
-PASS detachedDiv.compareDocumentPosition(xmlDoc) 
-PASS detachedDiv.compareDocumentPosition(xmlElement) 
-PASS detachedDiv.compareDocumentPosition(detachedTextNode) 
-PASS detachedDiv.compareDocumentPosition(foreignTextNode) 
-PASS detachedDiv.compareDocumentPosition(processingInstruction) 
-PASS detachedDiv.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedDiv.compareDocumentPosition(comment) 
-PASS detachedDiv.compareDocumentPosition(detachedComment) 
-PASS detachedDiv.compareDocumentPosition(docfrag) 
-PASS detachedDiv.compareDocumentPosition(doctype) 
-PASS detachedDiv.compareDocumentPosition(foreignDoctype) 
-PASS detachedDiv.compareDocumentPosition(paras[1]) 
-PASS detachedDiv.compareDocumentPosition(detachedPara2) 
-PASS detachedDiv.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedDiv.compareDocumentPosition(testDiv) 
-PASS detachedDiv.compareDocumentPosition(detachedXmlElement) 
-PASS detachedDiv.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedDiv.compareDocumentPosition(xmlTextNode) 
-PASS detachedDiv.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedDiv.compareDocumentPosition(xmlComment) 
-PASS detachedDiv.compareDocumentPosition(foreignComment) 
-PASS detachedDiv.compareDocumentPosition(detachedForeignComment) 
-PASS detachedDiv.compareDocumentPosition(detachedXmlComment) 
-PASS detachedDiv.compareDocumentPosition(foreignDocfrag) 
-PASS detachedDiv.compareDocumentPosition(xmlDocfrag) 
-PASS detachedDiv.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedDiv.contains(paras[0]) 
+PASS detachedDiv.contains(paras[0].firstChild) 
+PASS detachedDiv.contains(paras[1].firstChild) 
+PASS detachedDiv.contains(foreignPara1) 
+PASS detachedDiv.contains(foreignPara1.firstChild) 
+PASS detachedDiv.contains(detachedPara1) 
+PASS detachedDiv.contains(detachedPara1.firstChild) 
+PASS detachedDiv.contains(document) 
+PASS detachedDiv.contains(detachedDiv) 
+PASS detachedDiv.contains(foreignDoc) 
+PASS detachedDiv.contains(foreignPara2) 
+PASS detachedDiv.contains(xmlDoc) 
+PASS detachedDiv.contains(xmlElement) 
+PASS detachedDiv.contains(detachedTextNode) 
+PASS detachedDiv.contains(foreignTextNode) 
+PASS detachedDiv.contains(processingInstruction) 
+PASS detachedDiv.contains(detachedProcessingInstruction) 
+PASS detachedDiv.contains(comment) 
+PASS detachedDiv.contains(detachedComment) 
+PASS detachedDiv.contains(docfrag) 
+PASS detachedDiv.contains(doctype) 
+PASS detachedDiv.contains(foreignDoctype) 
+PASS detachedDiv.contains(paras[1]) 
+PASS detachedDiv.contains(detachedPara2) 
+PASS detachedDiv.contains(detachedPara2.firstChild) 
+PASS detachedDiv.contains(testDiv) 
+PASS detachedDiv.contains(detachedXmlElement) 
+PASS detachedDiv.contains(detachedForeignTextNode) 
+PASS detachedDiv.contains(xmlTextNode) 
+PASS detachedDiv.contains(detachedXmlTextNode) 
+PASS detachedDiv.contains(xmlComment) 
+PASS detachedDiv.contains(foreignComment) 
+PASS detachedDiv.contains(detachedForeignComment) 
+PASS detachedDiv.contains(detachedXmlComment) 
+PASS detachedDiv.contains(foreignDocfrag) 
+PASS detachedDiv.contains(xmlDocfrag) 
+PASS detachedDiv.contains(xmlDoctype) 
</ins><span class="cx"> PASS foreignDoc.contains(null) 
</span><del>-PASS foreignDoc.compareDocumentPosition(paras[0]) 
-PASS foreignDoc.compareDocumentPosition(paras[0].firstChild) 
-PASS foreignDoc.compareDocumentPosition(paras[1].firstChild) 
-PASS foreignDoc.compareDocumentPosition(foreignPara1) 
-PASS foreignDoc.compareDocumentPosition(foreignPara1.firstChild) 
-PASS foreignDoc.compareDocumentPosition(detachedPara1) 
-PASS foreignDoc.compareDocumentPosition(detachedPara1.firstChild) 
-PASS foreignDoc.compareDocumentPosition(document) 
-PASS foreignDoc.compareDocumentPosition(detachedDiv) 
-PASS foreignDoc.compareDocumentPosition(foreignDoc) 
-PASS foreignDoc.compareDocumentPosition(foreignPara2) 
-PASS foreignDoc.compareDocumentPosition(xmlDoc) 
-PASS foreignDoc.compareDocumentPosition(xmlElement) 
-PASS foreignDoc.compareDocumentPosition(detachedTextNode) 
-PASS foreignDoc.compareDocumentPosition(foreignTextNode) 
-PASS foreignDoc.compareDocumentPosition(processingInstruction) 
-PASS foreignDoc.compareDocumentPosition(detachedProcessingInstruction) 
-PASS foreignDoc.compareDocumentPosition(comment) 
-PASS foreignDoc.compareDocumentPosition(detachedComment) 
-PASS foreignDoc.compareDocumentPosition(docfrag) 
-PASS foreignDoc.compareDocumentPosition(doctype) 
-PASS foreignDoc.compareDocumentPosition(foreignDoctype) 
-PASS foreignDoc.compareDocumentPosition(paras[1]) 
-PASS foreignDoc.compareDocumentPosition(detachedPara2) 
-PASS foreignDoc.compareDocumentPosition(detachedPara2.firstChild) 
-PASS foreignDoc.compareDocumentPosition(testDiv) 
-PASS foreignDoc.compareDocumentPosition(detachedXmlElement) 
-PASS foreignDoc.compareDocumentPosition(detachedForeignTextNode) 
-PASS foreignDoc.compareDocumentPosition(xmlTextNode) 
-PASS foreignDoc.compareDocumentPosition(detachedXmlTextNode) 
-PASS foreignDoc.compareDocumentPosition(xmlComment) 
-PASS foreignDoc.compareDocumentPosition(foreignComment) 
-PASS foreignDoc.compareDocumentPosition(detachedForeignComment) 
-PASS foreignDoc.compareDocumentPosition(detachedXmlComment) 
-PASS foreignDoc.compareDocumentPosition(foreignDocfrag) 
-PASS foreignDoc.compareDocumentPosition(xmlDocfrag) 
-PASS foreignDoc.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS foreignDoc.contains(paras[0]) 
+PASS foreignDoc.contains(paras[0].firstChild) 
+PASS foreignDoc.contains(paras[1].firstChild) 
+PASS foreignDoc.contains(foreignPara1) 
+PASS foreignDoc.contains(foreignPara1.firstChild) 
+PASS foreignDoc.contains(detachedPara1) 
+PASS foreignDoc.contains(detachedPara1.firstChild) 
+PASS foreignDoc.contains(document) 
+PASS foreignDoc.contains(detachedDiv) 
+PASS foreignDoc.contains(foreignDoc) 
+PASS foreignDoc.contains(foreignPara2) 
+PASS foreignDoc.contains(xmlDoc) 
+PASS foreignDoc.contains(xmlElement) 
+PASS foreignDoc.contains(detachedTextNode) 
+PASS foreignDoc.contains(foreignTextNode) 
+PASS foreignDoc.contains(processingInstruction) 
+PASS foreignDoc.contains(detachedProcessingInstruction) 
+PASS foreignDoc.contains(comment) 
+PASS foreignDoc.contains(detachedComment) 
+PASS foreignDoc.contains(docfrag) 
+PASS foreignDoc.contains(doctype) 
+PASS foreignDoc.contains(foreignDoctype) 
+PASS foreignDoc.contains(paras[1]) 
+PASS foreignDoc.contains(detachedPara2) 
+PASS foreignDoc.contains(detachedPara2.firstChild) 
+PASS foreignDoc.contains(testDiv) 
+PASS foreignDoc.contains(detachedXmlElement) 
+PASS foreignDoc.contains(detachedForeignTextNode) 
+PASS foreignDoc.contains(xmlTextNode) 
+PASS foreignDoc.contains(detachedXmlTextNode) 
+PASS foreignDoc.contains(xmlComment) 
+PASS foreignDoc.contains(foreignComment) 
+PASS foreignDoc.contains(detachedForeignComment) 
+PASS foreignDoc.contains(detachedXmlComment) 
+PASS foreignDoc.contains(foreignDocfrag) 
+PASS foreignDoc.contains(xmlDocfrag) 
+PASS foreignDoc.contains(xmlDoctype) 
</ins><span class="cx"> PASS foreignPara2.contains(null) 
</span><del>-PASS foreignPara2.compareDocumentPosition(paras[0]) 
-PASS foreignPara2.compareDocumentPosition(paras[0].firstChild) 
-PASS foreignPara2.compareDocumentPosition(paras[1].firstChild) 
-PASS foreignPara2.compareDocumentPosition(foreignPara1) 
-PASS foreignPara2.compareDocumentPosition(foreignPara1.firstChild) 
-PASS foreignPara2.compareDocumentPosition(detachedPara1) 
-PASS foreignPara2.compareDocumentPosition(detachedPara1.firstChild) 
-PASS foreignPara2.compareDocumentPosition(document) 
-PASS foreignPara2.compareDocumentPosition(detachedDiv) 
-PASS foreignPara2.compareDocumentPosition(foreignDoc) 
-PASS foreignPara2.compareDocumentPosition(foreignPara2) 
-PASS foreignPara2.compareDocumentPosition(xmlDoc) 
-PASS foreignPara2.compareDocumentPosition(xmlElement) 
-PASS foreignPara2.compareDocumentPosition(detachedTextNode) 
-PASS foreignPara2.compareDocumentPosition(foreignTextNode) 
-PASS foreignPara2.compareDocumentPosition(processingInstruction) 
-PASS foreignPara2.compareDocumentPosition(detachedProcessingInstruction) 
-PASS foreignPara2.compareDocumentPosition(comment) 
-PASS foreignPara2.compareDocumentPosition(detachedComment) 
-PASS foreignPara2.compareDocumentPosition(docfrag) 
-PASS foreignPara2.compareDocumentPosition(doctype) 
-PASS foreignPara2.compareDocumentPosition(foreignDoctype) 
-PASS foreignPara2.compareDocumentPosition(paras[1]) 
-PASS foreignPara2.compareDocumentPosition(detachedPara2) 
-PASS foreignPara2.compareDocumentPosition(detachedPara2.firstChild) 
-PASS foreignPara2.compareDocumentPosition(testDiv) 
-PASS foreignPara2.compareDocumentPosition(detachedXmlElement) 
-PASS foreignPara2.compareDocumentPosition(detachedForeignTextNode) 
-PASS foreignPara2.compareDocumentPosition(xmlTextNode) 
-PASS foreignPara2.compareDocumentPosition(detachedXmlTextNode) 
-PASS foreignPara2.compareDocumentPosition(xmlComment) 
-PASS foreignPara2.compareDocumentPosition(foreignComment) 
-PASS foreignPara2.compareDocumentPosition(detachedForeignComment) 
-PASS foreignPara2.compareDocumentPosition(detachedXmlComment) 
-PASS foreignPara2.compareDocumentPosition(foreignDocfrag) 
-PASS foreignPara2.compareDocumentPosition(xmlDocfrag) 
-PASS foreignPara2.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS foreignPara2.contains(paras[0]) 
+PASS foreignPara2.contains(paras[0].firstChild) 
+PASS foreignPara2.contains(paras[1].firstChild) 
+PASS foreignPara2.contains(foreignPara1) 
+PASS foreignPara2.contains(foreignPara1.firstChild) 
+PASS foreignPara2.contains(detachedPara1) 
+PASS foreignPara2.contains(detachedPara1.firstChild) 
+PASS foreignPara2.contains(document) 
+PASS foreignPara2.contains(detachedDiv) 
+PASS foreignPara2.contains(foreignDoc) 
+PASS foreignPara2.contains(foreignPara2) 
+PASS foreignPara2.contains(xmlDoc) 
+PASS foreignPara2.contains(xmlElement) 
+PASS foreignPara2.contains(detachedTextNode) 
+PASS foreignPara2.contains(foreignTextNode) 
+PASS foreignPara2.contains(processingInstruction) 
+PASS foreignPara2.contains(detachedProcessingInstruction) 
+PASS foreignPara2.contains(comment) 
+PASS foreignPara2.contains(detachedComment) 
+PASS foreignPara2.contains(docfrag) 
+PASS foreignPara2.contains(doctype) 
+PASS foreignPara2.contains(foreignDoctype) 
+PASS foreignPara2.contains(paras[1]) 
+PASS foreignPara2.contains(detachedPara2) 
+PASS foreignPara2.contains(detachedPara2.firstChild) 
+PASS foreignPara2.contains(testDiv) 
+PASS foreignPara2.contains(detachedXmlElement) 
+PASS foreignPara2.contains(detachedForeignTextNode) 
+PASS foreignPara2.contains(xmlTextNode) 
+PASS foreignPara2.contains(detachedXmlTextNode) 
+PASS foreignPara2.contains(xmlComment) 
+PASS foreignPara2.contains(foreignComment) 
+PASS foreignPara2.contains(detachedForeignComment) 
+PASS foreignPara2.contains(detachedXmlComment) 
+PASS foreignPara2.contains(foreignDocfrag) 
+PASS foreignPara2.contains(xmlDocfrag) 
+PASS foreignPara2.contains(xmlDoctype) 
</ins><span class="cx"> PASS xmlDoc.contains(null) 
</span><del>-PASS xmlDoc.compareDocumentPosition(paras[0]) 
-PASS xmlDoc.compareDocumentPosition(paras[0].firstChild) 
-PASS xmlDoc.compareDocumentPosition(paras[1].firstChild) 
-PASS xmlDoc.compareDocumentPosition(foreignPara1) 
-PASS xmlDoc.compareDocumentPosition(foreignPara1.firstChild) 
-PASS xmlDoc.compareDocumentPosition(detachedPara1) 
-PASS xmlDoc.compareDocumentPosition(detachedPara1.firstChild) 
-PASS xmlDoc.compareDocumentPosition(document) 
-PASS xmlDoc.compareDocumentPosition(detachedDiv) 
-PASS xmlDoc.compareDocumentPosition(foreignDoc) 
-PASS xmlDoc.compareDocumentPosition(foreignPara2) 
-PASS xmlDoc.compareDocumentPosition(xmlDoc) 
-PASS xmlDoc.compareDocumentPosition(xmlElement) 
-PASS xmlDoc.compareDocumentPosition(detachedTextNode) 
-PASS xmlDoc.compareDocumentPosition(foreignTextNode) 
-PASS xmlDoc.compareDocumentPosition(processingInstruction) 
-PASS xmlDoc.compareDocumentPosition(detachedProcessingInstruction) 
-PASS xmlDoc.compareDocumentPosition(comment) 
-PASS xmlDoc.compareDocumentPosition(detachedComment) 
-PASS xmlDoc.compareDocumentPosition(docfrag) 
-PASS xmlDoc.compareDocumentPosition(doctype) 
-PASS xmlDoc.compareDocumentPosition(foreignDoctype) 
-PASS xmlDoc.compareDocumentPosition(paras[1]) 
-PASS xmlDoc.compareDocumentPosition(detachedPara2) 
-PASS xmlDoc.compareDocumentPosition(detachedPara2.firstChild) 
-PASS xmlDoc.compareDocumentPosition(testDiv) 
-PASS xmlDoc.compareDocumentPosition(detachedXmlElement) 
-PASS xmlDoc.compareDocumentPosition(detachedForeignTextNode) 
-PASS xmlDoc.compareDocumentPosition(xmlTextNode) 
-PASS xmlDoc.compareDocumentPosition(detachedXmlTextNode) 
-PASS xmlDoc.compareDocumentPosition(xmlComment) 
-PASS xmlDoc.compareDocumentPosition(foreignComment) 
-PASS xmlDoc.compareDocumentPosition(detachedForeignComment) 
-PASS xmlDoc.compareDocumentPosition(detachedXmlComment) 
-PASS xmlDoc.compareDocumentPosition(foreignDocfrag) 
-PASS xmlDoc.compareDocumentPosition(xmlDocfrag) 
-PASS xmlDoc.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS xmlDoc.contains(paras[0]) 
+PASS xmlDoc.contains(paras[0].firstChild) 
+PASS xmlDoc.contains(paras[1].firstChild) 
+PASS xmlDoc.contains(foreignPara1) 
+PASS xmlDoc.contains(foreignPara1.firstChild) 
+PASS xmlDoc.contains(detachedPara1) 
+PASS xmlDoc.contains(detachedPara1.firstChild) 
+PASS xmlDoc.contains(document) 
+PASS xmlDoc.contains(detachedDiv) 
+PASS xmlDoc.contains(foreignDoc) 
+PASS xmlDoc.contains(foreignPara2) 
+PASS xmlDoc.contains(xmlDoc) 
+PASS xmlDoc.contains(xmlElement) 
+PASS xmlDoc.contains(detachedTextNode) 
+PASS xmlDoc.contains(foreignTextNode) 
+PASS xmlDoc.contains(processingInstruction) 
+PASS xmlDoc.contains(detachedProcessingInstruction) 
+PASS xmlDoc.contains(comment) 
+PASS xmlDoc.contains(detachedComment) 
+PASS xmlDoc.contains(docfrag) 
+PASS xmlDoc.contains(doctype) 
+PASS xmlDoc.contains(foreignDoctype) 
+PASS xmlDoc.contains(paras[1]) 
+PASS xmlDoc.contains(detachedPara2) 
+PASS xmlDoc.contains(detachedPara2.firstChild) 
+PASS xmlDoc.contains(testDiv) 
+PASS xmlDoc.contains(detachedXmlElement) 
+PASS xmlDoc.contains(detachedForeignTextNode) 
+PASS xmlDoc.contains(xmlTextNode) 
+PASS xmlDoc.contains(detachedXmlTextNode) 
+PASS xmlDoc.contains(xmlComment) 
+PASS xmlDoc.contains(foreignComment) 
+PASS xmlDoc.contains(detachedForeignComment) 
+PASS xmlDoc.contains(detachedXmlComment) 
+PASS xmlDoc.contains(foreignDocfrag) 
+PASS xmlDoc.contains(xmlDocfrag) 
+PASS xmlDoc.contains(xmlDoctype) 
</ins><span class="cx"> PASS xmlElement.contains(null) 
</span><del>-PASS xmlElement.compareDocumentPosition(paras[0]) 
-PASS xmlElement.compareDocumentPosition(paras[0].firstChild) 
-PASS xmlElement.compareDocumentPosition(paras[1].firstChild) 
-PASS xmlElement.compareDocumentPosition(foreignPara1) 
-PASS xmlElement.compareDocumentPosition(foreignPara1.firstChild) 
-PASS xmlElement.compareDocumentPosition(detachedPara1) 
-PASS xmlElement.compareDocumentPosition(detachedPara1.firstChild) 
-PASS xmlElement.compareDocumentPosition(document) 
-PASS xmlElement.compareDocumentPosition(detachedDiv) 
-PASS xmlElement.compareDocumentPosition(foreignDoc) 
-PASS xmlElement.compareDocumentPosition(foreignPara2) 
-PASS xmlElement.compareDocumentPosition(xmlDoc) 
-PASS xmlElement.compareDocumentPosition(xmlElement) 
-PASS xmlElement.compareDocumentPosition(detachedTextNode) 
-PASS xmlElement.compareDocumentPosition(foreignTextNode) 
-PASS xmlElement.compareDocumentPosition(processingInstruction) 
-PASS xmlElement.compareDocumentPosition(detachedProcessingInstruction) 
-PASS xmlElement.compareDocumentPosition(comment) 
-PASS xmlElement.compareDocumentPosition(detachedComment) 
-PASS xmlElement.compareDocumentPosition(docfrag) 
-PASS xmlElement.compareDocumentPosition(doctype) 
-PASS xmlElement.compareDocumentPosition(foreignDoctype) 
-PASS xmlElement.compareDocumentPosition(paras[1]) 
-PASS xmlElement.compareDocumentPosition(detachedPara2) 
-PASS xmlElement.compareDocumentPosition(detachedPara2.firstChild) 
-PASS xmlElement.compareDocumentPosition(testDiv) 
-PASS xmlElement.compareDocumentPosition(detachedXmlElement) 
-PASS xmlElement.compareDocumentPosition(detachedForeignTextNode) 
-PASS xmlElement.compareDocumentPosition(xmlTextNode) 
-PASS xmlElement.compareDocumentPosition(detachedXmlTextNode) 
-PASS xmlElement.compareDocumentPosition(xmlComment) 
-PASS xmlElement.compareDocumentPosition(foreignComment) 
-PASS xmlElement.compareDocumentPosition(detachedForeignComment) 
-PASS xmlElement.compareDocumentPosition(detachedXmlComment) 
-PASS xmlElement.compareDocumentPosition(foreignDocfrag) 
-PASS xmlElement.compareDocumentPosition(xmlDocfrag) 
-PASS xmlElement.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS xmlElement.contains(paras[0]) 
+PASS xmlElement.contains(paras[0].firstChild) 
+PASS xmlElement.contains(paras[1].firstChild) 
+PASS xmlElement.contains(foreignPara1) 
+PASS xmlElement.contains(foreignPara1.firstChild) 
+PASS xmlElement.contains(detachedPara1) 
+PASS xmlElement.contains(detachedPara1.firstChild) 
+PASS xmlElement.contains(document) 
+PASS xmlElement.contains(detachedDiv) 
+PASS xmlElement.contains(foreignDoc) 
+PASS xmlElement.contains(foreignPara2) 
+PASS xmlElement.contains(xmlDoc) 
+PASS xmlElement.contains(xmlElement) 
+PASS xmlElement.contains(detachedTextNode) 
+PASS xmlElement.contains(foreignTextNode) 
+PASS xmlElement.contains(processingInstruction) 
+PASS xmlElement.contains(detachedProcessingInstruction) 
+PASS xmlElement.contains(comment) 
+PASS xmlElement.contains(detachedComment) 
+PASS xmlElement.contains(docfrag) 
+PASS xmlElement.contains(doctype) 
+PASS xmlElement.contains(foreignDoctype) 
+PASS xmlElement.contains(paras[1]) 
+PASS xmlElement.contains(detachedPara2) 
+PASS xmlElement.contains(detachedPara2.firstChild) 
+PASS xmlElement.contains(testDiv) 
+PASS xmlElement.contains(detachedXmlElement) 
+PASS xmlElement.contains(detachedForeignTextNode) 
+PASS xmlElement.contains(xmlTextNode) 
+PASS xmlElement.contains(detachedXmlTextNode) 
+PASS xmlElement.contains(xmlComment) 
+PASS xmlElement.contains(foreignComment) 
+PASS xmlElement.contains(detachedForeignComment) 
+PASS xmlElement.contains(detachedXmlComment) 
+PASS xmlElement.contains(foreignDocfrag) 
+PASS xmlElement.contains(xmlDocfrag) 
+PASS xmlElement.contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedTextNode.contains(null) 
</span><del>-PASS detachedTextNode.compareDocumentPosition(paras[0]) 
-PASS detachedTextNode.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedTextNode.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedTextNode.compareDocumentPosition(foreignPara1) 
-PASS detachedTextNode.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedTextNode.compareDocumentPosition(detachedPara1) 
-PASS detachedTextNode.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedTextNode.compareDocumentPosition(document) 
-PASS detachedTextNode.compareDocumentPosition(detachedDiv) 
-PASS detachedTextNode.compareDocumentPosition(foreignDoc) 
-PASS detachedTextNode.compareDocumentPosition(foreignPara2) 
-PASS detachedTextNode.compareDocumentPosition(xmlDoc) 
-PASS detachedTextNode.compareDocumentPosition(xmlElement) 
-PASS detachedTextNode.compareDocumentPosition(detachedTextNode) 
-PASS detachedTextNode.compareDocumentPosition(foreignTextNode) 
-PASS detachedTextNode.compareDocumentPosition(processingInstruction) 
-PASS detachedTextNode.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedTextNode.compareDocumentPosition(comment) 
-PASS detachedTextNode.compareDocumentPosition(detachedComment) 
-PASS detachedTextNode.compareDocumentPosition(docfrag) 
-PASS detachedTextNode.compareDocumentPosition(doctype) 
-PASS detachedTextNode.compareDocumentPosition(foreignDoctype) 
-PASS detachedTextNode.compareDocumentPosition(paras[1]) 
-PASS detachedTextNode.compareDocumentPosition(detachedPara2) 
-PASS detachedTextNode.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedTextNode.compareDocumentPosition(testDiv) 
-PASS detachedTextNode.compareDocumentPosition(detachedXmlElement) 
-PASS detachedTextNode.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedTextNode.compareDocumentPosition(xmlTextNode) 
-PASS detachedTextNode.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedTextNode.compareDocumentPosition(xmlComment) 
-PASS detachedTextNode.compareDocumentPosition(foreignComment) 
-PASS detachedTextNode.compareDocumentPosition(detachedForeignComment) 
-PASS detachedTextNode.compareDocumentPosition(detachedXmlComment) 
-PASS detachedTextNode.compareDocumentPosition(foreignDocfrag) 
-PASS detachedTextNode.compareDocumentPosition(xmlDocfrag) 
-PASS detachedTextNode.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedTextNode.contains(paras[0]) 
+PASS detachedTextNode.contains(paras[0].firstChild) 
+PASS detachedTextNode.contains(paras[1].firstChild) 
+PASS detachedTextNode.contains(foreignPara1) 
+PASS detachedTextNode.contains(foreignPara1.firstChild) 
+PASS detachedTextNode.contains(detachedPara1) 
+PASS detachedTextNode.contains(detachedPara1.firstChild) 
+PASS detachedTextNode.contains(document) 
+PASS detachedTextNode.contains(detachedDiv) 
+PASS detachedTextNode.contains(foreignDoc) 
+PASS detachedTextNode.contains(foreignPara2) 
+PASS detachedTextNode.contains(xmlDoc) 
+PASS detachedTextNode.contains(xmlElement) 
+PASS detachedTextNode.contains(detachedTextNode) 
+PASS detachedTextNode.contains(foreignTextNode) 
+PASS detachedTextNode.contains(processingInstruction) 
+PASS detachedTextNode.contains(detachedProcessingInstruction) 
+PASS detachedTextNode.contains(comment) 
+PASS detachedTextNode.contains(detachedComment) 
+PASS detachedTextNode.contains(docfrag) 
+PASS detachedTextNode.contains(doctype) 
+PASS detachedTextNode.contains(foreignDoctype) 
+PASS detachedTextNode.contains(paras[1]) 
+PASS detachedTextNode.contains(detachedPara2) 
+PASS detachedTextNode.contains(detachedPara2.firstChild) 
+PASS detachedTextNode.contains(testDiv) 
+PASS detachedTextNode.contains(detachedXmlElement) 
+PASS detachedTextNode.contains(detachedForeignTextNode) 
+PASS detachedTextNode.contains(xmlTextNode) 
+PASS detachedTextNode.contains(detachedXmlTextNode) 
+PASS detachedTextNode.contains(xmlComment) 
+PASS detachedTextNode.contains(foreignComment) 
+PASS detachedTextNode.contains(detachedForeignComment) 
+PASS detachedTextNode.contains(detachedXmlComment) 
+PASS detachedTextNode.contains(foreignDocfrag) 
+PASS detachedTextNode.contains(xmlDocfrag) 
+PASS detachedTextNode.contains(xmlDoctype) 
</ins><span class="cx"> PASS foreignTextNode.contains(null) 
</span><del>-PASS foreignTextNode.compareDocumentPosition(paras[0]) 
-PASS foreignTextNode.compareDocumentPosition(paras[0].firstChild) 
-PASS foreignTextNode.compareDocumentPosition(paras[1].firstChild) 
-PASS foreignTextNode.compareDocumentPosition(foreignPara1) 
-PASS foreignTextNode.compareDocumentPosition(foreignPara1.firstChild) 
-PASS foreignTextNode.compareDocumentPosition(detachedPara1) 
-PASS foreignTextNode.compareDocumentPosition(detachedPara1.firstChild) 
-PASS foreignTextNode.compareDocumentPosition(document) 
-PASS foreignTextNode.compareDocumentPosition(detachedDiv) 
-PASS foreignTextNode.compareDocumentPosition(foreignDoc) 
-PASS foreignTextNode.compareDocumentPosition(foreignPara2) 
-PASS foreignTextNode.compareDocumentPosition(xmlDoc) 
-PASS foreignTextNode.compareDocumentPosition(xmlElement) 
-PASS foreignTextNode.compareDocumentPosition(detachedTextNode) 
-PASS foreignTextNode.compareDocumentPosition(foreignTextNode) 
-PASS foreignTextNode.compareDocumentPosition(processingInstruction) 
-PASS foreignTextNode.compareDocumentPosition(detachedProcessingInstruction) 
-PASS foreignTextNode.compareDocumentPosition(comment) 
-PASS foreignTextNode.compareDocumentPosition(detachedComment) 
-PASS foreignTextNode.compareDocumentPosition(docfrag) 
-PASS foreignTextNode.compareDocumentPosition(doctype) 
-PASS foreignTextNode.compareDocumentPosition(foreignDoctype) 
-PASS foreignTextNode.compareDocumentPosition(paras[1]) 
-PASS foreignTextNode.compareDocumentPosition(detachedPara2) 
-PASS foreignTextNode.compareDocumentPosition(detachedPara2.firstChild) 
-PASS foreignTextNode.compareDocumentPosition(testDiv) 
-PASS foreignTextNode.compareDocumentPosition(detachedXmlElement) 
-PASS foreignTextNode.compareDocumentPosition(detachedForeignTextNode) 
-PASS foreignTextNode.compareDocumentPosition(xmlTextNode) 
-PASS foreignTextNode.compareDocumentPosition(detachedXmlTextNode) 
-PASS foreignTextNode.compareDocumentPosition(xmlComment) 
-PASS foreignTextNode.compareDocumentPosition(foreignComment) 
-PASS foreignTextNode.compareDocumentPosition(detachedForeignComment) 
-PASS foreignTextNode.compareDocumentPosition(detachedXmlComment) 
-PASS foreignTextNode.compareDocumentPosition(foreignDocfrag) 
-PASS foreignTextNode.compareDocumentPosition(xmlDocfrag) 
-PASS foreignTextNode.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS foreignTextNode.contains(paras[0]) 
+PASS foreignTextNode.contains(paras[0].firstChild) 
+PASS foreignTextNode.contains(paras[1].firstChild) 
+PASS foreignTextNode.contains(foreignPara1) 
+PASS foreignTextNode.contains(foreignPara1.firstChild) 
+PASS foreignTextNode.contains(detachedPara1) 
+PASS foreignTextNode.contains(detachedPara1.firstChild) 
+PASS foreignTextNode.contains(document) 
+PASS foreignTextNode.contains(detachedDiv) 
+PASS foreignTextNode.contains(foreignDoc) 
+PASS foreignTextNode.contains(foreignPara2) 
+PASS foreignTextNode.contains(xmlDoc) 
+PASS foreignTextNode.contains(xmlElement) 
+PASS foreignTextNode.contains(detachedTextNode) 
+PASS foreignTextNode.contains(foreignTextNode) 
+PASS foreignTextNode.contains(processingInstruction) 
+PASS foreignTextNode.contains(detachedProcessingInstruction) 
+PASS foreignTextNode.contains(comment) 
+PASS foreignTextNode.contains(detachedComment) 
+PASS foreignTextNode.contains(docfrag) 
+PASS foreignTextNode.contains(doctype) 
+PASS foreignTextNode.contains(foreignDoctype) 
+PASS foreignTextNode.contains(paras[1]) 
+PASS foreignTextNode.contains(detachedPara2) 
+PASS foreignTextNode.contains(detachedPara2.firstChild) 
+PASS foreignTextNode.contains(testDiv) 
+PASS foreignTextNode.contains(detachedXmlElement) 
+PASS foreignTextNode.contains(detachedForeignTextNode) 
+PASS foreignTextNode.contains(xmlTextNode) 
+PASS foreignTextNode.contains(detachedXmlTextNode) 
+PASS foreignTextNode.contains(xmlComment) 
+PASS foreignTextNode.contains(foreignComment) 
+PASS foreignTextNode.contains(detachedForeignComment) 
+PASS foreignTextNode.contains(detachedXmlComment) 
+PASS foreignTextNode.contains(foreignDocfrag) 
+PASS foreignTextNode.contains(xmlDocfrag) 
+PASS foreignTextNode.contains(xmlDoctype) 
</ins><span class="cx"> PASS processingInstruction.contains(null) 
</span><del>-PASS processingInstruction.compareDocumentPosition(paras[0]) 
-PASS processingInstruction.compareDocumentPosition(paras[0].firstChild) 
-PASS processingInstruction.compareDocumentPosition(paras[1].firstChild) 
-PASS processingInstruction.compareDocumentPosition(foreignPara1) 
-PASS processingInstruction.compareDocumentPosition(foreignPara1.firstChild) 
-PASS processingInstruction.compareDocumentPosition(detachedPara1) 
-PASS processingInstruction.compareDocumentPosition(detachedPara1.firstChild) 
-PASS processingInstruction.compareDocumentPosition(document) 
-PASS processingInstruction.compareDocumentPosition(detachedDiv) 
-PASS processingInstruction.compareDocumentPosition(foreignDoc) 
-PASS processingInstruction.compareDocumentPosition(foreignPara2) 
-PASS processingInstruction.compareDocumentPosition(xmlDoc) 
-PASS processingInstruction.compareDocumentPosition(xmlElement) 
-PASS processingInstruction.compareDocumentPosition(detachedTextNode) 
-PASS processingInstruction.compareDocumentPosition(foreignTextNode) 
-PASS processingInstruction.compareDocumentPosition(processingInstruction) 
-PASS processingInstruction.compareDocumentPosition(detachedProcessingInstruction) 
-PASS processingInstruction.compareDocumentPosition(comment) 
-PASS processingInstruction.compareDocumentPosition(detachedComment) 
-PASS processingInstruction.compareDocumentPosition(docfrag) 
-PASS processingInstruction.compareDocumentPosition(doctype) 
-PASS processingInstruction.compareDocumentPosition(foreignDoctype) 
-PASS processingInstruction.compareDocumentPosition(paras[1]) 
-PASS processingInstruction.compareDocumentPosition(detachedPara2) 
-PASS processingInstruction.compareDocumentPosition(detachedPara2.firstChild) 
-PASS processingInstruction.compareDocumentPosition(testDiv) 
-PASS processingInstruction.compareDocumentPosition(detachedXmlElement) 
-PASS processingInstruction.compareDocumentPosition(detachedForeignTextNode) 
-PASS processingInstruction.compareDocumentPosition(xmlTextNode) 
-PASS processingInstruction.compareDocumentPosition(detachedXmlTextNode) 
-PASS processingInstruction.compareDocumentPosition(xmlComment) 
-PASS processingInstruction.compareDocumentPosition(foreignComment) 
-PASS processingInstruction.compareDocumentPosition(detachedForeignComment) 
-PASS processingInstruction.compareDocumentPosition(detachedXmlComment) 
-PASS processingInstruction.compareDocumentPosition(foreignDocfrag) 
-PASS processingInstruction.compareDocumentPosition(xmlDocfrag) 
-PASS processingInstruction.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS processingInstruction.contains(paras[0]) 
+PASS processingInstruction.contains(paras[0].firstChild) 
+PASS processingInstruction.contains(paras[1].firstChild) 
+PASS processingInstruction.contains(foreignPara1) 
+PASS processingInstruction.contains(foreignPara1.firstChild) 
+PASS processingInstruction.contains(detachedPara1) 
+PASS processingInstruction.contains(detachedPara1.firstChild) 
+PASS processingInstruction.contains(document) 
+PASS processingInstruction.contains(detachedDiv) 
+PASS processingInstruction.contains(foreignDoc) 
+PASS processingInstruction.contains(foreignPara2) 
+PASS processingInstruction.contains(xmlDoc) 
+PASS processingInstruction.contains(xmlElement) 
+PASS processingInstruction.contains(detachedTextNode) 
+PASS processingInstruction.contains(foreignTextNode) 
+PASS processingInstruction.contains(processingInstruction) 
+PASS processingInstruction.contains(detachedProcessingInstruction) 
+PASS processingInstruction.contains(comment) 
+PASS processingInstruction.contains(detachedComment) 
+PASS processingInstruction.contains(docfrag) 
+PASS processingInstruction.contains(doctype) 
+PASS processingInstruction.contains(foreignDoctype) 
+PASS processingInstruction.contains(paras[1]) 
+PASS processingInstruction.contains(detachedPara2) 
+PASS processingInstruction.contains(detachedPara2.firstChild) 
+PASS processingInstruction.contains(testDiv) 
+PASS processingInstruction.contains(detachedXmlElement) 
+PASS processingInstruction.contains(detachedForeignTextNode) 
+PASS processingInstruction.contains(xmlTextNode) 
+PASS processingInstruction.contains(detachedXmlTextNode) 
+PASS processingInstruction.contains(xmlComment) 
+PASS processingInstruction.contains(foreignComment) 
+PASS processingInstruction.contains(detachedForeignComment) 
+PASS processingInstruction.contains(detachedXmlComment) 
+PASS processingInstruction.contains(foreignDocfrag) 
+PASS processingInstruction.contains(xmlDocfrag) 
+PASS processingInstruction.contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedProcessingInstruction.contains(null) 
</span><del>-PASS detachedProcessingInstruction.compareDocumentPosition(paras[0]) 
-PASS detachedProcessingInstruction.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedProcessingInstruction.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedProcessingInstruction.compareDocumentPosition(foreignPara1) 
-PASS detachedProcessingInstruction.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedPara1) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedProcessingInstruction.compareDocumentPosition(document) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedDiv) 
-PASS detachedProcessingInstruction.compareDocumentPosition(foreignDoc) 
-PASS detachedProcessingInstruction.compareDocumentPosition(foreignPara2) 
-PASS detachedProcessingInstruction.compareDocumentPosition(xmlDoc) 
-PASS detachedProcessingInstruction.compareDocumentPosition(xmlElement) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedTextNode) 
-PASS detachedProcessingInstruction.compareDocumentPosition(foreignTextNode) 
-PASS detachedProcessingInstruction.compareDocumentPosition(processingInstruction) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedProcessingInstruction.compareDocumentPosition(comment) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedComment) 
-PASS detachedProcessingInstruction.compareDocumentPosition(docfrag) 
-PASS detachedProcessingInstruction.compareDocumentPosition(doctype) 
-PASS detachedProcessingInstruction.compareDocumentPosition(foreignDoctype) 
-PASS detachedProcessingInstruction.compareDocumentPosition(paras[1]) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedPara2) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedProcessingInstruction.compareDocumentPosition(testDiv) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedXmlElement) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedProcessingInstruction.compareDocumentPosition(xmlTextNode) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedProcessingInstruction.compareDocumentPosition(xmlComment) 
-PASS detachedProcessingInstruction.compareDocumentPosition(foreignComment) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedForeignComment) 
-PASS detachedProcessingInstruction.compareDocumentPosition(detachedXmlComment) 
-PASS detachedProcessingInstruction.compareDocumentPosition(foreignDocfrag) 
-PASS detachedProcessingInstruction.compareDocumentPosition(xmlDocfrag) 
-PASS detachedProcessingInstruction.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedProcessingInstruction.contains(paras[0]) 
+PASS detachedProcessingInstruction.contains(paras[0].firstChild) 
+PASS detachedProcessingInstruction.contains(paras[1].firstChild) 
+PASS detachedProcessingInstruction.contains(foreignPara1) 
+PASS detachedProcessingInstruction.contains(foreignPara1.firstChild) 
+PASS detachedProcessingInstruction.contains(detachedPara1) 
+PASS detachedProcessingInstruction.contains(detachedPara1.firstChild) 
+PASS detachedProcessingInstruction.contains(document) 
+PASS detachedProcessingInstruction.contains(detachedDiv) 
+PASS detachedProcessingInstruction.contains(foreignDoc) 
+PASS detachedProcessingInstruction.contains(foreignPara2) 
+PASS detachedProcessingInstruction.contains(xmlDoc) 
+PASS detachedProcessingInstruction.contains(xmlElement) 
+PASS detachedProcessingInstruction.contains(detachedTextNode) 
+PASS detachedProcessingInstruction.contains(foreignTextNode) 
+PASS detachedProcessingInstruction.contains(processingInstruction) 
+PASS detachedProcessingInstruction.contains(detachedProcessingInstruction) 
+PASS detachedProcessingInstruction.contains(comment) 
+PASS detachedProcessingInstruction.contains(detachedComment) 
+PASS detachedProcessingInstruction.contains(docfrag) 
+PASS detachedProcessingInstruction.contains(doctype) 
+PASS detachedProcessingInstruction.contains(foreignDoctype) 
+PASS detachedProcessingInstruction.contains(paras[1]) 
+PASS detachedProcessingInstruction.contains(detachedPara2) 
+PASS detachedProcessingInstruction.contains(detachedPara2.firstChild) 
+PASS detachedProcessingInstruction.contains(testDiv) 
+PASS detachedProcessingInstruction.contains(detachedXmlElement) 
+PASS detachedProcessingInstruction.contains(detachedForeignTextNode) 
+PASS detachedProcessingInstruction.contains(xmlTextNode) 
+PASS detachedProcessingInstruction.contains(detachedXmlTextNode) 
+PASS detachedProcessingInstruction.contains(xmlComment) 
+PASS detachedProcessingInstruction.contains(foreignComment) 
+PASS detachedProcessingInstruction.contains(detachedForeignComment) 
+PASS detachedProcessingInstruction.contains(detachedXmlComment) 
+PASS detachedProcessingInstruction.contains(foreignDocfrag) 
+PASS detachedProcessingInstruction.contains(xmlDocfrag) 
+PASS detachedProcessingInstruction.contains(xmlDoctype) 
</ins><span class="cx"> PASS comment.contains(null) 
</span><del>-PASS comment.compareDocumentPosition(paras[0]) 
-PASS comment.compareDocumentPosition(paras[0].firstChild) 
-PASS comment.compareDocumentPosition(paras[1].firstChild) 
-PASS comment.compareDocumentPosition(foreignPara1) 
-PASS comment.compareDocumentPosition(foreignPara1.firstChild) 
-PASS comment.compareDocumentPosition(detachedPara1) 
-PASS comment.compareDocumentPosition(detachedPara1.firstChild) 
-PASS comment.compareDocumentPosition(document) 
-PASS comment.compareDocumentPosition(detachedDiv) 
-PASS comment.compareDocumentPosition(foreignDoc) 
-PASS comment.compareDocumentPosition(foreignPara2) 
-PASS comment.compareDocumentPosition(xmlDoc) 
-PASS comment.compareDocumentPosition(xmlElement) 
-PASS comment.compareDocumentPosition(detachedTextNode) 
-PASS comment.compareDocumentPosition(foreignTextNode) 
-PASS comment.compareDocumentPosition(processingInstruction) 
-PASS comment.compareDocumentPosition(detachedProcessingInstruction) 
-PASS comment.compareDocumentPosition(comment) 
-PASS comment.compareDocumentPosition(detachedComment) 
-PASS comment.compareDocumentPosition(docfrag) 
-PASS comment.compareDocumentPosition(doctype) 
-PASS comment.compareDocumentPosition(foreignDoctype) 
-PASS comment.compareDocumentPosition(paras[1]) 
-PASS comment.compareDocumentPosition(detachedPara2) 
-PASS comment.compareDocumentPosition(detachedPara2.firstChild) 
-PASS comment.compareDocumentPosition(testDiv) 
-PASS comment.compareDocumentPosition(detachedXmlElement) 
-PASS comment.compareDocumentPosition(detachedForeignTextNode) 
-PASS comment.compareDocumentPosition(xmlTextNode) 
-PASS comment.compareDocumentPosition(detachedXmlTextNode) 
-PASS comment.compareDocumentPosition(xmlComment) 
-PASS comment.compareDocumentPosition(foreignComment) 
-PASS comment.compareDocumentPosition(detachedForeignComment) 
-PASS comment.compareDocumentPosition(detachedXmlComment) 
-PASS comment.compareDocumentPosition(foreignDocfrag) 
-PASS comment.compareDocumentPosition(xmlDocfrag) 
-PASS comment.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS comment.contains(paras[0]) 
+PASS comment.contains(paras[0].firstChild) 
+PASS comment.contains(paras[1].firstChild) 
+PASS comment.contains(foreignPara1) 
+PASS comment.contains(foreignPara1.firstChild) 
+PASS comment.contains(detachedPara1) 
+PASS comment.contains(detachedPara1.firstChild) 
+PASS comment.contains(document) 
+PASS comment.contains(detachedDiv) 
+PASS comment.contains(foreignDoc) 
+PASS comment.contains(foreignPara2) 
+PASS comment.contains(xmlDoc) 
+PASS comment.contains(xmlElement) 
+PASS comment.contains(detachedTextNode) 
+PASS comment.contains(foreignTextNode) 
+PASS comment.contains(processingInstruction) 
+PASS comment.contains(detachedProcessingInstruction) 
+PASS comment.contains(comment) 
+PASS comment.contains(detachedComment) 
+PASS comment.contains(docfrag) 
+PASS comment.contains(doctype) 
+PASS comment.contains(foreignDoctype) 
+PASS comment.contains(paras[1]) 
+PASS comment.contains(detachedPara2) 
+PASS comment.contains(detachedPara2.firstChild) 
+PASS comment.contains(testDiv) 
+PASS comment.contains(detachedXmlElement) 
+PASS comment.contains(detachedForeignTextNode) 
+PASS comment.contains(xmlTextNode) 
+PASS comment.contains(detachedXmlTextNode) 
+PASS comment.contains(xmlComment) 
+PASS comment.contains(foreignComment) 
+PASS comment.contains(detachedForeignComment) 
+PASS comment.contains(detachedXmlComment) 
+PASS comment.contains(foreignDocfrag) 
+PASS comment.contains(xmlDocfrag) 
+PASS comment.contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedComment.contains(null) 
</span><del>-PASS detachedComment.compareDocumentPosition(paras[0]) 
-PASS detachedComment.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedComment.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedComment.compareDocumentPosition(foreignPara1) 
-PASS detachedComment.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedComment.compareDocumentPosition(detachedPara1) 
-PASS detachedComment.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedComment.compareDocumentPosition(document) 
-PASS detachedComment.compareDocumentPosition(detachedDiv) 
-PASS detachedComment.compareDocumentPosition(foreignDoc) 
-PASS detachedComment.compareDocumentPosition(foreignPara2) 
-PASS detachedComment.compareDocumentPosition(xmlDoc) 
-PASS detachedComment.compareDocumentPosition(xmlElement) 
-PASS detachedComment.compareDocumentPosition(detachedTextNode) 
-PASS detachedComment.compareDocumentPosition(foreignTextNode) 
-PASS detachedComment.compareDocumentPosition(processingInstruction) 
-PASS detachedComment.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedComment.compareDocumentPosition(comment) 
-PASS detachedComment.compareDocumentPosition(detachedComment) 
-PASS detachedComment.compareDocumentPosition(docfrag) 
-PASS detachedComment.compareDocumentPosition(doctype) 
-PASS detachedComment.compareDocumentPosition(foreignDoctype) 
-PASS detachedComment.compareDocumentPosition(paras[1]) 
-PASS detachedComment.compareDocumentPosition(detachedPara2) 
-PASS detachedComment.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedComment.compareDocumentPosition(testDiv) 
-PASS detachedComment.compareDocumentPosition(detachedXmlElement) 
-PASS detachedComment.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedComment.compareDocumentPosition(xmlTextNode) 
-PASS detachedComment.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedComment.compareDocumentPosition(xmlComment) 
-PASS detachedComment.compareDocumentPosition(foreignComment) 
-PASS detachedComment.compareDocumentPosition(detachedForeignComment) 
-PASS detachedComment.compareDocumentPosition(detachedXmlComment) 
-PASS detachedComment.compareDocumentPosition(foreignDocfrag) 
-PASS detachedComment.compareDocumentPosition(xmlDocfrag) 
-PASS detachedComment.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedComment.contains(paras[0]) 
+PASS detachedComment.contains(paras[0].firstChild) 
+PASS detachedComment.contains(paras[1].firstChild) 
+PASS detachedComment.contains(foreignPara1) 
+PASS detachedComment.contains(foreignPara1.firstChild) 
+PASS detachedComment.contains(detachedPara1) 
+PASS detachedComment.contains(detachedPara1.firstChild) 
+PASS detachedComment.contains(document) 
+PASS detachedComment.contains(detachedDiv) 
+PASS detachedComment.contains(foreignDoc) 
+PASS detachedComment.contains(foreignPara2) 
+PASS detachedComment.contains(xmlDoc) 
+PASS detachedComment.contains(xmlElement) 
+PASS detachedComment.contains(detachedTextNode) 
+PASS detachedComment.contains(foreignTextNode) 
+PASS detachedComment.contains(processingInstruction) 
+PASS detachedComment.contains(detachedProcessingInstruction) 
+PASS detachedComment.contains(comment) 
+PASS detachedComment.contains(detachedComment) 
+PASS detachedComment.contains(docfrag) 
+PASS detachedComment.contains(doctype) 
+PASS detachedComment.contains(foreignDoctype) 
+PASS detachedComment.contains(paras[1]) 
+PASS detachedComment.contains(detachedPara2) 
+PASS detachedComment.contains(detachedPara2.firstChild) 
+PASS detachedComment.contains(testDiv) 
+PASS detachedComment.contains(detachedXmlElement) 
+PASS detachedComment.contains(detachedForeignTextNode) 
+PASS detachedComment.contains(xmlTextNode) 
+PASS detachedComment.contains(detachedXmlTextNode) 
+PASS detachedComment.contains(xmlComment) 
+PASS detachedComment.contains(foreignComment) 
+PASS detachedComment.contains(detachedForeignComment) 
+PASS detachedComment.contains(detachedXmlComment) 
+PASS detachedComment.contains(foreignDocfrag) 
+PASS detachedComment.contains(xmlDocfrag) 
+PASS detachedComment.contains(xmlDoctype) 
</ins><span class="cx"> PASS docfrag.contains(null) 
</span><del>-PASS docfrag.compareDocumentPosition(paras[0]) 
-PASS docfrag.compareDocumentPosition(paras[0].firstChild) 
-PASS docfrag.compareDocumentPosition(paras[1].firstChild) 
-PASS docfrag.compareDocumentPosition(foreignPara1) 
-PASS docfrag.compareDocumentPosition(foreignPara1.firstChild) 
-PASS docfrag.compareDocumentPosition(detachedPara1) 
-PASS docfrag.compareDocumentPosition(detachedPara1.firstChild) 
-PASS docfrag.compareDocumentPosition(document) 
-PASS docfrag.compareDocumentPosition(detachedDiv) 
-PASS docfrag.compareDocumentPosition(foreignDoc) 
-PASS docfrag.compareDocumentPosition(foreignPara2) 
-PASS docfrag.compareDocumentPosition(xmlDoc) 
-PASS docfrag.compareDocumentPosition(xmlElement) 
-PASS docfrag.compareDocumentPosition(detachedTextNode) 
-PASS docfrag.compareDocumentPosition(foreignTextNode) 
-PASS docfrag.compareDocumentPosition(processingInstruction) 
-PASS docfrag.compareDocumentPosition(detachedProcessingInstruction) 
-PASS docfrag.compareDocumentPosition(comment) 
-PASS docfrag.compareDocumentPosition(detachedComment) 
-PASS docfrag.compareDocumentPosition(docfrag) 
-PASS docfrag.compareDocumentPosition(doctype) 
-PASS docfrag.compareDocumentPosition(foreignDoctype) 
-PASS docfrag.compareDocumentPosition(paras[1]) 
-PASS docfrag.compareDocumentPosition(detachedPara2) 
-PASS docfrag.compareDocumentPosition(detachedPara2.firstChild) 
-PASS docfrag.compareDocumentPosition(testDiv) 
-PASS docfrag.compareDocumentPosition(detachedXmlElement) 
-PASS docfrag.compareDocumentPosition(detachedForeignTextNode) 
-PASS docfrag.compareDocumentPosition(xmlTextNode) 
-PASS docfrag.compareDocumentPosition(detachedXmlTextNode) 
-PASS docfrag.compareDocumentPosition(xmlComment) 
-PASS docfrag.compareDocumentPosition(foreignComment) 
-PASS docfrag.compareDocumentPosition(detachedForeignComment) 
-PASS docfrag.compareDocumentPosition(detachedXmlComment) 
-PASS docfrag.compareDocumentPosition(foreignDocfrag) 
-PASS docfrag.compareDocumentPosition(xmlDocfrag) 
-PASS docfrag.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS docfrag.contains(paras[0]) 
+PASS docfrag.contains(paras[0].firstChild) 
+PASS docfrag.contains(paras[1].firstChild) 
+PASS docfrag.contains(foreignPara1) 
+PASS docfrag.contains(foreignPara1.firstChild) 
+PASS docfrag.contains(detachedPara1) 
+PASS docfrag.contains(detachedPara1.firstChild) 
+PASS docfrag.contains(document) 
+PASS docfrag.contains(detachedDiv) 
+PASS docfrag.contains(foreignDoc) 
+PASS docfrag.contains(foreignPara2) 
+PASS docfrag.contains(xmlDoc) 
+PASS docfrag.contains(xmlElement) 
+PASS docfrag.contains(detachedTextNode) 
+PASS docfrag.contains(foreignTextNode) 
+PASS docfrag.contains(processingInstruction) 
+PASS docfrag.contains(detachedProcessingInstruction) 
+PASS docfrag.contains(comment) 
+PASS docfrag.contains(detachedComment) 
+PASS docfrag.contains(docfrag) 
+PASS docfrag.contains(doctype) 
+PASS docfrag.contains(foreignDoctype) 
+PASS docfrag.contains(paras[1]) 
+PASS docfrag.contains(detachedPara2) 
+PASS docfrag.contains(detachedPara2.firstChild) 
+PASS docfrag.contains(testDiv) 
+PASS docfrag.contains(detachedXmlElement) 
+PASS docfrag.contains(detachedForeignTextNode) 
+PASS docfrag.contains(xmlTextNode) 
+PASS docfrag.contains(detachedXmlTextNode) 
+PASS docfrag.contains(xmlComment) 
+PASS docfrag.contains(foreignComment) 
+PASS docfrag.contains(detachedForeignComment) 
+PASS docfrag.contains(detachedXmlComment) 
+PASS docfrag.contains(foreignDocfrag) 
+PASS docfrag.contains(xmlDocfrag) 
+PASS docfrag.contains(xmlDoctype) 
</ins><span class="cx"> PASS doctype.contains(null) 
</span><del>-PASS doctype.compareDocumentPosition(paras[0]) 
-PASS doctype.compareDocumentPosition(paras[0].firstChild) 
-PASS doctype.compareDocumentPosition(paras[1].firstChild) 
-PASS doctype.compareDocumentPosition(foreignPara1) 
-PASS doctype.compareDocumentPosition(foreignPara1.firstChild) 
-PASS doctype.compareDocumentPosition(detachedPara1) 
-PASS doctype.compareDocumentPosition(detachedPara1.firstChild) 
-PASS doctype.compareDocumentPosition(document) 
-PASS doctype.compareDocumentPosition(detachedDiv) 
-PASS doctype.compareDocumentPosition(foreignDoc) 
-PASS doctype.compareDocumentPosition(foreignPara2) 
-PASS doctype.compareDocumentPosition(xmlDoc) 
-PASS doctype.compareDocumentPosition(xmlElement) 
-PASS doctype.compareDocumentPosition(detachedTextNode) 
-PASS doctype.compareDocumentPosition(foreignTextNode) 
-PASS doctype.compareDocumentPosition(processingInstruction) 
-PASS doctype.compareDocumentPosition(detachedProcessingInstruction) 
-PASS doctype.compareDocumentPosition(comment) 
-PASS doctype.compareDocumentPosition(detachedComment) 
-PASS doctype.compareDocumentPosition(docfrag) 
-PASS doctype.compareDocumentPosition(doctype) 
-PASS doctype.compareDocumentPosition(foreignDoctype) 
-PASS doctype.compareDocumentPosition(paras[1]) 
-PASS doctype.compareDocumentPosition(detachedPara2) 
-PASS doctype.compareDocumentPosition(detachedPara2.firstChild) 
-PASS doctype.compareDocumentPosition(testDiv) 
-PASS doctype.compareDocumentPosition(detachedXmlElement) 
-PASS doctype.compareDocumentPosition(detachedForeignTextNode) 
-PASS doctype.compareDocumentPosition(xmlTextNode) 
-PASS doctype.compareDocumentPosition(detachedXmlTextNode) 
-PASS doctype.compareDocumentPosition(xmlComment) 
-PASS doctype.compareDocumentPosition(foreignComment) 
-PASS doctype.compareDocumentPosition(detachedForeignComment) 
-PASS doctype.compareDocumentPosition(detachedXmlComment) 
-PASS doctype.compareDocumentPosition(foreignDocfrag) 
-PASS doctype.compareDocumentPosition(xmlDocfrag) 
-PASS doctype.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS doctype.contains(paras[0]) 
+PASS doctype.contains(paras[0].firstChild) 
+PASS doctype.contains(paras[1].firstChild) 
+PASS doctype.contains(foreignPara1) 
+PASS doctype.contains(foreignPara1.firstChild) 
+PASS doctype.contains(detachedPara1) 
+PASS doctype.contains(detachedPara1.firstChild) 
+PASS doctype.contains(document) 
+PASS doctype.contains(detachedDiv) 
+PASS doctype.contains(foreignDoc) 
+PASS doctype.contains(foreignPara2) 
+PASS doctype.contains(xmlDoc) 
+PASS doctype.contains(xmlElement) 
+PASS doctype.contains(detachedTextNode) 
+PASS doctype.contains(foreignTextNode) 
+PASS doctype.contains(processingInstruction) 
+PASS doctype.contains(detachedProcessingInstruction) 
+PASS doctype.contains(comment) 
+PASS doctype.contains(detachedComment) 
+PASS doctype.contains(docfrag) 
+PASS doctype.contains(doctype) 
+PASS doctype.contains(foreignDoctype) 
+PASS doctype.contains(paras[1]) 
+PASS doctype.contains(detachedPara2) 
+PASS doctype.contains(detachedPara2.firstChild) 
+PASS doctype.contains(testDiv) 
+PASS doctype.contains(detachedXmlElement) 
+PASS doctype.contains(detachedForeignTextNode) 
+PASS doctype.contains(xmlTextNode) 
+PASS doctype.contains(detachedXmlTextNode) 
+PASS doctype.contains(xmlComment) 
+PASS doctype.contains(foreignComment) 
+PASS doctype.contains(detachedForeignComment) 
+PASS doctype.contains(detachedXmlComment) 
+PASS doctype.contains(foreignDocfrag) 
+PASS doctype.contains(xmlDocfrag) 
+PASS doctype.contains(xmlDoctype) 
</ins><span class="cx"> PASS foreignDoctype.contains(null) 
</span><del>-PASS foreignDoctype.compareDocumentPosition(paras[0]) 
-PASS foreignDoctype.compareDocumentPosition(paras[0].firstChild) 
-PASS foreignDoctype.compareDocumentPosition(paras[1].firstChild) 
-PASS foreignDoctype.compareDocumentPosition(foreignPara1) 
-PASS foreignDoctype.compareDocumentPosition(foreignPara1.firstChild) 
-PASS foreignDoctype.compareDocumentPosition(detachedPara1) 
-PASS foreignDoctype.compareDocumentPosition(detachedPara1.firstChild) 
-PASS foreignDoctype.compareDocumentPosition(document) 
-PASS foreignDoctype.compareDocumentPosition(detachedDiv) 
-PASS foreignDoctype.compareDocumentPosition(foreignDoc) 
-PASS foreignDoctype.compareDocumentPosition(foreignPara2) 
-PASS foreignDoctype.compareDocumentPosition(xmlDoc) 
-PASS foreignDoctype.compareDocumentPosition(xmlElement) 
-PASS foreignDoctype.compareDocumentPosition(detachedTextNode) 
-PASS foreignDoctype.compareDocumentPosition(foreignTextNode) 
-PASS foreignDoctype.compareDocumentPosition(processingInstruction) 
-PASS foreignDoctype.compareDocumentPosition(detachedProcessingInstruction) 
-PASS foreignDoctype.compareDocumentPosition(comment) 
-PASS foreignDoctype.compareDocumentPosition(detachedComment) 
-PASS foreignDoctype.compareDocumentPosition(docfrag) 
-PASS foreignDoctype.compareDocumentPosition(doctype) 
-PASS foreignDoctype.compareDocumentPosition(foreignDoctype) 
-PASS foreignDoctype.compareDocumentPosition(paras[1]) 
-PASS foreignDoctype.compareDocumentPosition(detachedPara2) 
-PASS foreignDoctype.compareDocumentPosition(detachedPara2.firstChild) 
-PASS foreignDoctype.compareDocumentPosition(testDiv) 
-PASS foreignDoctype.compareDocumentPosition(detachedXmlElement) 
-PASS foreignDoctype.compareDocumentPosition(detachedForeignTextNode) 
-PASS foreignDoctype.compareDocumentPosition(xmlTextNode) 
-PASS foreignDoctype.compareDocumentPosition(detachedXmlTextNode) 
-PASS foreignDoctype.compareDocumentPosition(xmlComment) 
-PASS foreignDoctype.compareDocumentPosition(foreignComment) 
-PASS foreignDoctype.compareDocumentPosition(detachedForeignComment) 
-PASS foreignDoctype.compareDocumentPosition(detachedXmlComment) 
-PASS foreignDoctype.compareDocumentPosition(foreignDocfrag) 
-PASS foreignDoctype.compareDocumentPosition(xmlDocfrag) 
-PASS foreignDoctype.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS foreignDoctype.contains(paras[0]) 
+PASS foreignDoctype.contains(paras[0].firstChild) 
+PASS foreignDoctype.contains(paras[1].firstChild) 
+PASS foreignDoctype.contains(foreignPara1) 
+PASS foreignDoctype.contains(foreignPara1.firstChild) 
+PASS foreignDoctype.contains(detachedPara1) 
+PASS foreignDoctype.contains(detachedPara1.firstChild) 
+PASS foreignDoctype.contains(document) 
+PASS foreignDoctype.contains(detachedDiv) 
+PASS foreignDoctype.contains(foreignDoc) 
+PASS foreignDoctype.contains(foreignPara2) 
+PASS foreignDoctype.contains(xmlDoc) 
+PASS foreignDoctype.contains(xmlElement) 
+PASS foreignDoctype.contains(detachedTextNode) 
+PASS foreignDoctype.contains(foreignTextNode) 
+PASS foreignDoctype.contains(processingInstruction) 
+PASS foreignDoctype.contains(detachedProcessingInstruction) 
+PASS foreignDoctype.contains(comment) 
+PASS foreignDoctype.contains(detachedComment) 
+PASS foreignDoctype.contains(docfrag) 
+PASS foreignDoctype.contains(doctype) 
+PASS foreignDoctype.contains(foreignDoctype) 
+PASS foreignDoctype.contains(paras[1]) 
+PASS foreignDoctype.contains(detachedPara2) 
+PASS foreignDoctype.contains(detachedPara2.firstChild) 
+PASS foreignDoctype.contains(testDiv) 
+PASS foreignDoctype.contains(detachedXmlElement) 
+PASS foreignDoctype.contains(detachedForeignTextNode) 
+PASS foreignDoctype.contains(xmlTextNode) 
+PASS foreignDoctype.contains(detachedXmlTextNode) 
+PASS foreignDoctype.contains(xmlComment) 
+PASS foreignDoctype.contains(foreignComment) 
+PASS foreignDoctype.contains(detachedForeignComment) 
+PASS foreignDoctype.contains(detachedXmlComment) 
+PASS foreignDoctype.contains(foreignDocfrag) 
+PASS foreignDoctype.contains(xmlDocfrag) 
+PASS foreignDoctype.contains(xmlDoctype) 
</ins><span class="cx"> PASS paras[1].contains(null) 
</span><del>-PASS paras[1].compareDocumentPosition(paras[0]) 
-PASS paras[1].compareDocumentPosition(paras[0].firstChild) 
-PASS paras[1].compareDocumentPosition(paras[1].firstChild) 
-PASS paras[1].compareDocumentPosition(foreignPara1) 
-PASS paras[1].compareDocumentPosition(foreignPara1.firstChild) 
-PASS paras[1].compareDocumentPosition(detachedPara1) 
-PASS paras[1].compareDocumentPosition(detachedPara1.firstChild) 
-PASS paras[1].compareDocumentPosition(document) 
-PASS paras[1].compareDocumentPosition(detachedDiv) 
-PASS paras[1].compareDocumentPosition(foreignDoc) 
-PASS paras[1].compareDocumentPosition(foreignPara2) 
-PASS paras[1].compareDocumentPosition(xmlDoc) 
-PASS paras[1].compareDocumentPosition(xmlElement) 
-PASS paras[1].compareDocumentPosition(detachedTextNode) 
-PASS paras[1].compareDocumentPosition(foreignTextNode) 
-PASS paras[1].compareDocumentPosition(processingInstruction) 
-PASS paras[1].compareDocumentPosition(detachedProcessingInstruction) 
-PASS paras[1].compareDocumentPosition(comment) 
-PASS paras[1].compareDocumentPosition(detachedComment) 
-PASS paras[1].compareDocumentPosition(docfrag) 
-PASS paras[1].compareDocumentPosition(doctype) 
-PASS paras[1].compareDocumentPosition(foreignDoctype) 
-PASS paras[1].compareDocumentPosition(paras[1]) 
-PASS paras[1].compareDocumentPosition(detachedPara2) 
-PASS paras[1].compareDocumentPosition(detachedPara2.firstChild) 
-PASS paras[1].compareDocumentPosition(testDiv) 
-PASS paras[1].compareDocumentPosition(detachedXmlElement) 
-PASS paras[1].compareDocumentPosition(detachedForeignTextNode) 
-PASS paras[1].compareDocumentPosition(xmlTextNode) 
-PASS paras[1].compareDocumentPosition(detachedXmlTextNode) 
-PASS paras[1].compareDocumentPosition(xmlComment) 
-PASS paras[1].compareDocumentPosition(foreignComment) 
-PASS paras[1].compareDocumentPosition(detachedForeignComment) 
-PASS paras[1].compareDocumentPosition(detachedXmlComment) 
-PASS paras[1].compareDocumentPosition(foreignDocfrag) 
-PASS paras[1].compareDocumentPosition(xmlDocfrag) 
-PASS paras[1].compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS paras[1].contains(paras[0]) 
+PASS paras[1].contains(paras[0].firstChild) 
+PASS paras[1].contains(paras[1].firstChild) 
+PASS paras[1].contains(foreignPara1) 
+PASS paras[1].contains(foreignPara1.firstChild) 
+PASS paras[1].contains(detachedPara1) 
+PASS paras[1].contains(detachedPara1.firstChild) 
+PASS paras[1].contains(document) 
+PASS paras[1].contains(detachedDiv) 
+PASS paras[1].contains(foreignDoc) 
+PASS paras[1].contains(foreignPara2) 
+PASS paras[1].contains(xmlDoc) 
+PASS paras[1].contains(xmlElement) 
+PASS paras[1].contains(detachedTextNode) 
+PASS paras[1].contains(foreignTextNode) 
+PASS paras[1].contains(processingInstruction) 
+PASS paras[1].contains(detachedProcessingInstruction) 
+PASS paras[1].contains(comment) 
+PASS paras[1].contains(detachedComment) 
+PASS paras[1].contains(docfrag) 
+PASS paras[1].contains(doctype) 
+PASS paras[1].contains(foreignDoctype) 
+PASS paras[1].contains(paras[1]) 
+PASS paras[1].contains(detachedPara2) 
+PASS paras[1].contains(detachedPara2.firstChild) 
+PASS paras[1].contains(testDiv) 
+PASS paras[1].contains(detachedXmlElement) 
+PASS paras[1].contains(detachedForeignTextNode) 
+PASS paras[1].contains(xmlTextNode) 
+PASS paras[1].contains(detachedXmlTextNode) 
+PASS paras[1].contains(xmlComment) 
+PASS paras[1].contains(foreignComment) 
+PASS paras[1].contains(detachedForeignComment) 
+PASS paras[1].contains(detachedXmlComment) 
+PASS paras[1].contains(foreignDocfrag) 
+PASS paras[1].contains(xmlDocfrag) 
+PASS paras[1].contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedPara2.contains(null) 
</span><del>-PASS detachedPara2.compareDocumentPosition(paras[0]) 
-PASS detachedPara2.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedPara2.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedPara2.compareDocumentPosition(foreignPara1) 
-PASS detachedPara2.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedPara2.compareDocumentPosition(detachedPara1) 
-PASS detachedPara2.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedPara2.compareDocumentPosition(document) 
-PASS detachedPara2.compareDocumentPosition(detachedDiv) 
-PASS detachedPara2.compareDocumentPosition(foreignDoc) 
-PASS detachedPara2.compareDocumentPosition(foreignPara2) 
-PASS detachedPara2.compareDocumentPosition(xmlDoc) 
-PASS detachedPara2.compareDocumentPosition(xmlElement) 
-PASS detachedPara2.compareDocumentPosition(detachedTextNode) 
-PASS detachedPara2.compareDocumentPosition(foreignTextNode) 
-PASS detachedPara2.compareDocumentPosition(processingInstruction) 
-PASS detachedPara2.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedPara2.compareDocumentPosition(comment) 
-PASS detachedPara2.compareDocumentPosition(detachedComment) 
-PASS detachedPara2.compareDocumentPosition(docfrag) 
-PASS detachedPara2.compareDocumentPosition(doctype) 
-PASS detachedPara2.compareDocumentPosition(foreignDoctype) 
-PASS detachedPara2.compareDocumentPosition(paras[1]) 
-PASS detachedPara2.compareDocumentPosition(detachedPara2) 
-PASS detachedPara2.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedPara2.compareDocumentPosition(testDiv) 
-PASS detachedPara2.compareDocumentPosition(detachedXmlElement) 
-PASS detachedPara2.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedPara2.compareDocumentPosition(xmlTextNode) 
-PASS detachedPara2.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedPara2.compareDocumentPosition(xmlComment) 
-PASS detachedPara2.compareDocumentPosition(foreignComment) 
-PASS detachedPara2.compareDocumentPosition(detachedForeignComment) 
-PASS detachedPara2.compareDocumentPosition(detachedXmlComment) 
-PASS detachedPara2.compareDocumentPosition(foreignDocfrag) 
-PASS detachedPara2.compareDocumentPosition(xmlDocfrag) 
-PASS detachedPara2.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedPara2.contains(paras[0]) 
+PASS detachedPara2.contains(paras[0].firstChild) 
+PASS detachedPara2.contains(paras[1].firstChild) 
+PASS detachedPara2.contains(foreignPara1) 
+PASS detachedPara2.contains(foreignPara1.firstChild) 
+PASS detachedPara2.contains(detachedPara1) 
+PASS detachedPara2.contains(detachedPara1.firstChild) 
+PASS detachedPara2.contains(document) 
+PASS detachedPara2.contains(detachedDiv) 
+PASS detachedPara2.contains(foreignDoc) 
+PASS detachedPara2.contains(foreignPara2) 
+PASS detachedPara2.contains(xmlDoc) 
+PASS detachedPara2.contains(xmlElement) 
+PASS detachedPara2.contains(detachedTextNode) 
+PASS detachedPara2.contains(foreignTextNode) 
+PASS detachedPara2.contains(processingInstruction) 
+PASS detachedPara2.contains(detachedProcessingInstruction) 
+PASS detachedPara2.contains(comment) 
+PASS detachedPara2.contains(detachedComment) 
+PASS detachedPara2.contains(docfrag) 
+PASS detachedPara2.contains(doctype) 
+PASS detachedPara2.contains(foreignDoctype) 
+PASS detachedPara2.contains(paras[1]) 
+PASS detachedPara2.contains(detachedPara2) 
+PASS detachedPara2.contains(detachedPara2.firstChild) 
+PASS detachedPara2.contains(testDiv) 
+PASS detachedPara2.contains(detachedXmlElement) 
+PASS detachedPara2.contains(detachedForeignTextNode) 
+PASS detachedPara2.contains(xmlTextNode) 
+PASS detachedPara2.contains(detachedXmlTextNode) 
+PASS detachedPara2.contains(xmlComment) 
+PASS detachedPara2.contains(foreignComment) 
+PASS detachedPara2.contains(detachedForeignComment) 
+PASS detachedPara2.contains(detachedXmlComment) 
+PASS detachedPara2.contains(foreignDocfrag) 
+PASS detachedPara2.contains(xmlDocfrag) 
+PASS detachedPara2.contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedPara2.firstChild.contains(null) 
</span><del>-PASS detachedPara2.firstChild.compareDocumentPosition(paras[0]) 
-PASS detachedPara2.firstChild.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedPara2.firstChild.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedPara2.firstChild.compareDocumentPosition(foreignPara1) 
-PASS detachedPara2.firstChild.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedPara1) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedPara2.firstChild.compareDocumentPosition(document) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedDiv) 
-PASS detachedPara2.firstChild.compareDocumentPosition(foreignDoc) 
-PASS detachedPara2.firstChild.compareDocumentPosition(foreignPara2) 
-PASS detachedPara2.firstChild.compareDocumentPosition(xmlDoc) 
-PASS detachedPara2.firstChild.compareDocumentPosition(xmlElement) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedTextNode) 
-PASS detachedPara2.firstChild.compareDocumentPosition(foreignTextNode) 
-PASS detachedPara2.firstChild.compareDocumentPosition(processingInstruction) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedPara2.firstChild.compareDocumentPosition(comment) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedComment) 
-PASS detachedPara2.firstChild.compareDocumentPosition(docfrag) 
-PASS detachedPara2.firstChild.compareDocumentPosition(doctype) 
-PASS detachedPara2.firstChild.compareDocumentPosition(foreignDoctype) 
-PASS detachedPara2.firstChild.compareDocumentPosition(paras[1]) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedPara2) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedPara2.firstChild.compareDocumentPosition(testDiv) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedXmlElement) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedPara2.firstChild.compareDocumentPosition(xmlTextNode) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedPara2.firstChild.compareDocumentPosition(xmlComment) 
-PASS detachedPara2.firstChild.compareDocumentPosition(foreignComment) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedForeignComment) 
-PASS detachedPara2.firstChild.compareDocumentPosition(detachedXmlComment) 
-PASS detachedPara2.firstChild.compareDocumentPosition(foreignDocfrag) 
-PASS detachedPara2.firstChild.compareDocumentPosition(xmlDocfrag) 
-PASS detachedPara2.firstChild.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedPara2.firstChild.contains(paras[0]) 
+PASS detachedPara2.firstChild.contains(paras[0].firstChild) 
+PASS detachedPara2.firstChild.contains(paras[1].firstChild) 
+PASS detachedPara2.firstChild.contains(foreignPara1) 
+PASS detachedPara2.firstChild.contains(foreignPara1.firstChild) 
+PASS detachedPara2.firstChild.contains(detachedPara1) 
+PASS detachedPara2.firstChild.contains(detachedPara1.firstChild) 
+PASS detachedPara2.firstChild.contains(document) 
+PASS detachedPara2.firstChild.contains(detachedDiv) 
+PASS detachedPara2.firstChild.contains(foreignDoc) 
+PASS detachedPara2.firstChild.contains(foreignPara2) 
+PASS detachedPara2.firstChild.contains(xmlDoc) 
+PASS detachedPara2.firstChild.contains(xmlElement) 
+PASS detachedPara2.firstChild.contains(detachedTextNode) 
+PASS detachedPara2.firstChild.contains(foreignTextNode) 
+PASS detachedPara2.firstChild.contains(processingInstruction) 
+PASS detachedPara2.firstChild.contains(detachedProcessingInstruction) 
+PASS detachedPara2.firstChild.contains(comment) 
+PASS detachedPara2.firstChild.contains(detachedComment) 
+PASS detachedPara2.firstChild.contains(docfrag) 
+PASS detachedPara2.firstChild.contains(doctype) 
+PASS detachedPara2.firstChild.contains(foreignDoctype) 
+PASS detachedPara2.firstChild.contains(paras[1]) 
+PASS detachedPara2.firstChild.contains(detachedPara2) 
+PASS detachedPara2.firstChild.contains(detachedPara2.firstChild) 
+PASS detachedPara2.firstChild.contains(testDiv) 
+PASS detachedPara2.firstChild.contains(detachedXmlElement) 
+PASS detachedPara2.firstChild.contains(detachedForeignTextNode) 
+PASS detachedPara2.firstChild.contains(xmlTextNode) 
+PASS detachedPara2.firstChild.contains(detachedXmlTextNode) 
+PASS detachedPara2.firstChild.contains(xmlComment) 
+PASS detachedPara2.firstChild.contains(foreignComment) 
+PASS detachedPara2.firstChild.contains(detachedForeignComment) 
+PASS detachedPara2.firstChild.contains(detachedXmlComment) 
+PASS detachedPara2.firstChild.contains(foreignDocfrag) 
+PASS detachedPara2.firstChild.contains(xmlDocfrag) 
+PASS detachedPara2.firstChild.contains(xmlDoctype) 
</ins><span class="cx"> PASS testDiv.contains(null) 
</span><del>-PASS testDiv.compareDocumentPosition(paras[0]) 
-PASS testDiv.compareDocumentPosition(paras[0].firstChild) 
-PASS testDiv.compareDocumentPosition(paras[1].firstChild) 
-PASS testDiv.compareDocumentPosition(foreignPara1) 
-PASS testDiv.compareDocumentPosition(foreignPara1.firstChild) 
-PASS testDiv.compareDocumentPosition(detachedPara1) 
-PASS testDiv.compareDocumentPosition(detachedPara1.firstChild) 
-PASS testDiv.compareDocumentPosition(document) 
-PASS testDiv.compareDocumentPosition(detachedDiv) 
-PASS testDiv.compareDocumentPosition(foreignDoc) 
-PASS testDiv.compareDocumentPosition(foreignPara2) 
-PASS testDiv.compareDocumentPosition(xmlDoc) 
-PASS testDiv.compareDocumentPosition(xmlElement) 
-PASS testDiv.compareDocumentPosition(detachedTextNode) 
-PASS testDiv.compareDocumentPosition(foreignTextNode) 
-PASS testDiv.compareDocumentPosition(processingInstruction) 
-PASS testDiv.compareDocumentPosition(detachedProcessingInstruction) 
-PASS testDiv.compareDocumentPosition(comment) 
-PASS testDiv.compareDocumentPosition(detachedComment) 
-PASS testDiv.compareDocumentPosition(docfrag) 
-PASS testDiv.compareDocumentPosition(doctype) 
-PASS testDiv.compareDocumentPosition(foreignDoctype) 
-PASS testDiv.compareDocumentPosition(paras[1]) 
-PASS testDiv.compareDocumentPosition(detachedPara2) 
-PASS testDiv.compareDocumentPosition(detachedPara2.firstChild) 
-PASS testDiv.compareDocumentPosition(testDiv) 
-PASS testDiv.compareDocumentPosition(detachedXmlElement) 
-PASS testDiv.compareDocumentPosition(detachedForeignTextNode) 
-PASS testDiv.compareDocumentPosition(xmlTextNode) 
-PASS testDiv.compareDocumentPosition(detachedXmlTextNode) 
-PASS testDiv.compareDocumentPosition(xmlComment) 
-PASS testDiv.compareDocumentPosition(foreignComment) 
-PASS testDiv.compareDocumentPosition(detachedForeignComment) 
-PASS testDiv.compareDocumentPosition(detachedXmlComment) 
-PASS testDiv.compareDocumentPosition(foreignDocfrag) 
-PASS testDiv.compareDocumentPosition(xmlDocfrag) 
-PASS testDiv.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS testDiv.contains(paras[0]) 
+PASS testDiv.contains(paras[0].firstChild) 
+PASS testDiv.contains(paras[1].firstChild) 
+PASS testDiv.contains(foreignPara1) 
+PASS testDiv.contains(foreignPara1.firstChild) 
+PASS testDiv.contains(detachedPara1) 
+PASS testDiv.contains(detachedPara1.firstChild) 
+PASS testDiv.contains(document) 
+PASS testDiv.contains(detachedDiv) 
+PASS testDiv.contains(foreignDoc) 
+PASS testDiv.contains(foreignPara2) 
+PASS testDiv.contains(xmlDoc) 
+PASS testDiv.contains(xmlElement) 
+PASS testDiv.contains(detachedTextNode) 
+PASS testDiv.contains(foreignTextNode) 
+PASS testDiv.contains(processingInstruction) 
+PASS testDiv.contains(detachedProcessingInstruction) 
+PASS testDiv.contains(comment) 
+PASS testDiv.contains(detachedComment) 
+PASS testDiv.contains(docfrag) 
+PASS testDiv.contains(doctype) 
+PASS testDiv.contains(foreignDoctype) 
+PASS testDiv.contains(paras[1]) 
+PASS testDiv.contains(detachedPara2) 
+PASS testDiv.contains(detachedPara2.firstChild) 
+PASS testDiv.contains(testDiv) 
+PASS testDiv.contains(detachedXmlElement) 
+PASS testDiv.contains(detachedForeignTextNode) 
+PASS testDiv.contains(xmlTextNode) 
+PASS testDiv.contains(detachedXmlTextNode) 
+PASS testDiv.contains(xmlComment) 
+PASS testDiv.contains(foreignComment) 
+PASS testDiv.contains(detachedForeignComment) 
+PASS testDiv.contains(detachedXmlComment) 
+PASS testDiv.contains(foreignDocfrag) 
+PASS testDiv.contains(xmlDocfrag) 
+PASS testDiv.contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedXmlElement.contains(null) 
</span><del>-PASS detachedXmlElement.compareDocumentPosition(paras[0]) 
-PASS detachedXmlElement.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedXmlElement.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedXmlElement.compareDocumentPosition(foreignPara1) 
-PASS detachedXmlElement.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedXmlElement.compareDocumentPosition(detachedPara1) 
-PASS detachedXmlElement.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedXmlElement.compareDocumentPosition(document) 
-PASS detachedXmlElement.compareDocumentPosition(detachedDiv) 
-PASS detachedXmlElement.compareDocumentPosition(foreignDoc) 
-PASS detachedXmlElement.compareDocumentPosition(foreignPara2) 
-PASS detachedXmlElement.compareDocumentPosition(xmlDoc) 
-PASS detachedXmlElement.compareDocumentPosition(xmlElement) 
-PASS detachedXmlElement.compareDocumentPosition(detachedTextNode) 
-PASS detachedXmlElement.compareDocumentPosition(foreignTextNode) 
-PASS detachedXmlElement.compareDocumentPosition(processingInstruction) 
-PASS detachedXmlElement.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedXmlElement.compareDocumentPosition(comment) 
-PASS detachedXmlElement.compareDocumentPosition(detachedComment) 
-PASS detachedXmlElement.compareDocumentPosition(docfrag) 
-PASS detachedXmlElement.compareDocumentPosition(doctype) 
-PASS detachedXmlElement.compareDocumentPosition(foreignDoctype) 
-PASS detachedXmlElement.compareDocumentPosition(paras[1]) 
-PASS detachedXmlElement.compareDocumentPosition(detachedPara2) 
-PASS detachedXmlElement.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedXmlElement.compareDocumentPosition(testDiv) 
-PASS detachedXmlElement.compareDocumentPosition(detachedXmlElement) 
-PASS detachedXmlElement.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedXmlElement.compareDocumentPosition(xmlTextNode) 
-PASS detachedXmlElement.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedXmlElement.compareDocumentPosition(xmlComment) 
-PASS detachedXmlElement.compareDocumentPosition(foreignComment) 
-PASS detachedXmlElement.compareDocumentPosition(detachedForeignComment) 
-PASS detachedXmlElement.compareDocumentPosition(detachedXmlComment) 
-PASS detachedXmlElement.compareDocumentPosition(foreignDocfrag) 
-PASS detachedXmlElement.compareDocumentPosition(xmlDocfrag) 
-PASS detachedXmlElement.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedXmlElement.contains(paras[0]) 
+PASS detachedXmlElement.contains(paras[0].firstChild) 
+PASS detachedXmlElement.contains(paras[1].firstChild) 
+PASS detachedXmlElement.contains(foreignPara1) 
+PASS detachedXmlElement.contains(foreignPara1.firstChild) 
+PASS detachedXmlElement.contains(detachedPara1) 
+PASS detachedXmlElement.contains(detachedPara1.firstChild) 
+PASS detachedXmlElement.contains(document) 
+PASS detachedXmlElement.contains(detachedDiv) 
+PASS detachedXmlElement.contains(foreignDoc) 
+PASS detachedXmlElement.contains(foreignPara2) 
+PASS detachedXmlElement.contains(xmlDoc) 
+PASS detachedXmlElement.contains(xmlElement) 
+PASS detachedXmlElement.contains(detachedTextNode) 
+PASS detachedXmlElement.contains(foreignTextNode) 
+PASS detachedXmlElement.contains(processingInstruction) 
+PASS detachedXmlElement.contains(detachedProcessingInstruction) 
+PASS detachedXmlElement.contains(comment) 
+PASS detachedXmlElement.contains(detachedComment) 
+PASS detachedXmlElement.contains(docfrag) 
+PASS detachedXmlElement.contains(doctype) 
+PASS detachedXmlElement.contains(foreignDoctype) 
+PASS detachedXmlElement.contains(paras[1]) 
+PASS detachedXmlElement.contains(detachedPara2) 
+PASS detachedXmlElement.contains(detachedPara2.firstChild) 
+PASS detachedXmlElement.contains(testDiv) 
+PASS detachedXmlElement.contains(detachedXmlElement) 
+PASS detachedXmlElement.contains(detachedForeignTextNode) 
+PASS detachedXmlElement.contains(xmlTextNode) 
+PASS detachedXmlElement.contains(detachedXmlTextNode) 
+PASS detachedXmlElement.contains(xmlComment) 
+PASS detachedXmlElement.contains(foreignComment) 
+PASS detachedXmlElement.contains(detachedForeignComment) 
+PASS detachedXmlElement.contains(detachedXmlComment) 
+PASS detachedXmlElement.contains(foreignDocfrag) 
+PASS detachedXmlElement.contains(xmlDocfrag) 
+PASS detachedXmlElement.contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedForeignTextNode.contains(null) 
</span><del>-PASS detachedForeignTextNode.compareDocumentPosition(paras[0]) 
-PASS detachedForeignTextNode.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedForeignTextNode.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedForeignTextNode.compareDocumentPosition(foreignPara1) 
-PASS detachedForeignTextNode.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedPara1) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedForeignTextNode.compareDocumentPosition(document) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedDiv) 
-PASS detachedForeignTextNode.compareDocumentPosition(foreignDoc) 
-PASS detachedForeignTextNode.compareDocumentPosition(foreignPara2) 
-PASS detachedForeignTextNode.compareDocumentPosition(xmlDoc) 
-PASS detachedForeignTextNode.compareDocumentPosition(xmlElement) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedTextNode) 
-PASS detachedForeignTextNode.compareDocumentPosition(foreignTextNode) 
-PASS detachedForeignTextNode.compareDocumentPosition(processingInstruction) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedForeignTextNode.compareDocumentPosition(comment) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedComment) 
-PASS detachedForeignTextNode.compareDocumentPosition(docfrag) 
-PASS detachedForeignTextNode.compareDocumentPosition(doctype) 
-PASS detachedForeignTextNode.compareDocumentPosition(foreignDoctype) 
-PASS detachedForeignTextNode.compareDocumentPosition(paras[1]) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedPara2) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedForeignTextNode.compareDocumentPosition(testDiv) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedXmlElement) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedForeignTextNode.compareDocumentPosition(xmlTextNode) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedForeignTextNode.compareDocumentPosition(xmlComment) 
-PASS detachedForeignTextNode.compareDocumentPosition(foreignComment) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedForeignComment) 
-PASS detachedForeignTextNode.compareDocumentPosition(detachedXmlComment) 
-PASS detachedForeignTextNode.compareDocumentPosition(foreignDocfrag) 
-PASS detachedForeignTextNode.compareDocumentPosition(xmlDocfrag) 
-PASS detachedForeignTextNode.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedForeignTextNode.contains(paras[0]) 
+PASS detachedForeignTextNode.contains(paras[0].firstChild) 
+PASS detachedForeignTextNode.contains(paras[1].firstChild) 
+PASS detachedForeignTextNode.contains(foreignPara1) 
+PASS detachedForeignTextNode.contains(foreignPara1.firstChild) 
+PASS detachedForeignTextNode.contains(detachedPara1) 
+PASS detachedForeignTextNode.contains(detachedPara1.firstChild) 
+PASS detachedForeignTextNode.contains(document) 
+PASS detachedForeignTextNode.contains(detachedDiv) 
+PASS detachedForeignTextNode.contains(foreignDoc) 
+PASS detachedForeignTextNode.contains(foreignPara2) 
+PASS detachedForeignTextNode.contains(xmlDoc) 
+PASS detachedForeignTextNode.contains(xmlElement) 
+PASS detachedForeignTextNode.contains(detachedTextNode) 
+PASS detachedForeignTextNode.contains(foreignTextNode) 
+PASS detachedForeignTextNode.contains(processingInstruction) 
+PASS detachedForeignTextNode.contains(detachedProcessingInstruction) 
+PASS detachedForeignTextNode.contains(comment) 
+PASS detachedForeignTextNode.contains(detachedComment) 
+PASS detachedForeignTextNode.contains(docfrag) 
+PASS detachedForeignTextNode.contains(doctype) 
+PASS detachedForeignTextNode.contains(foreignDoctype) 
+PASS detachedForeignTextNode.contains(paras[1]) 
+PASS detachedForeignTextNode.contains(detachedPara2) 
+PASS detachedForeignTextNode.contains(detachedPara2.firstChild) 
+PASS detachedForeignTextNode.contains(testDiv) 
+PASS detachedForeignTextNode.contains(detachedXmlElement) 
+PASS detachedForeignTextNode.contains(detachedForeignTextNode) 
+PASS detachedForeignTextNode.contains(xmlTextNode) 
+PASS detachedForeignTextNode.contains(detachedXmlTextNode) 
+PASS detachedForeignTextNode.contains(xmlComment) 
+PASS detachedForeignTextNode.contains(foreignComment) 
+PASS detachedForeignTextNode.contains(detachedForeignComment) 
+PASS detachedForeignTextNode.contains(detachedXmlComment) 
+PASS detachedForeignTextNode.contains(foreignDocfrag) 
+PASS detachedForeignTextNode.contains(xmlDocfrag) 
+PASS detachedForeignTextNode.contains(xmlDoctype) 
</ins><span class="cx"> PASS xmlTextNode.contains(null) 
</span><del>-PASS xmlTextNode.compareDocumentPosition(paras[0]) 
-PASS xmlTextNode.compareDocumentPosition(paras[0].firstChild) 
-PASS xmlTextNode.compareDocumentPosition(paras[1].firstChild) 
-PASS xmlTextNode.compareDocumentPosition(foreignPara1) 
-PASS xmlTextNode.compareDocumentPosition(foreignPara1.firstChild) 
-PASS xmlTextNode.compareDocumentPosition(detachedPara1) 
-PASS xmlTextNode.compareDocumentPosition(detachedPara1.firstChild) 
-PASS xmlTextNode.compareDocumentPosition(document) 
-PASS xmlTextNode.compareDocumentPosition(detachedDiv) 
-PASS xmlTextNode.compareDocumentPosition(foreignDoc) 
-PASS xmlTextNode.compareDocumentPosition(foreignPara2) 
-PASS xmlTextNode.compareDocumentPosition(xmlDoc) 
-PASS xmlTextNode.compareDocumentPosition(xmlElement) 
-PASS xmlTextNode.compareDocumentPosition(detachedTextNode) 
-PASS xmlTextNode.compareDocumentPosition(foreignTextNode) 
-PASS xmlTextNode.compareDocumentPosition(processingInstruction) 
-PASS xmlTextNode.compareDocumentPosition(detachedProcessingInstruction) 
-PASS xmlTextNode.compareDocumentPosition(comment) 
-PASS xmlTextNode.compareDocumentPosition(detachedComment) 
-PASS xmlTextNode.compareDocumentPosition(docfrag) 
-PASS xmlTextNode.compareDocumentPosition(doctype) 
-PASS xmlTextNode.compareDocumentPosition(foreignDoctype) 
-PASS xmlTextNode.compareDocumentPosition(paras[1]) 
-PASS xmlTextNode.compareDocumentPosition(detachedPara2) 
-PASS xmlTextNode.compareDocumentPosition(detachedPara2.firstChild) 
-PASS xmlTextNode.compareDocumentPosition(testDiv) 
-PASS xmlTextNode.compareDocumentPosition(detachedXmlElement) 
-PASS xmlTextNode.compareDocumentPosition(detachedForeignTextNode) 
-PASS xmlTextNode.compareDocumentPosition(xmlTextNode) 
-PASS xmlTextNode.compareDocumentPosition(detachedXmlTextNode) 
-PASS xmlTextNode.compareDocumentPosition(xmlComment) 
-PASS xmlTextNode.compareDocumentPosition(foreignComment) 
-PASS xmlTextNode.compareDocumentPosition(detachedForeignComment) 
-PASS xmlTextNode.compareDocumentPosition(detachedXmlComment) 
-PASS xmlTextNode.compareDocumentPosition(foreignDocfrag) 
-PASS xmlTextNode.compareDocumentPosition(xmlDocfrag) 
-PASS xmlTextNode.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS xmlTextNode.contains(paras[0]) 
+PASS xmlTextNode.contains(paras[0].firstChild) 
+PASS xmlTextNode.contains(paras[1].firstChild) 
+PASS xmlTextNode.contains(foreignPara1) 
+PASS xmlTextNode.contains(foreignPara1.firstChild) 
+PASS xmlTextNode.contains(detachedPara1) 
+PASS xmlTextNode.contains(detachedPara1.firstChild) 
+PASS xmlTextNode.contains(document) 
+PASS xmlTextNode.contains(detachedDiv) 
+PASS xmlTextNode.contains(foreignDoc) 
+PASS xmlTextNode.contains(foreignPara2) 
+PASS xmlTextNode.contains(xmlDoc) 
+PASS xmlTextNode.contains(xmlElement) 
+PASS xmlTextNode.contains(detachedTextNode) 
+PASS xmlTextNode.contains(foreignTextNode) 
+PASS xmlTextNode.contains(processingInstruction) 
+PASS xmlTextNode.contains(detachedProcessingInstruction) 
+PASS xmlTextNode.contains(comment) 
+PASS xmlTextNode.contains(detachedComment) 
+PASS xmlTextNode.contains(docfrag) 
+PASS xmlTextNode.contains(doctype) 
+PASS xmlTextNode.contains(foreignDoctype) 
+PASS xmlTextNode.contains(paras[1]) 
+PASS xmlTextNode.contains(detachedPara2) 
+PASS xmlTextNode.contains(detachedPara2.firstChild) 
+PASS xmlTextNode.contains(testDiv) 
+PASS xmlTextNode.contains(detachedXmlElement) 
+PASS xmlTextNode.contains(detachedForeignTextNode) 
+PASS xmlTextNode.contains(xmlTextNode) 
+PASS xmlTextNode.contains(detachedXmlTextNode) 
+PASS xmlTextNode.contains(xmlComment) 
+PASS xmlTextNode.contains(foreignComment) 
+PASS xmlTextNode.contains(detachedForeignComment) 
+PASS xmlTextNode.contains(detachedXmlComment) 
+PASS xmlTextNode.contains(foreignDocfrag) 
+PASS xmlTextNode.contains(xmlDocfrag) 
+PASS xmlTextNode.contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedXmlTextNode.contains(null) 
</span><del>-PASS detachedXmlTextNode.compareDocumentPosition(paras[0]) 
-PASS detachedXmlTextNode.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedXmlTextNode.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedXmlTextNode.compareDocumentPosition(foreignPara1) 
-PASS detachedXmlTextNode.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedPara1) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedXmlTextNode.compareDocumentPosition(document) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedDiv) 
-PASS detachedXmlTextNode.compareDocumentPosition(foreignDoc) 
-PASS detachedXmlTextNode.compareDocumentPosition(foreignPara2) 
-PASS detachedXmlTextNode.compareDocumentPosition(xmlDoc) 
-PASS detachedXmlTextNode.compareDocumentPosition(xmlElement) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedTextNode) 
-PASS detachedXmlTextNode.compareDocumentPosition(foreignTextNode) 
-PASS detachedXmlTextNode.compareDocumentPosition(processingInstruction) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedXmlTextNode.compareDocumentPosition(comment) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedComment) 
-PASS detachedXmlTextNode.compareDocumentPosition(docfrag) 
-PASS detachedXmlTextNode.compareDocumentPosition(doctype) 
-PASS detachedXmlTextNode.compareDocumentPosition(foreignDoctype) 
-PASS detachedXmlTextNode.compareDocumentPosition(paras[1]) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedPara2) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedXmlTextNode.compareDocumentPosition(testDiv) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedXmlElement) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedXmlTextNode.compareDocumentPosition(xmlTextNode) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedXmlTextNode.compareDocumentPosition(xmlComment) 
-PASS detachedXmlTextNode.compareDocumentPosition(foreignComment) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedForeignComment) 
-PASS detachedXmlTextNode.compareDocumentPosition(detachedXmlComment) 
-PASS detachedXmlTextNode.compareDocumentPosition(foreignDocfrag) 
-PASS detachedXmlTextNode.compareDocumentPosition(xmlDocfrag) 
-PASS detachedXmlTextNode.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedXmlTextNode.contains(paras[0]) 
+PASS detachedXmlTextNode.contains(paras[0].firstChild) 
+PASS detachedXmlTextNode.contains(paras[1].firstChild) 
+PASS detachedXmlTextNode.contains(foreignPara1) 
+PASS detachedXmlTextNode.contains(foreignPara1.firstChild) 
+PASS detachedXmlTextNode.contains(detachedPara1) 
+PASS detachedXmlTextNode.contains(detachedPara1.firstChild) 
+PASS detachedXmlTextNode.contains(document) 
+PASS detachedXmlTextNode.contains(detachedDiv) 
+PASS detachedXmlTextNode.contains(foreignDoc) 
+PASS detachedXmlTextNode.contains(foreignPara2) 
+PASS detachedXmlTextNode.contains(xmlDoc) 
+PASS detachedXmlTextNode.contains(xmlElement) 
+PASS detachedXmlTextNode.contains(detachedTextNode) 
+PASS detachedXmlTextNode.contains(foreignTextNode) 
+PASS detachedXmlTextNode.contains(processingInstruction) 
+PASS detachedXmlTextNode.contains(detachedProcessingInstruction) 
+PASS detachedXmlTextNode.contains(comment) 
+PASS detachedXmlTextNode.contains(detachedComment) 
+PASS detachedXmlTextNode.contains(docfrag) 
+PASS detachedXmlTextNode.contains(doctype) 
+PASS detachedXmlTextNode.contains(foreignDoctype) 
+PASS detachedXmlTextNode.contains(paras[1]) 
+PASS detachedXmlTextNode.contains(detachedPara2) 
+PASS detachedXmlTextNode.contains(detachedPara2.firstChild) 
+PASS detachedXmlTextNode.contains(testDiv) 
+PASS detachedXmlTextNode.contains(detachedXmlElement) 
+PASS detachedXmlTextNode.contains(detachedForeignTextNode) 
+PASS detachedXmlTextNode.contains(xmlTextNode) 
+PASS detachedXmlTextNode.contains(detachedXmlTextNode) 
+PASS detachedXmlTextNode.contains(xmlComment) 
+PASS detachedXmlTextNode.contains(foreignComment) 
+PASS detachedXmlTextNode.contains(detachedForeignComment) 
+PASS detachedXmlTextNode.contains(detachedXmlComment) 
+PASS detachedXmlTextNode.contains(foreignDocfrag) 
+PASS detachedXmlTextNode.contains(xmlDocfrag) 
+PASS detachedXmlTextNode.contains(xmlDoctype) 
</ins><span class="cx"> PASS xmlComment.contains(null) 
</span><del>-PASS xmlComment.compareDocumentPosition(paras[0]) 
-PASS xmlComment.compareDocumentPosition(paras[0].firstChild) 
-PASS xmlComment.compareDocumentPosition(paras[1].firstChild) 
-PASS xmlComment.compareDocumentPosition(foreignPara1) 
-PASS xmlComment.compareDocumentPosition(foreignPara1.firstChild) 
-PASS xmlComment.compareDocumentPosition(detachedPara1) 
-PASS xmlComment.compareDocumentPosition(detachedPara1.firstChild) 
-PASS xmlComment.compareDocumentPosition(document) 
-PASS xmlComment.compareDocumentPosition(detachedDiv) 
-PASS xmlComment.compareDocumentPosition(foreignDoc) 
-PASS xmlComment.compareDocumentPosition(foreignPara2) 
-PASS xmlComment.compareDocumentPosition(xmlDoc) 
-PASS xmlComment.compareDocumentPosition(xmlElement) 
-PASS xmlComment.compareDocumentPosition(detachedTextNode) 
-PASS xmlComment.compareDocumentPosition(foreignTextNode) 
-PASS xmlComment.compareDocumentPosition(processingInstruction) 
-PASS xmlComment.compareDocumentPosition(detachedProcessingInstruction) 
-PASS xmlComment.compareDocumentPosition(comment) 
-PASS xmlComment.compareDocumentPosition(detachedComment) 
-PASS xmlComment.compareDocumentPosition(docfrag) 
-PASS xmlComment.compareDocumentPosition(doctype) 
-PASS xmlComment.compareDocumentPosition(foreignDoctype) 
-PASS xmlComment.compareDocumentPosition(paras[1]) 
-PASS xmlComment.compareDocumentPosition(detachedPara2) 
-PASS xmlComment.compareDocumentPosition(detachedPara2.firstChild) 
-PASS xmlComment.compareDocumentPosition(testDiv) 
-PASS xmlComment.compareDocumentPosition(detachedXmlElement) 
-PASS xmlComment.compareDocumentPosition(detachedForeignTextNode) 
-PASS xmlComment.compareDocumentPosition(xmlTextNode) 
-PASS xmlComment.compareDocumentPosition(detachedXmlTextNode) 
-PASS xmlComment.compareDocumentPosition(xmlComment) 
-PASS xmlComment.compareDocumentPosition(foreignComment) 
-PASS xmlComment.compareDocumentPosition(detachedForeignComment) 
-PASS xmlComment.compareDocumentPosition(detachedXmlComment) 
-PASS xmlComment.compareDocumentPosition(foreignDocfrag) 
-PASS xmlComment.compareDocumentPosition(xmlDocfrag) 
-PASS xmlComment.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS xmlComment.contains(paras[0]) 
+PASS xmlComment.contains(paras[0].firstChild) 
+PASS xmlComment.contains(paras[1].firstChild) 
+PASS xmlComment.contains(foreignPara1) 
+PASS xmlComment.contains(foreignPara1.firstChild) 
+PASS xmlComment.contains(detachedPara1) 
+PASS xmlComment.contains(detachedPara1.firstChild) 
+PASS xmlComment.contains(document) 
+PASS xmlComment.contains(detachedDiv) 
+PASS xmlComment.contains(foreignDoc) 
+PASS xmlComment.contains(foreignPara2) 
+PASS xmlComment.contains(xmlDoc) 
+PASS xmlComment.contains(xmlElement) 
+PASS xmlComment.contains(detachedTextNode) 
+PASS xmlComment.contains(foreignTextNode) 
+PASS xmlComment.contains(processingInstruction) 
+PASS xmlComment.contains(detachedProcessingInstruction) 
+PASS xmlComment.contains(comment) 
+PASS xmlComment.contains(detachedComment) 
+PASS xmlComment.contains(docfrag) 
+PASS xmlComment.contains(doctype) 
+PASS xmlComment.contains(foreignDoctype) 
+PASS xmlComment.contains(paras[1]) 
+PASS xmlComment.contains(detachedPara2) 
+PASS xmlComment.contains(detachedPara2.firstChild) 
+PASS xmlComment.contains(testDiv) 
+PASS xmlComment.contains(detachedXmlElement) 
+PASS xmlComment.contains(detachedForeignTextNode) 
+PASS xmlComment.contains(xmlTextNode) 
+PASS xmlComment.contains(detachedXmlTextNode) 
+PASS xmlComment.contains(xmlComment) 
+PASS xmlComment.contains(foreignComment) 
+PASS xmlComment.contains(detachedForeignComment) 
+PASS xmlComment.contains(detachedXmlComment) 
+PASS xmlComment.contains(foreignDocfrag) 
+PASS xmlComment.contains(xmlDocfrag) 
+PASS xmlComment.contains(xmlDoctype) 
</ins><span class="cx"> PASS foreignComment.contains(null) 
</span><del>-PASS foreignComment.compareDocumentPosition(paras[0]) 
-PASS foreignComment.compareDocumentPosition(paras[0].firstChild) 
-PASS foreignComment.compareDocumentPosition(paras[1].firstChild) 
-PASS foreignComment.compareDocumentPosition(foreignPara1) 
-PASS foreignComment.compareDocumentPosition(foreignPara1.firstChild) 
-PASS foreignComment.compareDocumentPosition(detachedPara1) 
-PASS foreignComment.compareDocumentPosition(detachedPara1.firstChild) 
-PASS foreignComment.compareDocumentPosition(document) 
-PASS foreignComment.compareDocumentPosition(detachedDiv) 
-PASS foreignComment.compareDocumentPosition(foreignDoc) 
-PASS foreignComment.compareDocumentPosition(foreignPara2) 
-PASS foreignComment.compareDocumentPosition(xmlDoc) 
-PASS foreignComment.compareDocumentPosition(xmlElement) 
-PASS foreignComment.compareDocumentPosition(detachedTextNode) 
-PASS foreignComment.compareDocumentPosition(foreignTextNode) 
-PASS foreignComment.compareDocumentPosition(processingInstruction) 
-PASS foreignComment.compareDocumentPosition(detachedProcessingInstruction) 
-PASS foreignComment.compareDocumentPosition(comment) 
-PASS foreignComment.compareDocumentPosition(detachedComment) 
-PASS foreignComment.compareDocumentPosition(docfrag) 
-PASS foreignComment.compareDocumentPosition(doctype) 
-PASS foreignComment.compareDocumentPosition(foreignDoctype) 
-PASS foreignComment.compareDocumentPosition(paras[1]) 
-PASS foreignComment.compareDocumentPosition(detachedPara2) 
-PASS foreignComment.compareDocumentPosition(detachedPara2.firstChild) 
-PASS foreignComment.compareDocumentPosition(testDiv) 
-PASS foreignComment.compareDocumentPosition(detachedXmlElement) 
-PASS foreignComment.compareDocumentPosition(detachedForeignTextNode) 
-PASS foreignComment.compareDocumentPosition(xmlTextNode) 
-PASS foreignComment.compareDocumentPosition(detachedXmlTextNode) 
-PASS foreignComment.compareDocumentPosition(xmlComment) 
-PASS foreignComment.compareDocumentPosition(foreignComment) 
-PASS foreignComment.compareDocumentPosition(detachedForeignComment) 
-PASS foreignComment.compareDocumentPosition(detachedXmlComment) 
-PASS foreignComment.compareDocumentPosition(foreignDocfrag) 
-PASS foreignComment.compareDocumentPosition(xmlDocfrag) 
-PASS foreignComment.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS foreignComment.contains(paras[0]) 
+PASS foreignComment.contains(paras[0].firstChild) 
+PASS foreignComment.contains(paras[1].firstChild) 
+PASS foreignComment.contains(foreignPara1) 
+PASS foreignComment.contains(foreignPara1.firstChild) 
+PASS foreignComment.contains(detachedPara1) 
+PASS foreignComment.contains(detachedPara1.firstChild) 
+PASS foreignComment.contains(document) 
+PASS foreignComment.contains(detachedDiv) 
+PASS foreignComment.contains(foreignDoc) 
+PASS foreignComment.contains(foreignPara2) 
+PASS foreignComment.contains(xmlDoc) 
+PASS foreignComment.contains(xmlElement) 
+PASS foreignComment.contains(detachedTextNode) 
+PASS foreignComment.contains(foreignTextNode) 
+PASS foreignComment.contains(processingInstruction) 
+PASS foreignComment.contains(detachedProcessingInstruction) 
+PASS foreignComment.contains(comment) 
+PASS foreignComment.contains(detachedComment) 
+PASS foreignComment.contains(docfrag) 
+PASS foreignComment.contains(doctype) 
+PASS foreignComment.contains(foreignDoctype) 
+PASS foreignComment.contains(paras[1]) 
+PASS foreignComment.contains(detachedPara2) 
+PASS foreignComment.contains(detachedPara2.firstChild) 
+PASS foreignComment.contains(testDiv) 
+PASS foreignComment.contains(detachedXmlElement) 
+PASS foreignComment.contains(detachedForeignTextNode) 
+PASS foreignComment.contains(xmlTextNode) 
+PASS foreignComment.contains(detachedXmlTextNode) 
+PASS foreignComment.contains(xmlComment) 
+PASS foreignComment.contains(foreignComment) 
+PASS foreignComment.contains(detachedForeignComment) 
+PASS foreignComment.contains(detachedXmlComment) 
+PASS foreignComment.contains(foreignDocfrag) 
+PASS foreignComment.contains(xmlDocfrag) 
+PASS foreignComment.contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedForeignComment.contains(null) 
</span><del>-PASS detachedForeignComment.compareDocumentPosition(paras[0]) 
-PASS detachedForeignComment.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedForeignComment.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedForeignComment.compareDocumentPosition(foreignPara1) 
-PASS detachedForeignComment.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedForeignComment.compareDocumentPosition(detachedPara1) 
-PASS detachedForeignComment.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedForeignComment.compareDocumentPosition(document) 
-PASS detachedForeignComment.compareDocumentPosition(detachedDiv) 
-PASS detachedForeignComment.compareDocumentPosition(foreignDoc) 
-PASS detachedForeignComment.compareDocumentPosition(foreignPara2) 
-PASS detachedForeignComment.compareDocumentPosition(xmlDoc) 
-PASS detachedForeignComment.compareDocumentPosition(xmlElement) 
-PASS detachedForeignComment.compareDocumentPosition(detachedTextNode) 
-PASS detachedForeignComment.compareDocumentPosition(foreignTextNode) 
-PASS detachedForeignComment.compareDocumentPosition(processingInstruction) 
-PASS detachedForeignComment.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedForeignComment.compareDocumentPosition(comment) 
-PASS detachedForeignComment.compareDocumentPosition(detachedComment) 
-PASS detachedForeignComment.compareDocumentPosition(docfrag) 
-PASS detachedForeignComment.compareDocumentPosition(doctype) 
-PASS detachedForeignComment.compareDocumentPosition(foreignDoctype) 
-PASS detachedForeignComment.compareDocumentPosition(paras[1]) 
-PASS detachedForeignComment.compareDocumentPosition(detachedPara2) 
-PASS detachedForeignComment.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedForeignComment.compareDocumentPosition(testDiv) 
-PASS detachedForeignComment.compareDocumentPosition(detachedXmlElement) 
-PASS detachedForeignComment.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedForeignComment.compareDocumentPosition(xmlTextNode) 
-PASS detachedForeignComment.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedForeignComment.compareDocumentPosition(xmlComment) 
-PASS detachedForeignComment.compareDocumentPosition(foreignComment) 
-PASS detachedForeignComment.compareDocumentPosition(detachedForeignComment) 
-PASS detachedForeignComment.compareDocumentPosition(detachedXmlComment) 
-PASS detachedForeignComment.compareDocumentPosition(foreignDocfrag) 
-PASS detachedForeignComment.compareDocumentPosition(xmlDocfrag) 
-PASS detachedForeignComment.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedForeignComment.contains(paras[0]) 
+PASS detachedForeignComment.contains(paras[0].firstChild) 
+PASS detachedForeignComment.contains(paras[1].firstChild) 
+PASS detachedForeignComment.contains(foreignPara1) 
+PASS detachedForeignComment.contains(foreignPara1.firstChild) 
+PASS detachedForeignComment.contains(detachedPara1) 
+PASS detachedForeignComment.contains(detachedPara1.firstChild) 
+PASS detachedForeignComment.contains(document) 
+PASS detachedForeignComment.contains(detachedDiv) 
+PASS detachedForeignComment.contains(foreignDoc) 
+PASS detachedForeignComment.contains(foreignPara2) 
+PASS detachedForeignComment.contains(xmlDoc) 
+PASS detachedForeignComment.contains(xmlElement) 
+PASS detachedForeignComment.contains(detachedTextNode) 
+PASS detachedForeignComment.contains(foreignTextNode) 
+PASS detachedForeignComment.contains(processingInstruction) 
+PASS detachedForeignComment.contains(detachedProcessingInstruction) 
+PASS detachedForeignComment.contains(comment) 
+PASS detachedForeignComment.contains(detachedComment) 
+PASS detachedForeignComment.contains(docfrag) 
+PASS detachedForeignComment.contains(doctype) 
+PASS detachedForeignComment.contains(foreignDoctype) 
+PASS detachedForeignComment.contains(paras[1]) 
+PASS detachedForeignComment.contains(detachedPara2) 
+PASS detachedForeignComment.contains(detachedPara2.firstChild) 
+PASS detachedForeignComment.contains(testDiv) 
+PASS detachedForeignComment.contains(detachedXmlElement) 
+PASS detachedForeignComment.contains(detachedForeignTextNode) 
+PASS detachedForeignComment.contains(xmlTextNode) 
+PASS detachedForeignComment.contains(detachedXmlTextNode) 
+PASS detachedForeignComment.contains(xmlComment) 
+PASS detachedForeignComment.contains(foreignComment) 
+PASS detachedForeignComment.contains(detachedForeignComment) 
+PASS detachedForeignComment.contains(detachedXmlComment) 
+PASS detachedForeignComment.contains(foreignDocfrag) 
+PASS detachedForeignComment.contains(xmlDocfrag) 
+PASS detachedForeignComment.contains(xmlDoctype) 
</ins><span class="cx"> PASS detachedXmlComment.contains(null) 
</span><del>-PASS detachedXmlComment.compareDocumentPosition(paras[0]) 
-PASS detachedXmlComment.compareDocumentPosition(paras[0].firstChild) 
-PASS detachedXmlComment.compareDocumentPosition(paras[1].firstChild) 
-PASS detachedXmlComment.compareDocumentPosition(foreignPara1) 
-PASS detachedXmlComment.compareDocumentPosition(foreignPara1.firstChild) 
-PASS detachedXmlComment.compareDocumentPosition(detachedPara1) 
-PASS detachedXmlComment.compareDocumentPosition(detachedPara1.firstChild) 
-PASS detachedXmlComment.compareDocumentPosition(document) 
-PASS detachedXmlComment.compareDocumentPosition(detachedDiv) 
-PASS detachedXmlComment.compareDocumentPosition(foreignDoc) 
-PASS detachedXmlComment.compareDocumentPosition(foreignPara2) 
-PASS detachedXmlComment.compareDocumentPosition(xmlDoc) 
-PASS detachedXmlComment.compareDocumentPosition(xmlElement) 
-PASS detachedXmlComment.compareDocumentPosition(detachedTextNode) 
-PASS detachedXmlComment.compareDocumentPosition(foreignTextNode) 
-PASS detachedXmlComment.compareDocumentPosition(processingInstruction) 
-PASS detachedXmlComment.compareDocumentPosition(detachedProcessingInstruction) 
-PASS detachedXmlComment.compareDocumentPosition(comment) 
-PASS detachedXmlComment.compareDocumentPosition(detachedComment) 
-PASS detachedXmlComment.compareDocumentPosition(docfrag) 
-PASS detachedXmlComment.compareDocumentPosition(doctype) 
-PASS detachedXmlComment.compareDocumentPosition(foreignDoctype) 
-PASS detachedXmlComment.compareDocumentPosition(paras[1]) 
-PASS detachedXmlComment.compareDocumentPosition(detachedPara2) 
-PASS detachedXmlComment.compareDocumentPosition(detachedPara2.firstChild) 
-PASS detachedXmlComment.compareDocumentPosition(testDiv) 
-PASS detachedXmlComment.compareDocumentPosition(detachedXmlElement) 
-PASS detachedXmlComment.compareDocumentPosition(detachedForeignTextNode) 
-PASS detachedXmlComment.compareDocumentPosition(xmlTextNode) 
-PASS detachedXmlComment.compareDocumentPosition(detachedXmlTextNode) 
-PASS detachedXmlComment.compareDocumentPosition(xmlComment) 
-PASS detachedXmlComment.compareDocumentPosition(foreignComment) 
-PASS detachedXmlComment.compareDocumentPosition(detachedForeignComment) 
-PASS detachedXmlComment.compareDocumentPosition(detachedXmlComment) 
-PASS detachedXmlComment.compareDocumentPosition(foreignDocfrag) 
-PASS detachedXmlComment.compareDocumentPosition(xmlDocfrag) 
-PASS detachedXmlComment.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS detachedXmlComment.contains(paras[0]) 
+PASS detachedXmlComment.contains(paras[0].firstChild) 
+PASS detachedXmlComment.contains(paras[1].firstChild) 
+PASS detachedXmlComment.contains(foreignPara1) 
+PASS detachedXmlComment.contains(foreignPara1.firstChild) 
+PASS detachedXmlComment.contains(detachedPara1) 
+PASS detachedXmlComment.contains(detachedPara1.firstChild) 
+PASS detachedXmlComment.contains(document) 
+PASS detachedXmlComment.contains(detachedDiv) 
+PASS detachedXmlComment.contains(foreignDoc) 
+PASS detachedXmlComment.contains(foreignPara2) 
+PASS detachedXmlComment.contains(xmlDoc) 
+PASS detachedXmlComment.contains(xmlElement) 
+PASS detachedXmlComment.contains(detachedTextNode) 
+PASS detachedXmlComment.contains(foreignTextNode) 
+PASS detachedXmlComment.contains(processingInstruction) 
+PASS detachedXmlComment.contains(detachedProcessingInstruction) 
+PASS detachedXmlComment.contains(comment) 
+PASS detachedXmlComment.contains(detachedComment) 
+PASS detachedXmlComment.contains(docfrag) 
+PASS detachedXmlComment.contains(doctype) 
+PASS detachedXmlComment.contains(foreignDoctype) 
+PASS detachedXmlComment.contains(paras[1]) 
+PASS detachedXmlComment.contains(detachedPara2) 
+PASS detachedXmlComment.contains(detachedPara2.firstChild) 
+PASS detachedXmlComment.contains(testDiv) 
+PASS detachedXmlComment.contains(detachedXmlElement) 
+PASS detachedXmlComment.contains(detachedForeignTextNode) 
+PASS detachedXmlComment.contains(xmlTextNode) 
+PASS detachedXmlComment.contains(detachedXmlTextNode) 
+PASS detachedXmlComment.contains(xmlComment) 
+PASS detachedXmlComment.contains(foreignComment) 
+PASS detachedXmlComment.contains(detachedForeignComment) 
+PASS detachedXmlComment.contains(detachedXmlComment) 
+PASS detachedXmlComment.contains(foreignDocfrag) 
+PASS detachedXmlComment.contains(xmlDocfrag) 
+PASS detachedXmlComment.contains(xmlDoctype) 
</ins><span class="cx"> PASS foreignDocfrag.contains(null) 
</span><del>-PASS foreignDocfrag.compareDocumentPosition(paras[0]) 
-PASS foreignDocfrag.compareDocumentPosition(paras[0].firstChild) 
-PASS foreignDocfrag.compareDocumentPosition(paras[1].firstChild) 
-PASS foreignDocfrag.compareDocumentPosition(foreignPara1) 
-PASS foreignDocfrag.compareDocumentPosition(foreignPara1.firstChild) 
-PASS foreignDocfrag.compareDocumentPosition(detachedPara1) 
-PASS foreignDocfrag.compareDocumentPosition(detachedPara1.firstChild) 
-PASS foreignDocfrag.compareDocumentPosition(document) 
-PASS foreignDocfrag.compareDocumentPosition(detachedDiv) 
-PASS foreignDocfrag.compareDocumentPosition(foreignDoc) 
-PASS foreignDocfrag.compareDocumentPosition(foreignPara2) 
-PASS foreignDocfrag.compareDocumentPosition(xmlDoc) 
-PASS foreignDocfrag.compareDocumentPosition(xmlElement) 
-PASS foreignDocfrag.compareDocumentPosition(detachedTextNode) 
-PASS foreignDocfrag.compareDocumentPosition(foreignTextNode) 
-PASS foreignDocfrag.compareDocumentPosition(processingInstruction) 
-PASS foreignDocfrag.compareDocumentPosition(detachedProcessingInstruction) 
-PASS foreignDocfrag.compareDocumentPosition(comment) 
-PASS foreignDocfrag.compareDocumentPosition(detachedComment) 
-PASS foreignDocfrag.compareDocumentPosition(docfrag) 
-PASS foreignDocfrag.compareDocumentPosition(doctype) 
-PASS foreignDocfrag.compareDocumentPosition(foreignDoctype) 
-PASS foreignDocfrag.compareDocumentPosition(paras[1]) 
-PASS foreignDocfrag.compareDocumentPosition(detachedPara2) 
-PASS foreignDocfrag.compareDocumentPosition(detachedPara2.firstChild) 
-PASS foreignDocfrag.compareDocumentPosition(testDiv) 
-PASS foreignDocfrag.compareDocumentPosition(detachedXmlElement) 
-PASS foreignDocfrag.compareDocumentPosition(detachedForeignTextNode) 
-PASS foreignDocfrag.compareDocumentPosition(xmlTextNode) 
-PASS foreignDocfrag.compareDocumentPosition(detachedXmlTextNode) 
-PASS foreignDocfrag.compareDocumentPosition(xmlComment) 
-PASS foreignDocfrag.compareDocumentPosition(foreignComment) 
-PASS foreignDocfrag.compareDocumentPosition(detachedForeignComment) 
-PASS foreignDocfrag.compareDocumentPosition(detachedXmlComment) 
-PASS foreignDocfrag.compareDocumentPosition(foreignDocfrag) 
-PASS foreignDocfrag.compareDocumentPosition(xmlDocfrag) 
-PASS foreignDocfrag.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS foreignDocfrag.contains(paras[0]) 
+PASS foreignDocfrag.contains(paras[0].firstChild) 
+PASS foreignDocfrag.contains(paras[1].firstChild) 
+PASS foreignDocfrag.contains(foreignPara1) 
+PASS foreignDocfrag.contains(foreignPara1.firstChild) 
+PASS foreignDocfrag.contains(detachedPara1) 
+PASS foreignDocfrag.contains(detachedPara1.firstChild) 
+PASS foreignDocfrag.contains(document) 
+PASS foreignDocfrag.contains(detachedDiv) 
+PASS foreignDocfrag.contains(foreignDoc) 
+PASS foreignDocfrag.contains(foreignPara2) 
+PASS foreignDocfrag.contains(xmlDoc) 
+PASS foreignDocfrag.contains(xmlElement) 
+PASS foreignDocfrag.contains(detachedTextNode) 
+PASS foreignDocfrag.contains(foreignTextNode) 
+PASS foreignDocfrag.contains(processingInstruction) 
+PASS foreignDocfrag.contains(detachedProcessingInstruction) 
+PASS foreignDocfrag.contains(comment) 
+PASS foreignDocfrag.contains(detachedComment) 
+PASS foreignDocfrag.contains(docfrag) 
+PASS foreignDocfrag.contains(doctype) 
+PASS foreignDocfrag.contains(foreignDoctype) 
+PASS foreignDocfrag.contains(paras[1]) 
+PASS foreignDocfrag.contains(detachedPara2) 
+PASS foreignDocfrag.contains(detachedPara2.firstChild) 
+PASS foreignDocfrag.contains(testDiv) 
+PASS foreignDocfrag.contains(detachedXmlElement) 
+PASS foreignDocfrag.contains(detachedForeignTextNode) 
+PASS foreignDocfrag.contains(xmlTextNode) 
+PASS foreignDocfrag.contains(detachedXmlTextNode) 
+PASS foreignDocfrag.contains(xmlComment) 
+PASS foreignDocfrag.contains(foreignComment) 
+PASS foreignDocfrag.contains(detachedForeignComment) 
+PASS foreignDocfrag.contains(detachedXmlComment) 
+PASS foreignDocfrag.contains(foreignDocfrag) 
+PASS foreignDocfrag.contains(xmlDocfrag) 
+PASS foreignDocfrag.contains(xmlDoctype) 
</ins><span class="cx"> PASS xmlDocfrag.contains(null) 
</span><del>-PASS xmlDocfrag.compareDocumentPosition(paras[0]) 
-PASS xmlDocfrag.compareDocumentPosition(paras[0].firstChild) 
-PASS xmlDocfrag.compareDocumentPosition(paras[1].firstChild) 
-PASS xmlDocfrag.compareDocumentPosition(foreignPara1) 
-PASS xmlDocfrag.compareDocumentPosition(foreignPara1.firstChild) 
-PASS xmlDocfrag.compareDocumentPosition(detachedPara1) 
-PASS xmlDocfrag.compareDocumentPosition(detachedPara1.firstChild) 
-PASS xmlDocfrag.compareDocumentPosition(document) 
-PASS xmlDocfrag.compareDocumentPosition(detachedDiv) 
-PASS xmlDocfrag.compareDocumentPosition(foreignDoc) 
-PASS xmlDocfrag.compareDocumentPosition(foreignPara2) 
-PASS xmlDocfrag.compareDocumentPosition(xmlDoc) 
-PASS xmlDocfrag.compareDocumentPosition(xmlElement) 
-PASS xmlDocfrag.compareDocumentPosition(detachedTextNode) 
-PASS xmlDocfrag.compareDocumentPosition(foreignTextNode) 
-PASS xmlDocfrag.compareDocumentPosition(processingInstruction) 
-PASS xmlDocfrag.compareDocumentPosition(detachedProcessingInstruction) 
-PASS xmlDocfrag.compareDocumentPosition(comment) 
-PASS xmlDocfrag.compareDocumentPosition(detachedComment) 
-PASS xmlDocfrag.compareDocumentPosition(docfrag) 
-PASS xmlDocfrag.compareDocumentPosition(doctype) 
-PASS xmlDocfrag.compareDocumentPosition(foreignDoctype) 
-PASS xmlDocfrag.compareDocumentPosition(paras[1]) 
-PASS xmlDocfrag.compareDocumentPosition(detachedPara2) 
-PASS xmlDocfrag.compareDocumentPosition(detachedPara2.firstChild) 
-PASS xmlDocfrag.compareDocumentPosition(testDiv) 
-PASS xmlDocfrag.compareDocumentPosition(detachedXmlElement) 
-PASS xmlDocfrag.compareDocumentPosition(detachedForeignTextNode) 
-PASS xmlDocfrag.compareDocumentPosition(xmlTextNode) 
-PASS xmlDocfrag.compareDocumentPosition(detachedXmlTextNode) 
-PASS xmlDocfrag.compareDocumentPosition(xmlComment) 
-PASS xmlDocfrag.compareDocumentPosition(foreignComment) 
-PASS xmlDocfrag.compareDocumentPosition(detachedForeignComment) 
-PASS xmlDocfrag.compareDocumentPosition(detachedXmlComment) 
-PASS xmlDocfrag.compareDocumentPosition(foreignDocfrag) 
-PASS xmlDocfrag.compareDocumentPosition(xmlDocfrag) 
-PASS xmlDocfrag.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS xmlDocfrag.contains(paras[0]) 
+PASS xmlDocfrag.contains(paras[0].firstChild) 
+PASS xmlDocfrag.contains(paras[1].firstChild) 
+PASS xmlDocfrag.contains(foreignPara1) 
+PASS xmlDocfrag.contains(foreignPara1.firstChild) 
+PASS xmlDocfrag.contains(detachedPara1) 
+PASS xmlDocfrag.contains(detachedPara1.firstChild) 
+PASS xmlDocfrag.contains(document) 
+PASS xmlDocfrag.contains(detachedDiv) 
+PASS xmlDocfrag.contains(foreignDoc) 
+PASS xmlDocfrag.contains(foreignPara2) 
+PASS xmlDocfrag.contains(xmlDoc) 
+PASS xmlDocfrag.contains(xmlElement) 
+PASS xmlDocfrag.contains(detachedTextNode) 
+PASS xmlDocfrag.contains(foreignTextNode) 
+PASS xmlDocfrag.contains(processingInstruction) 
+PASS xmlDocfrag.contains(detachedProcessingInstruction) 
+PASS xmlDocfrag.contains(comment) 
+PASS xmlDocfrag.contains(detachedComment) 
+PASS xmlDocfrag.contains(docfrag) 
+PASS xmlDocfrag.contains(doctype) 
+PASS xmlDocfrag.contains(foreignDoctype) 
+PASS xmlDocfrag.contains(paras[1]) 
+PASS xmlDocfrag.contains(detachedPara2) 
+PASS xmlDocfrag.contains(detachedPara2.firstChild) 
+PASS xmlDocfrag.contains(testDiv) 
+PASS xmlDocfrag.contains(detachedXmlElement) 
+PASS xmlDocfrag.contains(detachedForeignTextNode) 
+PASS xmlDocfrag.contains(xmlTextNode) 
+PASS xmlDocfrag.contains(detachedXmlTextNode) 
+PASS xmlDocfrag.contains(xmlComment) 
+PASS xmlDocfrag.contains(foreignComment) 
+PASS xmlDocfrag.contains(detachedForeignComment) 
+PASS xmlDocfrag.contains(detachedXmlComment) 
+PASS xmlDocfrag.contains(foreignDocfrag) 
+PASS xmlDocfrag.contains(xmlDocfrag) 
+PASS xmlDocfrag.contains(xmlDoctype) 
</ins><span class="cx"> PASS xmlDoctype.contains(null) 
</span><del>-PASS xmlDoctype.compareDocumentPosition(paras[0]) 
-PASS xmlDoctype.compareDocumentPosition(paras[0].firstChild) 
-PASS xmlDoctype.compareDocumentPosition(paras[1].firstChild) 
-PASS xmlDoctype.compareDocumentPosition(foreignPara1) 
-PASS xmlDoctype.compareDocumentPosition(foreignPara1.firstChild) 
-PASS xmlDoctype.compareDocumentPosition(detachedPara1) 
-PASS xmlDoctype.compareDocumentPosition(detachedPara1.firstChild) 
-PASS xmlDoctype.compareDocumentPosition(document) 
-PASS xmlDoctype.compareDocumentPosition(detachedDiv) 
-PASS xmlDoctype.compareDocumentPosition(foreignDoc) 
-PASS xmlDoctype.compareDocumentPosition(foreignPara2) 
-PASS xmlDoctype.compareDocumentPosition(xmlDoc) 
-PASS xmlDoctype.compareDocumentPosition(xmlElement) 
-PASS xmlDoctype.compareDocumentPosition(detachedTextNode) 
-PASS xmlDoctype.compareDocumentPosition(foreignTextNode) 
-PASS xmlDoctype.compareDocumentPosition(processingInstruction) 
-PASS xmlDoctype.compareDocumentPosition(detachedProcessingInstruction) 
-PASS xmlDoctype.compareDocumentPosition(comment) 
-PASS xmlDoctype.compareDocumentPosition(detachedComment) 
-PASS xmlDoctype.compareDocumentPosition(docfrag) 
-PASS xmlDoctype.compareDocumentPosition(doctype) 
-PASS xmlDoctype.compareDocumentPosition(foreignDoctype) 
-PASS xmlDoctype.compareDocumentPosition(paras[1]) 
-PASS xmlDoctype.compareDocumentPosition(detachedPara2) 
-PASS xmlDoctype.compareDocumentPosition(detachedPara2.firstChild) 
-PASS xmlDoctype.compareDocumentPosition(testDiv) 
-PASS xmlDoctype.compareDocumentPosition(detachedXmlElement) 
-PASS xmlDoctype.compareDocumentPosition(detachedForeignTextNode) 
-PASS xmlDoctype.compareDocumentPosition(xmlTextNode) 
-PASS xmlDoctype.compareDocumentPosition(detachedXmlTextNode) 
-PASS xmlDoctype.compareDocumentPosition(xmlComment) 
-PASS xmlDoctype.compareDocumentPosition(foreignComment) 
-PASS xmlDoctype.compareDocumentPosition(detachedForeignComment) 
-PASS xmlDoctype.compareDocumentPosition(detachedXmlComment) 
-PASS xmlDoctype.compareDocumentPosition(foreignDocfrag) 
-PASS xmlDoctype.compareDocumentPosition(xmlDocfrag) 
-PASS xmlDoctype.compareDocumentPosition(xmlDoctype) 
</del><ins>+PASS xmlDoctype.contains(paras[0]) 
+PASS xmlDoctype.contains(paras[0].firstChild) 
+PASS xmlDoctype.contains(paras[1].firstChild) 
+PASS xmlDoctype.contains(foreignPara1) 
+PASS xmlDoctype.contains(foreignPara1.firstChild) 
+PASS xmlDoctype.contains(detachedPara1) 
+PASS xmlDoctype.contains(detachedPara1.firstChild) 
+PASS xmlDoctype.contains(document) 
+PASS xmlDoctype.contains(detachedDiv) 
+PASS xmlDoctype.contains(foreignDoc) 
+PASS xmlDoctype.contains(foreignPara2) 
+PASS xmlDoctype.contains(xmlDoc) 
+PASS xmlDoctype.contains(xmlElement) 
+PASS xmlDoctype.contains(detachedTextNode) 
+PASS xmlDoctype.contains(foreignTextNode) 
+PASS xmlDoctype.contains(processingInstruction) 
+PASS xmlDoctype.contains(detachedProcessingInstruction) 
+PASS xmlDoctype.contains(comment) 
+PASS xmlDoctype.contains(detachedComment) 
+PASS xmlDoctype.contains(docfrag) 
+PASS xmlDoctype.contains(doctype) 
+PASS xmlDoctype.contains(foreignDoctype) 
+PASS xmlDoctype.contains(paras[1]) 
+PASS xmlDoctype.contains(detachedPara2) 
+PASS xmlDoctype.contains(detachedPara2.firstChild) 
+PASS xmlDoctype.contains(testDiv) 
+PASS xmlDoctype.contains(detachedXmlElement) 
+PASS xmlDoctype.contains(detachedForeignTextNode) 
+PASS xmlDoctype.contains(xmlTextNode) 
+PASS xmlDoctype.contains(detachedXmlTextNode) 
+PASS xmlDoctype.contains(xmlComment) 
+PASS xmlDoctype.contains(foreignComment) 
+PASS xmlDoctype.contains(detachedForeignComment) 
+PASS xmlDoctype.contains(detachedXmlComment) 
+PASS xmlDoctype.contains(foreignDocfrag) 
+PASS xmlDoctype.contains(xmlDocfrag) 
+PASS xmlDoctype.contains(xmlDoctype) 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomnodesNodecontainshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-contains.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-contains.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Node-contains.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx">       } else {
</span><span class="cx">         assert_false(reference.contains(other));
</span><span class="cx">       }
</span><del>-    }, referenceName + &quot;.compareDocumentPosition(&quot; + otherName + &quot;)&quot;);
</del><ins>+    }, referenceName + &quot;.contains(&quot; + otherName + &quot;)&quot;);
</ins><span class="cx">   });
</span><span class="cx"> });
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsappendChildexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendChild-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendChild-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendChild-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,72 @@
</span><ins>+
+PASS testDiv.appendChild(testDiv.lastChild), with unselected range collapsed at (testDiv.lastChild, 0) 
+PASS testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv.lastChild, 0) 
+PASS testDiv.appendChild(testDiv.lastChild), with unselected range on testDiv.lastChild from 0 to 1 
+PASS testDiv.appendChild(testDiv.lastChild), with selected range on testDiv.lastChild from 0 to 1 
+PASS testDiv.appendChild(testDiv.lastChild), with unselected range collapsed at (testDiv.lastChild, 1) 
+PASS testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv.lastChild, 1) 
+PASS testDiv.appendChild(testDiv.lastChild), with unselected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length 
+PASS testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length 
+PASS testDiv.appendChild(testDiv.lastChild), with unselected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length - 1 
+PASS testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length - 1 
+PASS testDiv.appendChild(testDiv.lastChild), with unselected range on testDiv from testDiv.childNodes.length - 1 to testDiv.childNodes.length 
+PASS testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 1 to testDiv.childNodes.length 
+PASS testDiv.appendChild(testDiv.lastChild), with unselected range collapsed at (testDiv, testDiv.childNodes.length - 1) 
+PASS testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv, testDiv.childNodes.length - 1) 
+PASS testDiv.appendChild(testDiv.lastChild), with unselected range collapsed at (testDiv, testDiv.childNodes.length) 
+PASS testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv, testDiv.childNodes.length) 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range collapsed at (detachedDiv.lastChild, 0) 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv.lastChild, 0) 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range on detachedDiv.lastChild from 0 to 1 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv.lastChild from 0 to 1 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range collapsed at (detachedDiv.lastChild, 1) 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv.lastChild, 1) 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length - 1 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length - 1 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range on detachedDiv from detachedDiv.childNodes.length - 1 to detachedDiv.childNodes.length 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 1 to detachedDiv.childNodes.length 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range collapsed at (detachedDiv, detachedDiv.childNodes.length - 1) 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv, detachedDiv.childNodes.length - 1) 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range collapsed at (detachedDiv, detachedDiv.childNodes.length) 
+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv, detachedDiv.childNodes.length) 
+PASS paras[0].appendChild(paras[1]), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].appendChild(paras[1]), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].appendChild(paras[1]), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(paras[1]), with selected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(paras[1]), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].appendChild(paras[1]), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].appendChild(paras[1]), with unselected range on testDiv from 0 to 1 
+PASS paras[0].appendChild(paras[1]), with selected range on testDiv from 0 to 1 
+PASS paras[0].appendChild(paras[1]), with unselected range on testDiv from 0 to 2 
+PASS paras[0].appendChild(paras[1]), with selected range on testDiv from 0 to 2 
+PASS paras[0].appendChild(paras[1]), with unselected range collapsed at (testDiv, 1) 
+PASS paras[0].appendChild(paras[1]), with selected range collapsed at (testDiv, 1) 
+PASS paras[0].appendChild(paras[1]), with unselected range on testDiv from 1 to 2 
+PASS paras[0].appendChild(paras[1]), with selected range on testDiv from 1 to 2 
+PASS foreignDoc.appendChild(detachedComment), with unselected range on foreignDoc from foreignDoc.childNodes.length - 1 to foreignDoc.childNodes.length 
+PASS foreignDoc.appendChild(detachedComment), with selected range on foreignDoc from foreignDoc.childNodes.length - 1 to foreignDoc.childNodes.length 
+PASS foreignDoc.appendChild(detachedComment), with unselected range collapsed at (foreignDoc, foreignDoc.childNodes.length - 1) 
+PASS foreignDoc.appendChild(detachedComment), with selected range collapsed at (foreignDoc, foreignDoc.childNodes.length - 1) 
+PASS foreignDoc.appendChild(detachedComment), with unselected range collapsed at (foreignDoc, foreignDoc.childNodes.length) 
+PASS foreignDoc.appendChild(detachedComment), with selected range collapsed at (foreignDoc, foreignDoc.childNodes.length) 
+PASS foreignDoc.appendChild(detachedComment), with unselected range on detachedComment from 0 to 5 
+PASS foreignDoc.appendChild(detachedComment), with selected range on detachedComment from 0 to 5 
+PASS paras[0].appendChild(xmlTextNode), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].appendChild(xmlTextNode), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].appendChild(xmlTextNode), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(xmlTextNode), with selected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(xmlTextNode), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].appendChild(xmlTextNode), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].appendChild(paras[0]), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(paras[0]), with selected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(testDiv), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(testDiv), with selected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(document), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(document), with selected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(foreignDoc), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(foreignDoc), with selected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(document.doctype), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].appendChild(document.doctype), with selected range on paras[0] from 0 to 1 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsappendChildhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendChild.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendChild.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendChild.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Range mutation tests - appendChild&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Aryeh Gregor&quot; href=ayg@aryeh.name&gt;
+&lt;meta name=timeout content=long&gt;
+
+&lt;div id=log&gt;&lt;/div&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;../common.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Range-mutations.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+doTests(appendChildTests, function(params) { return params[0] + &quot;.appendChild(&quot; + params[1] + &quot;)&quot; }, testAppendChild);
+testDiv.style.display = &quot;none&quot;;
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsappendDataexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendData-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendData-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendData-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,386 @@
</span><ins>+
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.appendData(&quot;&quot;), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.appendData(&quot;&quot;), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.appendData(&quot;&quot;), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.appendData(&quot;&quot;), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.appendData(&quot;&quot;), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.appendData(&quot;&quot;), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.appendData(&quot;&quot;), with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.appendData(&quot;&quot;), with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.appendData(&quot;&quot;), with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.appendData(&quot;&quot;), with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.appendData(&quot;&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.appendData(&quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.appendData(&quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.appendData(&quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.appendData(&quot;&quot;), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.appendData(&quot;&quot;), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.appendData(&quot;&quot;), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.appendData(&quot;&quot;), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.appendData(&quot;&quot;), with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.appendData(&quot;&quot;), with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.appendData(&quot;&quot;), with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.appendData(&quot;&quot;), with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.appendData(&quot;&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.appendData(&quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.appendData(&quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.appendData(&quot;&quot;), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.appendData(&quot;&quot;), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.appendData(&quot;&quot;), with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.appendData(&quot;&quot;), with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.appendData(&quot;&quot;), with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.appendData(&quot;&quot;), with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.appendData(&quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.appendData(&quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS comment.appendData(&quot;foo&quot;), with unselected range on comment from 0 to 1 
+PASS comment.appendData(&quot;foo&quot;), with selected range on comment from 0 to 1 
+PASS comment.appendData(&quot;foo&quot;), with unselected range collapsed at (comment, 0) 
+PASS comment.appendData(&quot;foo&quot;), with selected range collapsed at (comment, 0) 
+PASS comment.appendData(&quot;foo&quot;), with unselected range collapsed at (comment, 1) 
+PASS comment.appendData(&quot;foo&quot;), with selected range collapsed at (comment, 1) 
+PASS comment.appendData(&quot;foo&quot;), with unselected range on comment from 0 to comment.length 
+PASS comment.appendData(&quot;foo&quot;), with selected range on comment from 0 to comment.length 
+PASS comment.appendData(&quot;foo&quot;), with unselected range on comment from 1 to comment.length 
+PASS comment.appendData(&quot;foo&quot;), with selected range on comment from 1 to comment.length 
+PASS comment.appendData(&quot;foo&quot;), with unselected range collapsed at (comment, comment.length) 
+PASS comment.appendData(&quot;foo&quot;), with selected range collapsed at (comment, comment.length) 
+PASS comment.appendData(&quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.appendData(&quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.appendData(&quot;&quot;), with unselected range on comment from 0 to 1 
+PASS comment.appendData(&quot;&quot;), with selected range on comment from 0 to 1 
+PASS comment.appendData(&quot;&quot;), with unselected range collapsed at (comment, 0) 
+PASS comment.appendData(&quot;&quot;), with selected range collapsed at (comment, 0) 
+PASS comment.appendData(&quot;&quot;), with unselected range collapsed at (comment, 1) 
+PASS comment.appendData(&quot;&quot;), with selected range collapsed at (comment, 1) 
+PASS comment.appendData(&quot;&quot;), with unselected range on comment from 0 to comment.length 
+PASS comment.appendData(&quot;&quot;), with selected range on comment from 0 to comment.length 
+PASS comment.appendData(&quot;&quot;), with unselected range on comment from 1 to comment.length 
+PASS comment.appendData(&quot;&quot;), with selected range on comment from 1 to comment.length 
+PASS comment.appendData(&quot;&quot;), with unselected range collapsed at (comment, comment.length) 
+PASS comment.appendData(&quot;&quot;), with selected range collapsed at (comment, comment.length) 
+PASS comment.appendData(&quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.appendData(&quot;&quot;), with selected range on comment from 1 to 3 
+PASS foreignComment.appendData(&quot;foo&quot;), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.appendData(&quot;foo&quot;), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.appendData(&quot;foo&quot;), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.appendData(&quot;foo&quot;), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.appendData(&quot;foo&quot;), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.appendData(&quot;foo&quot;), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.appendData(&quot;foo&quot;), with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.appendData(&quot;foo&quot;), with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.appendData(&quot;foo&quot;), with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.appendData(&quot;foo&quot;), with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.appendData(&quot;foo&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.appendData(&quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.appendData(&quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.appendData(&quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.appendData(&quot;&quot;), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.appendData(&quot;&quot;), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.appendData(&quot;&quot;), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.appendData(&quot;&quot;), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.appendData(&quot;&quot;), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.appendData(&quot;&quot;), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.appendData(&quot;&quot;), with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.appendData(&quot;&quot;), with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.appendData(&quot;&quot;), with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.appendData(&quot;&quot;), with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.appendData(&quot;&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.appendData(&quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.appendData(&quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.appendData(&quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS xmlComment.appendData(&quot;foo&quot;), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.appendData(&quot;foo&quot;), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.appendData(&quot;foo&quot;), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.appendData(&quot;foo&quot;), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.appendData(&quot;foo&quot;), with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.appendData(&quot;foo&quot;), with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.appendData(&quot;foo&quot;), with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.appendData(&quot;foo&quot;), with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.appendData(&quot;foo&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.appendData(&quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.appendData(&quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.appendData(&quot;&quot;), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.appendData(&quot;&quot;), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.appendData(&quot;&quot;), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.appendData(&quot;&quot;), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.appendData(&quot;&quot;), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.appendData(&quot;&quot;), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.appendData(&quot;&quot;), with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.appendData(&quot;&quot;), with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.appendData(&quot;&quot;), with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.appendData(&quot;&quot;), with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.appendData(&quot;&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.appendData(&quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.appendData(&quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.appendData(&quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS detachedComment.appendData(&quot;foo&quot;), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.appendData(&quot;foo&quot;), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.appendData(&quot;foo&quot;), with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.appendData(&quot;foo&quot;), with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.appendData(&quot;foo&quot;), with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.appendData(&quot;foo&quot;), with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.appendData(&quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.appendData(&quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.appendData(&quot;&quot;), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.appendData(&quot;&quot;), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.appendData(&quot;&quot;), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.appendData(&quot;&quot;), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.appendData(&quot;&quot;), with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.appendData(&quot;&quot;), with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.appendData(&quot;&quot;), with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.appendData(&quot;&quot;), with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.appendData(&quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.appendData(&quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.appendData(&quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsappendDatahtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendData.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendData.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendData.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Range mutation tests - appendData&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Aryeh Gregor&quot; href=ayg@aryeh.name&gt;
+&lt;meta name=timeout content=long&gt;
+
+&lt;div id=log&gt;&lt;/div&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;../common.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Range-mutations.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+doTests(appendDataTests, function(params) { return params[0] + &quot;.appendData(&quot; + params[1] + &quot;)&quot; }, testAppendData);
+testDiv.style.display = &quot;none&quot;;
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsdataChangeexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-dataChange-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-dataChange-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-dataChange-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,2810 @@
</span><ins>+
+PASS paras[0].firstChild.data = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.data = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.data = paras[0].firstChild.data, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.data = paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.data += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.data += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.data += paras[0].firstChild.data, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.data += paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.textContent = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.textContent += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.data = &quot;&quot;, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.data = &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.data = &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.data = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.data = paras[0].firstChild.data, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.data = paras[0].firstChild.data, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.data += &quot;&quot;, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.data += &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.data += &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.data += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.data += paras[0].firstChild.data, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.data += paras[0].firstChild.data, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.textContent = &quot;&quot;, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.textContent = &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.textContent += &quot;&quot;, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.textContent += &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.data = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.data = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.data = paras[0].firstChild.data, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.data = paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.data += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.data += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.data += paras[0].firstChild.data, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.data += paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.textContent = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.textContent += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.data = &quot;&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data = &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data = &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data = paras[0].firstChild.data, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data = paras[0].firstChild.data, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data += &quot;&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data += &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data += &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data += paras[0].firstChild.data, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data += paras[0].firstChild.data, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent = &quot;&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent = &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent += &quot;&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent += &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data = &quot;&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data = &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data = &quot;foo&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data = &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data = paras[0].firstChild.data, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data = paras[0].firstChild.data, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data += &quot;&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data += &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data += &quot;foo&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data += &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data += paras[0].firstChild.data, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data += paras[0].firstChild.data, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent = &quot;&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent = &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent += &quot;&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent += &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
+PASS paras[0].firstChild.data = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.data = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.data = paras[0].firstChild.data, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.data = paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.data += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.data += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.data += paras[0].firstChild.data, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.data += paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.textContent = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.textContent += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[1].firstChild.data = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.data = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.data = paras[1].firstChild.data, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.data = paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.data += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.data += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.data += paras[1].firstChild.data, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.data += paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.textContent = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.textContent += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.data = &quot;&quot;, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.data = &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.data = &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.data = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.data = paras[1].firstChild.data, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.data = paras[1].firstChild.data, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.data += &quot;&quot;, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.data += &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.data += &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.data += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.data += paras[1].firstChild.data, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.data += paras[1].firstChild.data, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.textContent = &quot;&quot;, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.textContent = &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.textContent += &quot;&quot;, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.textContent += &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.data = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.data = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.data = paras[1].firstChild.data, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.data = paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.data += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.data += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.data += paras[1].firstChild.data, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.data += paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.textContent = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.textContent += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.data = &quot;&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data = &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data = &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data = paras[1].firstChild.data, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data = paras[1].firstChild.data, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data += &quot;&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data += &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data += &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data += paras[1].firstChild.data, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data += paras[1].firstChild.data, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent = &quot;&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent = &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent += &quot;&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent += &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data = &quot;&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data = &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data = &quot;foo&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data = &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data = paras[1].firstChild.data, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data = paras[1].firstChild.data, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data += &quot;&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data += &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data += &quot;foo&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data += &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data += paras[1].firstChild.data, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data += paras[1].firstChild.data, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent = &quot;&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent = &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent += &quot;&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent += &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
+PASS paras[1].firstChild.data = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.data = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.data = paras[1].firstChild.data, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.data = paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.data += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.data += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.data += paras[1].firstChild.data, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.data += paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.textContent = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.textContent += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS foreignTextNode.data = &quot;&quot;, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.data = &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.data = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.data = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.data = foreignTextNode.data, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.data = foreignTextNode.data, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.data += &quot;&quot;, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.data += &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.data += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.data += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.data += foreignTextNode.data, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.data += foreignTextNode.data, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.textContent = &quot;&quot;, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.textContent = &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.textContent = foreignTextNode.textContent, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.textContent = foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.textContent += &quot;&quot;, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.textContent += &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.textContent += foreignTextNode.textContent, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.textContent += foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.data = &quot;&quot;, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.data = &quot;&quot;, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.data = &quot;foo&quot;, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.data = &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.data = foreignTextNode.data, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.data = foreignTextNode.data, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.data += &quot;&quot;, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.data += &quot;&quot;, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.data += &quot;foo&quot;, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.data += &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.data += foreignTextNode.data, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.data += foreignTextNode.data, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.textContent = &quot;&quot;, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.textContent = &quot;&quot;, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.textContent = &quot;foo&quot;, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.textContent = &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.textContent = foreignTextNode.textContent, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.textContent = foreignTextNode.textContent, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.textContent += &quot;&quot;, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.textContent += &quot;&quot;, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.textContent += &quot;foo&quot;, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.textContent += &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.textContent += foreignTextNode.textContent, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.textContent += foreignTextNode.textContent, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.nodeValue = &quot;&quot;, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.nodeValue = &quot;&quot;, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.nodeValue += &quot;&quot;, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.nodeValue += &quot;&quot;, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.data = &quot;&quot;, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.data = &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.data = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.data = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.data = foreignTextNode.data, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.data = foreignTextNode.data, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.data += &quot;&quot;, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.data += &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.data += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.data += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.data += foreignTextNode.data, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.data += foreignTextNode.data, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.textContent = &quot;&quot;, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.textContent = &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.textContent = foreignTextNode.textContent, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.textContent = foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.textContent += &quot;&quot;, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.textContent += &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.textContent += foreignTextNode.textContent, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.textContent += foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.data = &quot;&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.data = &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.data = &quot;foo&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.data = &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.data = foreignTextNode.data, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.data = foreignTextNode.data, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.data += &quot;&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.data += &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.data += &quot;foo&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.data += &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.data += foreignTextNode.data, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.data += foreignTextNode.data, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.textContent = &quot;&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.textContent = &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.textContent = &quot;foo&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.textContent = &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.textContent = foreignTextNode.textContent, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.textContent = foreignTextNode.textContent, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.textContent += &quot;&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.textContent += &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.textContent += &quot;foo&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.textContent += &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.textContent += foreignTextNode.textContent, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.textContent += foreignTextNode.textContent, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue = &quot;&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue = &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue += &quot;&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue += &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range on foreignTextNode from 0 to foreignTextNode.length 
+PASS foreignTextNode.data = &quot;&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.data = &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.data = &quot;foo&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.data = &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.data = foreignTextNode.data, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.data = foreignTextNode.data, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.data += &quot;&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.data += &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.data += &quot;foo&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.data += &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.data += foreignTextNode.data, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.data += foreignTextNode.data, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.textContent = &quot;&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.textContent = &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.textContent = &quot;foo&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.textContent = &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.textContent = foreignTextNode.textContent, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.textContent = foreignTextNode.textContent, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.textContent += &quot;&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.textContent += &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.textContent += &quot;foo&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.textContent += &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.textContent += foreignTextNode.textContent, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.textContent += foreignTextNode.textContent, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue = &quot;&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue = &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue += &quot;&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue += &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range on foreignTextNode from 1 to foreignTextNode.length 
+PASS foreignTextNode.data = &quot;&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.data = &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.data = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.data = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.data = foreignTextNode.data, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.data = foreignTextNode.data, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.data += &quot;&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.data += &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.data += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.data += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.data += foreignTextNode.data, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.data += foreignTextNode.data, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.textContent = &quot;&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.textContent = &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.textContent = foreignTextNode.textContent, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.textContent = foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.textContent += &quot;&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.textContent += &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.textContent += foreignTextNode.textContent, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.textContent += foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS xmlTextNode.data = &quot;&quot;, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.data = &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.data = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.data = xmlTextNode.data, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.data = xmlTextNode.data, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.data += &quot;&quot;, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.data += &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.data += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.data += xmlTextNode.data, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.data += xmlTextNode.data, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.textContent = &quot;&quot;, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.textContent = xmlTextNode.textContent, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.textContent = xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.textContent += &quot;&quot;, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.textContent += xmlTextNode.textContent, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.textContent += xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.data = &quot;&quot;, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.data = &quot;&quot;, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.data = &quot;foo&quot;, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.data = &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.data = xmlTextNode.data, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.data = xmlTextNode.data, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.data += &quot;&quot;, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.data += &quot;&quot;, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.data += &quot;foo&quot;, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.data += &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.data += xmlTextNode.data, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.data += xmlTextNode.data, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.textContent = &quot;&quot;, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.textContent = &quot;&quot;, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.textContent = &quot;foo&quot;, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.textContent = &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.textContent = xmlTextNode.textContent, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.textContent = xmlTextNode.textContent, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.textContent += &quot;&quot;, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.textContent += &quot;&quot;, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.textContent += &quot;foo&quot;, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.textContent += &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.textContent += xmlTextNode.textContent, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.textContent += xmlTextNode.textContent, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.nodeValue = &quot;&quot;, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.nodeValue = &quot;&quot;, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.nodeValue += &quot;&quot;, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.nodeValue += &quot;&quot;, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.data = &quot;&quot;, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.data = &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.data = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.data = xmlTextNode.data, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.data = xmlTextNode.data, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.data += &quot;&quot;, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.data += &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.data += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.data += xmlTextNode.data, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.data += xmlTextNode.data, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.textContent = &quot;&quot;, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.textContent = xmlTextNode.textContent, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.textContent = xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.textContent += &quot;&quot;, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.textContent += xmlTextNode.textContent, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.textContent += xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.data = &quot;&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.data = &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.data = &quot;foo&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.data = &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.data = xmlTextNode.data, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.data = xmlTextNode.data, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.data += &quot;&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.data += &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.data += &quot;foo&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.data += &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.data += xmlTextNode.data, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.data += xmlTextNode.data, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.textContent = &quot;&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.textContent = &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.textContent = &quot;foo&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.textContent = &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.textContent = xmlTextNode.textContent, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.textContent = xmlTextNode.textContent, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.textContent += &quot;&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.textContent += &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.textContent += &quot;foo&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.textContent += &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.textContent += xmlTextNode.textContent, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.textContent += xmlTextNode.textContent, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue = &quot;&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue = &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue += &quot;&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue += &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range on xmlTextNode from 0 to xmlTextNode.length 
+PASS xmlTextNode.data = &quot;&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.data = &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.data = &quot;foo&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.data = &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.data = xmlTextNode.data, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.data = xmlTextNode.data, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.data += &quot;&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.data += &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.data += &quot;foo&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.data += &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.data += xmlTextNode.data, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.data += xmlTextNode.data, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.textContent = &quot;&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.textContent = &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.textContent = &quot;foo&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.textContent = &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.textContent = xmlTextNode.textContent, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.textContent = xmlTextNode.textContent, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.textContent += &quot;&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.textContent += &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.textContent += &quot;foo&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.textContent += &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.textContent += xmlTextNode.textContent, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.textContent += xmlTextNode.textContent, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue = &quot;&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue = &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue += &quot;&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue += &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range on xmlTextNode from 1 to xmlTextNode.length 
+PASS xmlTextNode.data = &quot;&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.data = &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.data = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.data = xmlTextNode.data, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.data = xmlTextNode.data, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.data += &quot;&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.data += &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.data += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.data += xmlTextNode.data, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.data += xmlTextNode.data, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.textContent = &quot;&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.textContent = xmlTextNode.textContent, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.textContent = xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.textContent += &quot;&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.textContent += xmlTextNode.textContent, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.textContent += xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS detachedTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.data = &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.data = detachedTextNode.data, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.data = detachedTextNode.data, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.data += &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.data += detachedTextNode.data, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.data += detachedTextNode.data, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.textContent = detachedTextNode.textContent, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.textContent = detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.textContent += detachedTextNode.textContent, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.textContent += detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.data = &quot;&quot;, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.data = &quot;&quot;, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.data = &quot;foo&quot;, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.data = &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.data = detachedTextNode.data, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.data = detachedTextNode.data, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.data += &quot;&quot;, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.data += &quot;&quot;, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.data += &quot;foo&quot;, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.data += &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.data += detachedTextNode.data, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.data += detachedTextNode.data, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.textContent = &quot;&quot;, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.textContent = &quot;&quot;, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.textContent = &quot;foo&quot;, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.textContent = &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.textContent = detachedTextNode.textContent, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.textContent = detachedTextNode.textContent, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.textContent += &quot;&quot;, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.textContent += &quot;&quot;, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.textContent += &quot;foo&quot;, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.textContent += &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.textContent += detachedTextNode.textContent, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.textContent += detachedTextNode.textContent, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.nodeValue = &quot;&quot;, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.nodeValue = &quot;&quot;, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.nodeValue += &quot;&quot;, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.nodeValue += &quot;&quot;, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.data = &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.data = detachedTextNode.data, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.data = detachedTextNode.data, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.data += &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.data += detachedTextNode.data, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.data += detachedTextNode.data, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.textContent = detachedTextNode.textContent, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.textContent = detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.textContent += detachedTextNode.textContent, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.textContent += detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.data = &quot;&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.data = &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.data = &quot;foo&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.data = &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.data = detachedTextNode.data, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.data = detachedTextNode.data, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.data += &quot;&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.data += &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.data += &quot;foo&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.data += &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.data += detachedTextNode.data, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.data += detachedTextNode.data, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.textContent = &quot;&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.textContent = &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.textContent = &quot;foo&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.textContent = &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.textContent = detachedTextNode.textContent, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.textContent = detachedTextNode.textContent, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.textContent += &quot;&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.textContent += &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.textContent += &quot;foo&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.textContent += &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.textContent += detachedTextNode.textContent, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.textContent += detachedTextNode.textContent, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue = &quot;&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue = &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue += &quot;&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue += &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range on detachedTextNode from 0 to detachedTextNode.length 
+PASS detachedTextNode.data = &quot;&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.data = &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.data = &quot;foo&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.data = &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.data = detachedTextNode.data, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.data = detachedTextNode.data, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.data += &quot;&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.data += &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.data += &quot;foo&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.data += &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.data += detachedTextNode.data, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.data += detachedTextNode.data, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.textContent = &quot;&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.textContent = &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.textContent = &quot;foo&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.textContent = &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.textContent = detachedTextNode.textContent, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.textContent = detachedTextNode.textContent, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.textContent += &quot;&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.textContent += &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.textContent += &quot;foo&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.textContent += &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.textContent += detachedTextNode.textContent, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.textContent += detachedTextNode.textContent, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue = &quot;&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue = &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue += &quot;&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue += &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range on detachedTextNode from 1 to detachedTextNode.length 
+PASS detachedTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.data = &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.data = detachedTextNode.data, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.data = detachedTextNode.data, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.data += &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.data += detachedTextNode.data, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.data += detachedTextNode.data, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.textContent = detachedTextNode.textContent, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.textContent = detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.textContent += detachedTextNode.textContent, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.textContent += detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedForeignTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.data = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.data += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.data = &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.data = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.data = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.data = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.data += &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.data += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.data += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.data += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.textContent = &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.textContent = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.textContent += &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.textContent += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.data = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.data += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.data = &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data += &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent = &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent += &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data = &quot;&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data = &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data = &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data += &quot;&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data += &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data += &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent = &quot;&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent = &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent += &quot;&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent += &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
+PASS detachedForeignTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.data = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.data += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedXmlTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.data = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.data += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.data = &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.data = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.data = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.data = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.data += &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.data += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.data += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.data += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.textContent = &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.textContent = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.textContent += &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.textContent += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.data = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.data += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.data = &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data += &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent = &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent += &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data = &quot;&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data = &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data = &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data += &quot;&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data += &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data += &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent = &quot;&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent = &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent += &quot;&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent += &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
+PASS detachedXmlTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.data = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.data += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS comment.data = &quot;&quot;, with unselected range collapsed at (comment, 0) 
+PASS comment.data = &quot;&quot;, with selected range collapsed at (comment, 0) 
+PASS comment.data = &quot;foo&quot;, with unselected range collapsed at (comment, 0) 
+PASS comment.data = &quot;foo&quot;, with selected range collapsed at (comment, 0) 
+PASS comment.data = comment.data, with unselected range collapsed at (comment, 0) 
+PASS comment.data = comment.data, with selected range collapsed at (comment, 0) 
+PASS comment.data += &quot;&quot;, with unselected range collapsed at (comment, 0) 
+PASS comment.data += &quot;&quot;, with selected range collapsed at (comment, 0) 
+PASS comment.data += &quot;foo&quot;, with unselected range collapsed at (comment, 0) 
+PASS comment.data += &quot;foo&quot;, with selected range collapsed at (comment, 0) 
+PASS comment.data += comment.data, with unselected range collapsed at (comment, 0) 
+PASS comment.data += comment.data, with selected range collapsed at (comment, 0) 
+PASS comment.textContent = &quot;&quot;, with unselected range collapsed at (comment, 0) 
+PASS comment.textContent = &quot;&quot;, with selected range collapsed at (comment, 0) 
+PASS comment.textContent = &quot;foo&quot;, with unselected range collapsed at (comment, 0) 
+PASS comment.textContent = &quot;foo&quot;, with selected range collapsed at (comment, 0) 
+PASS comment.textContent = comment.textContent, with unselected range collapsed at (comment, 0) 
+PASS comment.textContent = comment.textContent, with selected range collapsed at (comment, 0) 
+PASS comment.textContent += &quot;&quot;, with unselected range collapsed at (comment, 0) 
+PASS comment.textContent += &quot;&quot;, with selected range collapsed at (comment, 0) 
+PASS comment.textContent += &quot;foo&quot;, with unselected range collapsed at (comment, 0) 
+PASS comment.textContent += &quot;foo&quot;, with selected range collapsed at (comment, 0) 
+PASS comment.textContent += comment.textContent, with unselected range collapsed at (comment, 0) 
+PASS comment.textContent += comment.textContent, with selected range collapsed at (comment, 0) 
+PASS comment.nodeValue = &quot;&quot;, with unselected range collapsed at (comment, 0) 
+PASS comment.nodeValue = &quot;&quot;, with selected range collapsed at (comment, 0) 
+PASS comment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (comment, 0) 
+PASS comment.nodeValue = &quot;foo&quot;, with selected range collapsed at (comment, 0) 
+PASS comment.nodeValue = comment.nodeValue, with unselected range collapsed at (comment, 0) 
+PASS comment.nodeValue = comment.nodeValue, with selected range collapsed at (comment, 0) 
+PASS comment.nodeValue += &quot;&quot;, with unselected range collapsed at (comment, 0) 
+PASS comment.nodeValue += &quot;&quot;, with selected range collapsed at (comment, 0) 
+PASS comment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (comment, 0) 
+PASS comment.nodeValue += &quot;foo&quot;, with selected range collapsed at (comment, 0) 
+PASS comment.nodeValue += comment.nodeValue, with unselected range collapsed at (comment, 0) 
+PASS comment.nodeValue += comment.nodeValue, with selected range collapsed at (comment, 0) 
+PASS comment.data = &quot;&quot;, with unselected range on comment from 0 to 1 
+PASS comment.data = &quot;&quot;, with selected range on comment from 0 to 1 
+PASS comment.data = &quot;foo&quot;, with unselected range on comment from 0 to 1 
+PASS comment.data = &quot;foo&quot;, with selected range on comment from 0 to 1 
+PASS comment.data = comment.data, with unselected range on comment from 0 to 1 
+PASS comment.data = comment.data, with selected range on comment from 0 to 1 
+PASS comment.data += &quot;&quot;, with unselected range on comment from 0 to 1 
+PASS comment.data += &quot;&quot;, with selected range on comment from 0 to 1 
+PASS comment.data += &quot;foo&quot;, with unselected range on comment from 0 to 1 
+PASS comment.data += &quot;foo&quot;, with selected range on comment from 0 to 1 
+PASS comment.data += comment.data, with unselected range on comment from 0 to 1 
+PASS comment.data += comment.data, with selected range on comment from 0 to 1 
+PASS comment.textContent = &quot;&quot;, with unselected range on comment from 0 to 1 
+PASS comment.textContent = &quot;&quot;, with selected range on comment from 0 to 1 
+PASS comment.textContent = &quot;foo&quot;, with unselected range on comment from 0 to 1 
+PASS comment.textContent = &quot;foo&quot;, with selected range on comment from 0 to 1 
+PASS comment.textContent = comment.textContent, with unselected range on comment from 0 to 1 
+PASS comment.textContent = comment.textContent, with selected range on comment from 0 to 1 
+PASS comment.textContent += &quot;&quot;, with unselected range on comment from 0 to 1 
+PASS comment.textContent += &quot;&quot;, with selected range on comment from 0 to 1 
+PASS comment.textContent += &quot;foo&quot;, with unselected range on comment from 0 to 1 
+PASS comment.textContent += &quot;foo&quot;, with selected range on comment from 0 to 1 
+PASS comment.textContent += comment.textContent, with unselected range on comment from 0 to 1 
+PASS comment.textContent += comment.textContent, with selected range on comment from 0 to 1 
+PASS comment.nodeValue = &quot;&quot;, with unselected range on comment from 0 to 1 
+PASS comment.nodeValue = &quot;&quot;, with selected range on comment from 0 to 1 
+PASS comment.nodeValue = &quot;foo&quot;, with unselected range on comment from 0 to 1 
+PASS comment.nodeValue = &quot;foo&quot;, with selected range on comment from 0 to 1 
+PASS comment.nodeValue = comment.nodeValue, with unselected range on comment from 0 to 1 
+PASS comment.nodeValue = comment.nodeValue, with selected range on comment from 0 to 1 
+PASS comment.nodeValue += &quot;&quot;, with unselected range on comment from 0 to 1 
+PASS comment.nodeValue += &quot;&quot;, with selected range on comment from 0 to 1 
+PASS comment.nodeValue += &quot;foo&quot;, with unselected range on comment from 0 to 1 
+PASS comment.nodeValue += &quot;foo&quot;, with selected range on comment from 0 to 1 
+PASS comment.nodeValue += comment.nodeValue, with unselected range on comment from 0 to 1 
+PASS comment.nodeValue += comment.nodeValue, with selected range on comment from 0 to 1 
+PASS comment.data = &quot;&quot;, with unselected range collapsed at (comment, 1) 
+PASS comment.data = &quot;&quot;, with selected range collapsed at (comment, 1) 
+PASS comment.data = &quot;foo&quot;, with unselected range collapsed at (comment, 1) 
+PASS comment.data = &quot;foo&quot;, with selected range collapsed at (comment, 1) 
+PASS comment.data = comment.data, with unselected range collapsed at (comment, 1) 
+PASS comment.data = comment.data, with selected range collapsed at (comment, 1) 
+PASS comment.data += &quot;&quot;, with unselected range collapsed at (comment, 1) 
+PASS comment.data += &quot;&quot;, with selected range collapsed at (comment, 1) 
+PASS comment.data += &quot;foo&quot;, with unselected range collapsed at (comment, 1) 
+PASS comment.data += &quot;foo&quot;, with selected range collapsed at (comment, 1) 
+PASS comment.data += comment.data, with unselected range collapsed at (comment, 1) 
+PASS comment.data += comment.data, with selected range collapsed at (comment, 1) 
+PASS comment.textContent = &quot;&quot;, with unselected range collapsed at (comment, 1) 
+PASS comment.textContent = &quot;&quot;, with selected range collapsed at (comment, 1) 
+PASS comment.textContent = &quot;foo&quot;, with unselected range collapsed at (comment, 1) 
+PASS comment.textContent = &quot;foo&quot;, with selected range collapsed at (comment, 1) 
+PASS comment.textContent = comment.textContent, with unselected range collapsed at (comment, 1) 
+PASS comment.textContent = comment.textContent, with selected range collapsed at (comment, 1) 
+PASS comment.textContent += &quot;&quot;, with unselected range collapsed at (comment, 1) 
+PASS comment.textContent += &quot;&quot;, with selected range collapsed at (comment, 1) 
+PASS comment.textContent += &quot;foo&quot;, with unselected range collapsed at (comment, 1) 
+PASS comment.textContent += &quot;foo&quot;, with selected range collapsed at (comment, 1) 
+PASS comment.textContent += comment.textContent, with unselected range collapsed at (comment, 1) 
+PASS comment.textContent += comment.textContent, with selected range collapsed at (comment, 1) 
+PASS comment.nodeValue = &quot;&quot;, with unselected range collapsed at (comment, 1) 
+PASS comment.nodeValue = &quot;&quot;, with selected range collapsed at (comment, 1) 
+PASS comment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (comment, 1) 
+PASS comment.nodeValue = &quot;foo&quot;, with selected range collapsed at (comment, 1) 
+PASS comment.nodeValue = comment.nodeValue, with unselected range collapsed at (comment, 1) 
+PASS comment.nodeValue = comment.nodeValue, with selected range collapsed at (comment, 1) 
+PASS comment.nodeValue += &quot;&quot;, with unselected range collapsed at (comment, 1) 
+PASS comment.nodeValue += &quot;&quot;, with selected range collapsed at (comment, 1) 
+PASS comment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (comment, 1) 
+PASS comment.nodeValue += &quot;foo&quot;, with selected range collapsed at (comment, 1) 
+PASS comment.nodeValue += comment.nodeValue, with unselected range collapsed at (comment, 1) 
+PASS comment.nodeValue += comment.nodeValue, with selected range collapsed at (comment, 1) 
+PASS comment.data = &quot;&quot;, with unselected range on comment from 0 to comment.length 
+PASS comment.data = &quot;&quot;, with selected range on comment from 0 to comment.length 
+PASS comment.data = &quot;foo&quot;, with unselected range on comment from 0 to comment.length 
+PASS comment.data = &quot;foo&quot;, with selected range on comment from 0 to comment.length 
+PASS comment.data = comment.data, with unselected range on comment from 0 to comment.length 
+PASS comment.data = comment.data, with selected range on comment from 0 to comment.length 
+PASS comment.data += &quot;&quot;, with unselected range on comment from 0 to comment.length 
+PASS comment.data += &quot;&quot;, with selected range on comment from 0 to comment.length 
+PASS comment.data += &quot;foo&quot;, with unselected range on comment from 0 to comment.length 
+PASS comment.data += &quot;foo&quot;, with selected range on comment from 0 to comment.length 
+PASS comment.data += comment.data, with unselected range on comment from 0 to comment.length 
+PASS comment.data += comment.data, with selected range on comment from 0 to comment.length 
+PASS comment.textContent = &quot;&quot;, with unselected range on comment from 0 to comment.length 
+PASS comment.textContent = &quot;&quot;, with selected range on comment from 0 to comment.length 
+PASS comment.textContent = &quot;foo&quot;, with unselected range on comment from 0 to comment.length 
+PASS comment.textContent = &quot;foo&quot;, with selected range on comment from 0 to comment.length 
+PASS comment.textContent = comment.textContent, with unselected range on comment from 0 to comment.length 
+PASS comment.textContent = comment.textContent, with selected range on comment from 0 to comment.length 
+PASS comment.textContent += &quot;&quot;, with unselected range on comment from 0 to comment.length 
+PASS comment.textContent += &quot;&quot;, with selected range on comment from 0 to comment.length 
+PASS comment.textContent += &quot;foo&quot;, with unselected range on comment from 0 to comment.length 
+PASS comment.textContent += &quot;foo&quot;, with selected range on comment from 0 to comment.length 
+PASS comment.textContent += comment.textContent, with unselected range on comment from 0 to comment.length 
+PASS comment.textContent += comment.textContent, with selected range on comment from 0 to comment.length 
+PASS comment.nodeValue = &quot;&quot;, with unselected range on comment from 0 to comment.length 
+PASS comment.nodeValue = &quot;&quot;, with selected range on comment from 0 to comment.length 
+PASS comment.nodeValue = &quot;foo&quot;, with unselected range on comment from 0 to comment.length 
+PASS comment.nodeValue = &quot;foo&quot;, with selected range on comment from 0 to comment.length 
+PASS comment.nodeValue = comment.nodeValue, with unselected range on comment from 0 to comment.length 
+PASS comment.nodeValue = comment.nodeValue, with selected range on comment from 0 to comment.length 
+PASS comment.nodeValue += &quot;&quot;, with unselected range on comment from 0 to comment.length 
+PASS comment.nodeValue += &quot;&quot;, with selected range on comment from 0 to comment.length 
+PASS comment.nodeValue += &quot;foo&quot;, with unselected range on comment from 0 to comment.length 
+PASS comment.nodeValue += &quot;foo&quot;, with selected range on comment from 0 to comment.length 
+PASS comment.nodeValue += comment.nodeValue, with unselected range on comment from 0 to comment.length 
+PASS comment.nodeValue += comment.nodeValue, with selected range on comment from 0 to comment.length 
+PASS comment.data = &quot;&quot;, with unselected range on comment from 1 to comment.length 
+PASS comment.data = &quot;&quot;, with selected range on comment from 1 to comment.length 
+PASS comment.data = &quot;foo&quot;, with unselected range on comment from 1 to comment.length 
+PASS comment.data = &quot;foo&quot;, with selected range on comment from 1 to comment.length 
+PASS comment.data = comment.data, with unselected range on comment from 1 to comment.length 
+PASS comment.data = comment.data, with selected range on comment from 1 to comment.length 
+PASS comment.data += &quot;&quot;, with unselected range on comment from 1 to comment.length 
+PASS comment.data += &quot;&quot;, with selected range on comment from 1 to comment.length 
+PASS comment.data += &quot;foo&quot;, with unselected range on comment from 1 to comment.length 
+PASS comment.data += &quot;foo&quot;, with selected range on comment from 1 to comment.length 
+PASS comment.data += comment.data, with unselected range on comment from 1 to comment.length 
+PASS comment.data += comment.data, with selected range on comment from 1 to comment.length 
+PASS comment.textContent = &quot;&quot;, with unselected range on comment from 1 to comment.length 
+PASS comment.textContent = &quot;&quot;, with selected range on comment from 1 to comment.length 
+PASS comment.textContent = &quot;foo&quot;, with unselected range on comment from 1 to comment.length 
+PASS comment.textContent = &quot;foo&quot;, with selected range on comment from 1 to comment.length 
+PASS comment.textContent = comment.textContent, with unselected range on comment from 1 to comment.length 
+PASS comment.textContent = comment.textContent, with selected range on comment from 1 to comment.length 
+PASS comment.textContent += &quot;&quot;, with unselected range on comment from 1 to comment.length 
+PASS comment.textContent += &quot;&quot;, with selected range on comment from 1 to comment.length 
+PASS comment.textContent += &quot;foo&quot;, with unselected range on comment from 1 to comment.length 
+PASS comment.textContent += &quot;foo&quot;, with selected range on comment from 1 to comment.length 
+PASS comment.textContent += comment.textContent, with unselected range on comment from 1 to comment.length 
+PASS comment.textContent += comment.textContent, with selected range on comment from 1 to comment.length 
+PASS comment.nodeValue = &quot;&quot;, with unselected range on comment from 1 to comment.length 
+PASS comment.nodeValue = &quot;&quot;, with selected range on comment from 1 to comment.length 
+PASS comment.nodeValue = &quot;foo&quot;, with unselected range on comment from 1 to comment.length 
+PASS comment.nodeValue = &quot;foo&quot;, with selected range on comment from 1 to comment.length 
+PASS comment.nodeValue = comment.nodeValue, with unselected range on comment from 1 to comment.length 
+PASS comment.nodeValue = comment.nodeValue, with selected range on comment from 1 to comment.length 
+PASS comment.nodeValue += &quot;&quot;, with unselected range on comment from 1 to comment.length 
+PASS comment.nodeValue += &quot;&quot;, with selected range on comment from 1 to comment.length 
+PASS comment.nodeValue += &quot;foo&quot;, with unselected range on comment from 1 to comment.length 
+PASS comment.nodeValue += &quot;foo&quot;, with selected range on comment from 1 to comment.length 
+PASS comment.nodeValue += comment.nodeValue, with unselected range on comment from 1 to comment.length 
+PASS comment.nodeValue += comment.nodeValue, with selected range on comment from 1 to comment.length 
+PASS comment.data = &quot;&quot;, with unselected range collapsed at (comment, comment.length) 
+PASS comment.data = &quot;&quot;, with selected range collapsed at (comment, comment.length) 
+PASS comment.data = &quot;foo&quot;, with unselected range collapsed at (comment, comment.length) 
+PASS comment.data = &quot;foo&quot;, with selected range collapsed at (comment, comment.length) 
+PASS comment.data = comment.data, with unselected range collapsed at (comment, comment.length) 
+PASS comment.data = comment.data, with selected range collapsed at (comment, comment.length) 
+PASS comment.data += &quot;&quot;, with unselected range collapsed at (comment, comment.length) 
+PASS comment.data += &quot;&quot;, with selected range collapsed at (comment, comment.length) 
+PASS comment.data += &quot;foo&quot;, with unselected range collapsed at (comment, comment.length) 
+PASS comment.data += &quot;foo&quot;, with selected range collapsed at (comment, comment.length) 
+PASS comment.data += comment.data, with unselected range collapsed at (comment, comment.length) 
+PASS comment.data += comment.data, with selected range collapsed at (comment, comment.length) 
+PASS comment.textContent = &quot;&quot;, with unselected range collapsed at (comment, comment.length) 
+PASS comment.textContent = &quot;&quot;, with selected range collapsed at (comment, comment.length) 
+PASS comment.textContent = &quot;foo&quot;, with unselected range collapsed at (comment, comment.length) 
+PASS comment.textContent = &quot;foo&quot;, with selected range collapsed at (comment, comment.length) 
+PASS comment.textContent = comment.textContent, with unselected range collapsed at (comment, comment.length) 
+PASS comment.textContent = comment.textContent, with selected range collapsed at (comment, comment.length) 
+PASS comment.textContent += &quot;&quot;, with unselected range collapsed at (comment, comment.length) 
+PASS comment.textContent += &quot;&quot;, with selected range collapsed at (comment, comment.length) 
+PASS comment.textContent += &quot;foo&quot;, with unselected range collapsed at (comment, comment.length) 
+PASS comment.textContent += &quot;foo&quot;, with selected range collapsed at (comment, comment.length) 
+PASS comment.textContent += comment.textContent, with unselected range collapsed at (comment, comment.length) 
+PASS comment.textContent += comment.textContent, with selected range collapsed at (comment, comment.length) 
+PASS comment.nodeValue = &quot;&quot;, with unselected range collapsed at (comment, comment.length) 
+PASS comment.nodeValue = &quot;&quot;, with selected range collapsed at (comment, comment.length) 
+PASS comment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (comment, comment.length) 
+PASS comment.nodeValue = &quot;foo&quot;, with selected range collapsed at (comment, comment.length) 
+PASS comment.nodeValue = comment.nodeValue, with unselected range collapsed at (comment, comment.length) 
+PASS comment.nodeValue = comment.nodeValue, with selected range collapsed at (comment, comment.length) 
+PASS comment.nodeValue += &quot;&quot;, with unselected range collapsed at (comment, comment.length) 
+PASS comment.nodeValue += &quot;&quot;, with selected range collapsed at (comment, comment.length) 
+PASS comment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (comment, comment.length) 
+PASS comment.nodeValue += &quot;foo&quot;, with selected range collapsed at (comment, comment.length) 
+PASS comment.nodeValue += comment.nodeValue, with unselected range collapsed at (comment, comment.length) 
+PASS comment.nodeValue += comment.nodeValue, with selected range collapsed at (comment, comment.length) 
+PASS foreignComment.data = &quot;&quot;, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.data = &quot;&quot;, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.data = &quot;foo&quot;, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.data = &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.data = foreignComment.data, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.data = foreignComment.data, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.data += &quot;&quot;, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.data += &quot;&quot;, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.data += &quot;foo&quot;, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.data += &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.data += foreignComment.data, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.data += foreignComment.data, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.textContent = &quot;&quot;, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.textContent = &quot;&quot;, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.textContent = &quot;foo&quot;, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.textContent = &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.textContent = foreignComment.textContent, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.textContent = foreignComment.textContent, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.textContent += &quot;&quot;, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.textContent += &quot;&quot;, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.textContent += &quot;foo&quot;, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.textContent += &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.textContent += foreignComment.textContent, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.textContent += foreignComment.textContent, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.nodeValue = &quot;&quot;, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.nodeValue = &quot;&quot;, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.nodeValue = foreignComment.nodeValue, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.nodeValue = foreignComment.nodeValue, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.nodeValue += &quot;&quot;, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.nodeValue += &quot;&quot;, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.nodeValue += foreignComment.nodeValue, with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.nodeValue += foreignComment.nodeValue, with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.data = &quot;&quot;, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.data = &quot;&quot;, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.data = &quot;foo&quot;, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.data = &quot;foo&quot;, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.data = foreignComment.data, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.data = foreignComment.data, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.data += &quot;&quot;, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.data += &quot;&quot;, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.data += &quot;foo&quot;, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.data += &quot;foo&quot;, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.data += foreignComment.data, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.data += foreignComment.data, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.textContent = &quot;&quot;, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.textContent = &quot;&quot;, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.textContent = &quot;foo&quot;, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.textContent = &quot;foo&quot;, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.textContent = foreignComment.textContent, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.textContent = foreignComment.textContent, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.textContent += &quot;&quot;, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.textContent += &quot;&quot;, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.textContent += &quot;foo&quot;, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.textContent += &quot;foo&quot;, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.textContent += foreignComment.textContent, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.textContent += foreignComment.textContent, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.nodeValue = &quot;&quot;, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.nodeValue = &quot;&quot;, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.nodeValue = &quot;foo&quot;, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.nodeValue = &quot;foo&quot;, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.nodeValue = foreignComment.nodeValue, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.nodeValue = foreignComment.nodeValue, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.nodeValue += &quot;&quot;, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.nodeValue += &quot;&quot;, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.nodeValue += &quot;foo&quot;, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.nodeValue += &quot;foo&quot;, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.nodeValue += foreignComment.nodeValue, with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.nodeValue += foreignComment.nodeValue, with selected range on foreignComment from 0 to 1 
+PASS foreignComment.data = &quot;&quot;, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.data = &quot;&quot;, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.data = &quot;foo&quot;, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.data = &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.data = foreignComment.data, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.data = foreignComment.data, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.data += &quot;&quot;, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.data += &quot;&quot;, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.data += &quot;foo&quot;, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.data += &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.data += foreignComment.data, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.data += foreignComment.data, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.textContent = &quot;&quot;, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.textContent = &quot;&quot;, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.textContent = &quot;foo&quot;, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.textContent = &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.textContent = foreignComment.textContent, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.textContent = foreignComment.textContent, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.textContent += &quot;&quot;, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.textContent += &quot;&quot;, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.textContent += &quot;foo&quot;, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.textContent += &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.textContent += foreignComment.textContent, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.textContent += foreignComment.textContent, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.nodeValue = &quot;&quot;, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.nodeValue = &quot;&quot;, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.nodeValue = foreignComment.nodeValue, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.nodeValue = foreignComment.nodeValue, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.nodeValue += &quot;&quot;, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.nodeValue += &quot;&quot;, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.nodeValue += foreignComment.nodeValue, with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.nodeValue += foreignComment.nodeValue, with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.data = &quot;&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.data = &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.data = &quot;foo&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.data = &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.data = foreignComment.data, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.data = foreignComment.data, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.data += &quot;&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.data += &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.data += &quot;foo&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.data += &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.data += foreignComment.data, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.data += foreignComment.data, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.textContent = &quot;&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.textContent = &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.textContent = &quot;foo&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.textContent = &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.textContent = foreignComment.textContent, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.textContent = foreignComment.textContent, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.textContent += &quot;&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.textContent += &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.textContent += &quot;foo&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.textContent += &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.textContent += foreignComment.textContent, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.textContent += foreignComment.textContent, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.nodeValue = &quot;&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.nodeValue = &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.nodeValue = &quot;foo&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.nodeValue = &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.nodeValue = foreignComment.nodeValue, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.nodeValue = foreignComment.nodeValue, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.nodeValue += &quot;&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.nodeValue += &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.nodeValue += &quot;foo&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.nodeValue += &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.nodeValue += foreignComment.nodeValue, with unselected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.nodeValue += foreignComment.nodeValue, with selected range on foreignComment from 0 to foreignComment.length 
+PASS foreignComment.data = &quot;&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.data = &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.data = &quot;foo&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.data = &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.data = foreignComment.data, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.data = foreignComment.data, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.data += &quot;&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.data += &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.data += &quot;foo&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.data += &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.data += foreignComment.data, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.data += foreignComment.data, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.textContent = &quot;&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.textContent = &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.textContent = &quot;foo&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.textContent = &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.textContent = foreignComment.textContent, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.textContent = foreignComment.textContent, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.textContent += &quot;&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.textContent += &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.textContent += &quot;foo&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.textContent += &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.textContent += foreignComment.textContent, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.textContent += foreignComment.textContent, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.nodeValue = &quot;&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.nodeValue = &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.nodeValue = &quot;foo&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.nodeValue = &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.nodeValue = foreignComment.nodeValue, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.nodeValue = foreignComment.nodeValue, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.nodeValue += &quot;&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.nodeValue += &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.nodeValue += &quot;foo&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.nodeValue += &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.nodeValue += foreignComment.nodeValue, with unselected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.nodeValue += foreignComment.nodeValue, with selected range on foreignComment from 1 to foreignComment.length 
+PASS foreignComment.data = &quot;&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.data = &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.data = &quot;foo&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.data = &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.data = foreignComment.data, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.data = foreignComment.data, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.data += &quot;&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.data += &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.data += &quot;foo&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.data += &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.data += foreignComment.data, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.data += foreignComment.data, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.textContent = &quot;&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.textContent = &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.textContent = &quot;foo&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.textContent = &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.textContent = foreignComment.textContent, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.textContent = foreignComment.textContent, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.textContent += &quot;&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.textContent += &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.textContent += &quot;foo&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.textContent += &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.textContent += foreignComment.textContent, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.textContent += foreignComment.textContent, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.nodeValue = &quot;&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.nodeValue = &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.nodeValue = foreignComment.nodeValue, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.nodeValue = foreignComment.nodeValue, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.nodeValue += &quot;&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.nodeValue += &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.nodeValue += foreignComment.nodeValue, with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.nodeValue += foreignComment.nodeValue, with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS xmlComment.data = &quot;&quot;, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.data = &quot;&quot;, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.data = &quot;foo&quot;, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.data = &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.data = xmlComment.data, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.data = xmlComment.data, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.data += &quot;&quot;, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.data += &quot;&quot;, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.data += &quot;foo&quot;, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.data += &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.data += xmlComment.data, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.data += xmlComment.data, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.textContent = &quot;&quot;, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.textContent = &quot;&quot;, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.textContent = &quot;foo&quot;, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.textContent = xmlComment.textContent, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.textContent = xmlComment.textContent, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.textContent += &quot;&quot;, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.textContent += &quot;&quot;, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.textContent += &quot;foo&quot;, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.textContent += xmlComment.textContent, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.textContent += xmlComment.textContent, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.nodeValue = &quot;&quot;, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.nodeValue = xmlComment.nodeValue, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.nodeValue = xmlComment.nodeValue, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.nodeValue += &quot;&quot;, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.nodeValue += xmlComment.nodeValue, with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.nodeValue += xmlComment.nodeValue, with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.data = &quot;&quot;, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.data = &quot;&quot;, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.data = &quot;foo&quot;, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.data = &quot;foo&quot;, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.data = xmlComment.data, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.data = xmlComment.data, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.data += &quot;&quot;, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.data += &quot;&quot;, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.data += &quot;foo&quot;, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.data += &quot;foo&quot;, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.data += xmlComment.data, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.data += xmlComment.data, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.textContent = &quot;&quot;, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.textContent = &quot;&quot;, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.textContent = &quot;foo&quot;, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.textContent = &quot;foo&quot;, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.textContent = xmlComment.textContent, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.textContent = xmlComment.textContent, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.textContent += &quot;&quot;, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.textContent += &quot;&quot;, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.textContent += &quot;foo&quot;, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.textContent += &quot;foo&quot;, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.textContent += xmlComment.textContent, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.textContent += xmlComment.textContent, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.nodeValue = &quot;&quot;, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.nodeValue = &quot;&quot;, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.nodeValue = &quot;foo&quot;, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.nodeValue = &quot;foo&quot;, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.nodeValue = xmlComment.nodeValue, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.nodeValue = xmlComment.nodeValue, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.nodeValue += &quot;&quot;, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.nodeValue += &quot;&quot;, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.nodeValue += &quot;foo&quot;, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.nodeValue += &quot;foo&quot;, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.nodeValue += xmlComment.nodeValue, with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.nodeValue += xmlComment.nodeValue, with selected range on xmlComment from 0 to 1 
+PASS xmlComment.data = &quot;&quot;, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.data = &quot;&quot;, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.data = &quot;foo&quot;, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.data = &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.data = xmlComment.data, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.data = xmlComment.data, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.data += &quot;&quot;, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.data += &quot;&quot;, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.data += &quot;foo&quot;, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.data += &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.data += xmlComment.data, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.data += xmlComment.data, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.textContent = &quot;&quot;, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.textContent = &quot;&quot;, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.textContent = &quot;foo&quot;, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.textContent = xmlComment.textContent, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.textContent = xmlComment.textContent, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.textContent += &quot;&quot;, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.textContent += &quot;&quot;, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.textContent += &quot;foo&quot;, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.textContent += xmlComment.textContent, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.textContent += xmlComment.textContent, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.nodeValue = &quot;&quot;, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.nodeValue = xmlComment.nodeValue, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.nodeValue = xmlComment.nodeValue, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.nodeValue += &quot;&quot;, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.nodeValue += xmlComment.nodeValue, with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.nodeValue += xmlComment.nodeValue, with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.data = &quot;&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.data = &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.data = &quot;foo&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.data = &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.data = xmlComment.data, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.data = xmlComment.data, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.data += &quot;&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.data += &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.data += &quot;foo&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.data += &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.data += xmlComment.data, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.data += xmlComment.data, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.textContent = &quot;&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.textContent = &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.textContent = &quot;foo&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.textContent = &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.textContent = xmlComment.textContent, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.textContent = xmlComment.textContent, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.textContent += &quot;&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.textContent += &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.textContent += &quot;foo&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.textContent += &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.textContent += xmlComment.textContent, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.textContent += xmlComment.textContent, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.nodeValue = &quot;&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.nodeValue = &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.nodeValue = &quot;foo&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.nodeValue = &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.nodeValue = xmlComment.nodeValue, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.nodeValue = xmlComment.nodeValue, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.nodeValue += &quot;&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.nodeValue += &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.nodeValue += &quot;foo&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.nodeValue += &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.nodeValue += xmlComment.nodeValue, with unselected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.nodeValue += xmlComment.nodeValue, with selected range on xmlComment from 0 to xmlComment.length 
+PASS xmlComment.data = &quot;&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.data = &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.data = &quot;foo&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.data = &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.data = xmlComment.data, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.data = xmlComment.data, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.data += &quot;&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.data += &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.data += &quot;foo&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.data += &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.data += xmlComment.data, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.data += xmlComment.data, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.textContent = &quot;&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.textContent = &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.textContent = &quot;foo&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.textContent = &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.textContent = xmlComment.textContent, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.textContent = xmlComment.textContent, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.textContent += &quot;&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.textContent += &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.textContent += &quot;foo&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.textContent += &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.textContent += xmlComment.textContent, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.textContent += xmlComment.textContent, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.nodeValue = &quot;&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.nodeValue = &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.nodeValue = &quot;foo&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.nodeValue = &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.nodeValue = xmlComment.nodeValue, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.nodeValue = xmlComment.nodeValue, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.nodeValue += &quot;&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.nodeValue += &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.nodeValue += &quot;foo&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.nodeValue += &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.nodeValue += xmlComment.nodeValue, with unselected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.nodeValue += xmlComment.nodeValue, with selected range on xmlComment from 1 to xmlComment.length 
+PASS xmlComment.data = &quot;&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.data = &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.data = &quot;foo&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.data = &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.data = xmlComment.data, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.data = xmlComment.data, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.data += &quot;&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.data += &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.data += &quot;foo&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.data += &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.data += xmlComment.data, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.data += xmlComment.data, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.textContent = &quot;&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.textContent = &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.textContent = &quot;foo&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.textContent = xmlComment.textContent, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.textContent = xmlComment.textContent, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.textContent += &quot;&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.textContent += &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.textContent += &quot;foo&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.textContent += xmlComment.textContent, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.textContent += xmlComment.textContent, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.nodeValue = &quot;&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.nodeValue = xmlComment.nodeValue, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.nodeValue = xmlComment.nodeValue, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.nodeValue += &quot;&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.nodeValue += xmlComment.nodeValue, with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.nodeValue += xmlComment.nodeValue, with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS detachedComment.data = &quot;&quot;, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.data = &quot;&quot;, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.data = &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.data = detachedComment.data, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.data = detachedComment.data, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.data += &quot;&quot;, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.data += &quot;&quot;, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.data += &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.data += detachedComment.data, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.data += detachedComment.data, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.textContent = &quot;&quot;, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.textContent = detachedComment.textContent, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.textContent = detachedComment.textContent, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.textContent += &quot;&quot;, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.textContent += detachedComment.textContent, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.textContent += detachedComment.textContent, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.nodeValue = detachedComment.nodeValue, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.nodeValue = detachedComment.nodeValue, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.nodeValue += detachedComment.nodeValue, with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.nodeValue += detachedComment.nodeValue, with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.data = &quot;&quot;, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.data = &quot;&quot;, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.data = &quot;foo&quot;, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.data = &quot;foo&quot;, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.data = detachedComment.data, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.data = detachedComment.data, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.data += &quot;&quot;, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.data += &quot;&quot;, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.data += &quot;foo&quot;, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.data += &quot;foo&quot;, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.data += detachedComment.data, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.data += detachedComment.data, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.textContent = &quot;&quot;, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.textContent = &quot;&quot;, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.textContent = &quot;foo&quot;, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.textContent = &quot;foo&quot;, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.textContent = detachedComment.textContent, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.textContent = detachedComment.textContent, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.textContent += &quot;&quot;, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.textContent += &quot;&quot;, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.textContent += &quot;foo&quot;, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.textContent += &quot;foo&quot;, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.textContent += detachedComment.textContent, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.textContent += detachedComment.textContent, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.nodeValue = &quot;&quot;, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.nodeValue = &quot;&quot;, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.nodeValue = &quot;foo&quot;, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.nodeValue = &quot;foo&quot;, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.nodeValue = detachedComment.nodeValue, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.nodeValue = detachedComment.nodeValue, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.nodeValue += &quot;&quot;, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.nodeValue += &quot;&quot;, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.nodeValue += &quot;foo&quot;, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.nodeValue += &quot;foo&quot;, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.nodeValue += detachedComment.nodeValue, with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.nodeValue += detachedComment.nodeValue, with selected range on detachedComment from 0 to 1 
+PASS detachedComment.data = &quot;&quot;, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.data = &quot;&quot;, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.data = &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.data = detachedComment.data, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.data = detachedComment.data, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.data += &quot;&quot;, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.data += &quot;&quot;, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.data += &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.data += detachedComment.data, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.data += detachedComment.data, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.textContent = &quot;&quot;, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.textContent = detachedComment.textContent, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.textContent = detachedComment.textContent, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.textContent += &quot;&quot;, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.textContent += detachedComment.textContent, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.textContent += detachedComment.textContent, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.nodeValue = detachedComment.nodeValue, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.nodeValue = detachedComment.nodeValue, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.nodeValue += detachedComment.nodeValue, with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.nodeValue += detachedComment.nodeValue, with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.data = &quot;&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.data = &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.data = &quot;foo&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.data = &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.data = detachedComment.data, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.data = detachedComment.data, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.data += &quot;&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.data += &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.data += &quot;foo&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.data += &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.data += detachedComment.data, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.data += detachedComment.data, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.textContent = &quot;&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.textContent = &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.textContent = &quot;foo&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.textContent = &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.textContent = detachedComment.textContent, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.textContent = detachedComment.textContent, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.textContent += &quot;&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.textContent += &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.textContent += &quot;foo&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.textContent += &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.textContent += detachedComment.textContent, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.textContent += detachedComment.textContent, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.nodeValue = &quot;&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.nodeValue = &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.nodeValue = &quot;foo&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.nodeValue = &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.nodeValue = detachedComment.nodeValue, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.nodeValue = detachedComment.nodeValue, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.nodeValue += &quot;&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.nodeValue += &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.nodeValue += &quot;foo&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.nodeValue += &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.nodeValue += detachedComment.nodeValue, with unselected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.nodeValue += detachedComment.nodeValue, with selected range on detachedComment from 0 to detachedComment.length 
+PASS detachedComment.data = &quot;&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.data = &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.data = &quot;foo&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.data = &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.data = detachedComment.data, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.data = detachedComment.data, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.data += &quot;&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.data += &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.data += &quot;foo&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.data += &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.data += detachedComment.data, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.data += detachedComment.data, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.textContent = &quot;&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.textContent = &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.textContent = &quot;foo&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.textContent = &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.textContent = detachedComment.textContent, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.textContent = detachedComment.textContent, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.textContent += &quot;&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.textContent += &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.textContent += &quot;foo&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.textContent += &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.textContent += detachedComment.textContent, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.textContent += detachedComment.textContent, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.nodeValue = &quot;&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.nodeValue = &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.nodeValue = &quot;foo&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.nodeValue = &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.nodeValue = detachedComment.nodeValue, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.nodeValue = detachedComment.nodeValue, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.nodeValue += &quot;&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.nodeValue += &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.nodeValue += &quot;foo&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.nodeValue += &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.nodeValue += detachedComment.nodeValue, with unselected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.nodeValue += detachedComment.nodeValue, with selected range on detachedComment from 1 to detachedComment.length 
+PASS detachedComment.data = &quot;&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.data = &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.data = &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.data = detachedComment.data, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.data = detachedComment.data, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.data += &quot;&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.data += &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.data += &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.data += detachedComment.data, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.data += detachedComment.data, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.textContent = &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.textContent = detachedComment.textContent, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.textContent = detachedComment.textContent, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.textContent += &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.textContent += detachedComment.textContent, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.textContent += detachedComment.textContent, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.nodeValue = detachedComment.nodeValue, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.nodeValue = detachedComment.nodeValue, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.nodeValue += detachedComment.nodeValue, with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.nodeValue += detachedComment.nodeValue, with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedForeignComment.data = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.data = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.data = detachedForeignComment.data, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.data = detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.data += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.data += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.data += detachedForeignComment.data, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.data += detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.data = &quot;&quot;, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.data = &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.data = &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.data = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.data = detachedForeignComment.data, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.data = detachedForeignComment.data, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.data += &quot;&quot;, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.data += &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.data += &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.data += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.data += detachedForeignComment.data, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.data += detachedForeignComment.data, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.textContent = &quot;&quot;, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.textContent = &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.textContent = &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.textContent = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.textContent += &quot;&quot;, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.textContent += &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.textContent += &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.textContent += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.nodeValue = &quot;&quot;, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.nodeValue = &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.nodeValue += &quot;&quot;, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.nodeValue += &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.data = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.data = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.data = detachedForeignComment.data, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.data = detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.data += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.data += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.data += detachedForeignComment.data, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.data += detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.data = &quot;&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.data = &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.data = &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.data = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.data = detachedForeignComment.data, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.data = detachedForeignComment.data, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.data += &quot;&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.data += &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.data += &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.data += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.data += detachedForeignComment.data, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.data += detachedForeignComment.data, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent = &quot;&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent = &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent = &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent += &quot;&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent += &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent += &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue = &quot;&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue = &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue += &quot;&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue += &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
+PASS detachedForeignComment.data = &quot;&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.data = &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.data = &quot;foo&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.data = &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.data = detachedForeignComment.data, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.data = detachedForeignComment.data, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.data += &quot;&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.data += &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.data += &quot;foo&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.data += &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.data += detachedForeignComment.data, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.data += detachedForeignComment.data, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent = &quot;&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent = &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent = &quot;foo&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent = &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent += &quot;&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent += &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent += &quot;foo&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent += &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue = &quot;&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue = &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue += &quot;&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue += &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
+PASS detachedForeignComment.data = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.data = &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.data = detachedForeignComment.data, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.data = detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.data += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.data += &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.data += detachedForeignComment.data, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.data += detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedXmlComment.data = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.data = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.data = detachedXmlComment.data, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.data = detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.data += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.data += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.data += detachedXmlComment.data, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.data += detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.data = &quot;&quot;, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.data = &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.data = &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.data = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.data = detachedXmlComment.data, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.data = detachedXmlComment.data, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.data += &quot;&quot;, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.data += &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.data += &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.data += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.data += detachedXmlComment.data, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.data += detachedXmlComment.data, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.textContent = &quot;&quot;, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.textContent = &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.textContent = &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.textContent = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.textContent += &quot;&quot;, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.textContent += &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.textContent += &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.textContent += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.nodeValue = &quot;&quot;, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.nodeValue = &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.nodeValue += &quot;&quot;, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.nodeValue += &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.data = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.data = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.data = detachedXmlComment.data, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.data = detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.data += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.data += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.data += detachedXmlComment.data, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.data += detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.data = &quot;&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.data = &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.data = &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.data = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.data = detachedXmlComment.data, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.data = detachedXmlComment.data, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.data += &quot;&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.data += &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.data += &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.data += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.data += detachedXmlComment.data, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.data += detachedXmlComment.data, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent = &quot;&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent = &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent = &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent += &quot;&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent += &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent += &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue = &quot;&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue = &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue += &quot;&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue += &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
+PASS detachedXmlComment.data = &quot;&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.data = &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.data = &quot;foo&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.data = &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.data = detachedXmlComment.data, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.data = detachedXmlComment.data, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.data += &quot;&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.data += &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.data += &quot;foo&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.data += &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.data += detachedXmlComment.data, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.data += detachedXmlComment.data, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent = &quot;&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent = &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent = &quot;foo&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent = &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent += &quot;&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent += &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent += &quot;foo&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent += &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue = &quot;&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue = &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue += &quot;&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue += &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
+PASS detachedXmlComment.data = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.data = &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.data = detachedXmlComment.data, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.data = detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.data += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.data += &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.data += detachedXmlComment.data, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.data += detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsdataChangehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-dataChange.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-dataChange.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-dataChange.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Range mutation tests - update data by IDL attributes&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Aryeh Gregor&quot; href=ayg@aryeh.name&gt;
+&lt;meta name=timeout content=long&gt;
+
+&lt;div id=log&gt;&lt;/div&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;../common.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Range-mutations.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+doTests(dataChangeTests, function(params) { return params[0] + &quot;.&quot; + eval(params[1]) + &quot; &quot; + eval(params[2]) + ' ' + params[3] }, testDataChange);
+testDiv.style.display = &quot;none&quot;;
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsdeleteDataexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-deleteData-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-deleteData-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-deleteData-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,566 @@
</span><ins>+
+PASS paras[0].firstChild.deleteData(376, 2), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.deleteData(376, 2), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.deleteData(0, 2), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.deleteData(0, 2), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.deleteData(1, 2), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.deleteData(paras[0].firstChild.length, 2), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.deleteData(paras[0].firstChild.length, 2), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.deleteData(1, 2), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(1, 2), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(2, 2), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(2, 2), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(3, 2), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(3, 2), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(376, 0), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.deleteData(376, 0), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.deleteData(0, 0), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.deleteData(0, 0), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.deleteData(1, 0), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.deleteData(1, 0), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.deleteData(paras[0].firstChild.length, 0), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.deleteData(paras[0].firstChild.length, 0), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.deleteData(1, 0), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(1, 0), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(2, 0), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(2, 0), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(3, 0), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(3, 0), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(376, 631), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.deleteData(376, 631), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.deleteData(0, 631), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.deleteData(0, 631), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.deleteData(1, 631), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.deleteData(1, 631), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.deleteData(paras[0].firstChild.length, 631), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.deleteData(paras[0].firstChild.length, 631), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.deleteData(1, 631), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(1, 631), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(2, 631), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(2, 631), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(3, 631), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.deleteData(3, 631), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(376, 2), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.deleteData(376, 2), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.deleteData(0, 2), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.deleteData(0, 2), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.deleteData(1, 2), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.deleteData(1, 2), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.deleteData(paras[1].firstChild.length, 2), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.deleteData(paras[1].firstChild.length, 2), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.deleteData(1, 2), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(1, 2), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(2, 2), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(2, 2), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(3, 2), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(3, 2), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(376, 0), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.deleteData(376, 0), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.deleteData(0, 0), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.deleteData(0, 0), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.deleteData(1, 0), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.deleteData(1, 0), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.deleteData(paras[1].firstChild.length, 0), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.deleteData(paras[1].firstChild.length, 0), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.deleteData(1, 0), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(1, 0), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(2, 0), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(2, 0), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(3, 0), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(3, 0), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(376, 631), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.deleteData(376, 631), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.deleteData(0, 631), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.deleteData(0, 631), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.deleteData(1, 631), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.deleteData(1, 631), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.deleteData(paras[1].firstChild.length, 631), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.deleteData(paras[1].firstChild.length, 631), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.deleteData(1, 631), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(1, 631), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(2, 631), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(2, 631), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(3, 631), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.deleteData(3, 631), with selected range on paras[1].firstChild from 1 to 3 
+PASS foreignTextNode.deleteData(376, 2), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.deleteData(376, 2), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.deleteData(0, 2), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.deleteData(0, 2), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.deleteData(1, 2), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.deleteData(1, 2), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.deleteData(foreignTextNode.length, 2), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.deleteData(foreignTextNode.length, 2), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.deleteData(1, 2), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(1, 2), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(2, 2), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(2, 2), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(3, 2), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(3, 2), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(376, 0), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.deleteData(376, 0), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.deleteData(0, 0), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.deleteData(0, 0), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.deleteData(1, 0), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.deleteData(1, 0), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.deleteData(foreignTextNode.length, 0), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.deleteData(foreignTextNode.length, 0), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.deleteData(1, 0), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(1, 0), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(2, 0), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(2, 0), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(3, 0), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(3, 0), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(376, 631), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.deleteData(376, 631), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.deleteData(0, 631), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.deleteData(0, 631), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.deleteData(1, 631), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.deleteData(1, 631), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.deleteData(foreignTextNode.length, 631), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.deleteData(foreignTextNode.length, 631), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.deleteData(1, 631), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(1, 631), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(2, 631), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(2, 631), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(3, 631), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.deleteData(3, 631), with selected range on foreignTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(376, 2), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.deleteData(376, 2), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.deleteData(0, 2), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.deleteData(0, 2), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.deleteData(1, 2), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.deleteData(1, 2), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.deleteData(xmlTextNode.length, 2), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.deleteData(xmlTextNode.length, 2), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.deleteData(1, 2), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(1, 2), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(2, 2), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(2, 2), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(3, 2), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(3, 2), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(376, 0), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.deleteData(376, 0), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.deleteData(0, 0), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.deleteData(0, 0), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.deleteData(1, 0), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.deleteData(1, 0), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.deleteData(xmlTextNode.length, 0), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.deleteData(xmlTextNode.length, 0), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.deleteData(1, 0), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(1, 0), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(2, 0), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(2, 0), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(3, 0), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(3, 0), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(376, 631), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.deleteData(376, 631), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.deleteData(0, 631), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.deleteData(0, 631), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.deleteData(1, 631), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.deleteData(1, 631), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.deleteData(xmlTextNode.length, 631), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.deleteData(xmlTextNode.length, 631), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.deleteData(1, 631), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(1, 631), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(2, 631), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(2, 631), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(3, 631), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.deleteData(3, 631), with selected range on xmlTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(376, 2), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.deleteData(376, 2), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.deleteData(0, 2), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.deleteData(0, 2), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.deleteData(1, 2), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.deleteData(1, 2), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.deleteData(detachedTextNode.length, 2), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.deleteData(detachedTextNode.length, 2), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.deleteData(1, 2), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(1, 2), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(2, 2), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(2, 2), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(3, 2), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(3, 2), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(376, 0), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.deleteData(376, 0), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.deleteData(0, 0), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.deleteData(0, 0), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.deleteData(1, 0), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.deleteData(1, 0), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.deleteData(detachedTextNode.length, 0), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.deleteData(detachedTextNode.length, 0), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.deleteData(1, 0), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(1, 0), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(2, 0), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(2, 0), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(3, 0), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(3, 0), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(376, 631), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.deleteData(376, 631), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.deleteData(0, 631), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.deleteData(0, 631), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.deleteData(1, 631), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.deleteData(1, 631), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.deleteData(detachedTextNode.length, 631), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.deleteData(detachedTextNode.length, 631), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.deleteData(1, 631), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(1, 631), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(2, 631), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(2, 631), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(3, 631), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.deleteData(3, 631), with selected range on detachedTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(376, 2), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.deleteData(376, 2), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.deleteData(0, 2), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.deleteData(0, 2), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.deleteData(1, 2), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.deleteData(1, 2), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 2), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 2), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.deleteData(1, 2), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(1, 2), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(2, 2), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(2, 2), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(3, 2), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(3, 2), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(376, 0), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.deleteData(376, 0), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.deleteData(0, 0), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.deleteData(0, 0), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.deleteData(1, 0), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.deleteData(1, 0), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 0), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 0), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.deleteData(1, 0), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(1, 0), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(2, 0), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(2, 0), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(3, 0), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(3, 0), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(376, 631), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.deleteData(376, 631), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.deleteData(0, 631), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.deleteData(0, 631), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.deleteData(1, 631), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.deleteData(1, 631), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 631), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 631), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.deleteData(1, 631), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(1, 631), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(2, 631), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(2, 631), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(3, 631), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.deleteData(3, 631), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(376, 2), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.deleteData(376, 2), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.deleteData(0, 2), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.deleteData(0, 2), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.deleteData(1, 2), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.deleteData(1, 2), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 2), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 2), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.deleteData(1, 2), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(1, 2), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(2, 2), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(2, 2), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(3, 2), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(3, 2), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(376, 0), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.deleteData(376, 0), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.deleteData(0, 0), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.deleteData(0, 0), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.deleteData(1, 0), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.deleteData(1, 0), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 0), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 0), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.deleteData(1, 0), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(1, 0), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(2, 0), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(2, 0), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(3, 0), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(3, 0), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(376, 631), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.deleteData(376, 631), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.deleteData(0, 631), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.deleteData(0, 631), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.deleteData(1, 631), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.deleteData(1, 631), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 631), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 631), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.deleteData(1, 631), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(1, 631), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(2, 631), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(2, 631), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(3, 631), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.deleteData(3, 631), with selected range on detachedXmlTextNode from 1 to 3 
+PASS comment.deleteData(376, 2), with unselected range on comment from 0 to 1 
+PASS comment.deleteData(376, 2), with selected range on comment from 0 to 1 
+PASS comment.deleteData(0, 2), with unselected range collapsed at (comment, 0) 
+PASS comment.deleteData(0, 2), with selected range collapsed at (comment, 0) 
+PASS comment.deleteData(1, 2), with unselected range collapsed at (comment, 1) 
+PASS comment.deleteData(1, 2), with selected range collapsed at (comment, 1) 
+PASS comment.deleteData(comment.length, 2), with unselected range collapsed at (comment, comment.length) 
+PASS comment.deleteData(comment.length, 2), with selected range collapsed at (comment, comment.length) 
+PASS comment.deleteData(1, 2), with unselected range on comment from 1 to 3 
+PASS comment.deleteData(1, 2), with selected range on comment from 1 to 3 
+PASS comment.deleteData(2, 2), with unselected range on comment from 1 to 3 
+PASS comment.deleteData(2, 2), with selected range on comment from 1 to 3 
+PASS comment.deleteData(3, 2), with unselected range on comment from 1 to 3 
+PASS comment.deleteData(3, 2), with selected range on comment from 1 to 3 
+PASS comment.deleteData(376, 0), with unselected range on comment from 0 to 1 
+PASS comment.deleteData(376, 0), with selected range on comment from 0 to 1 
+PASS comment.deleteData(0, 0), with unselected range collapsed at (comment, 0) 
+PASS comment.deleteData(0, 0), with selected range collapsed at (comment, 0) 
+PASS comment.deleteData(1, 0), with unselected range collapsed at (comment, 1) 
+PASS comment.deleteData(1, 0), with selected range collapsed at (comment, 1) 
+PASS comment.deleteData(comment.length, 0), with unselected range collapsed at (comment, comment.length) 
+PASS comment.deleteData(comment.length, 0), with selected range collapsed at (comment, comment.length) 
+PASS comment.deleteData(1, 0), with unselected range on comment from 1 to 3 
+PASS comment.deleteData(1, 0), with selected range on comment from 1 to 3 
+PASS comment.deleteData(2, 0), with unselected range on comment from 1 to 3 
+PASS comment.deleteData(2, 0), with selected range on comment from 1 to 3 
+PASS comment.deleteData(3, 0), with unselected range on comment from 1 to 3 
+PASS comment.deleteData(3, 0), with selected range on comment from 1 to 3 
+PASS comment.deleteData(376, 631), with unselected range on comment from 0 to 1 
+PASS comment.deleteData(376, 631), with selected range on comment from 0 to 1 
+PASS comment.deleteData(0, 631), with unselected range collapsed at (comment, 0) 
+PASS comment.deleteData(0, 631), with selected range collapsed at (comment, 0) 
+PASS comment.deleteData(1, 631), with unselected range collapsed at (comment, 1) 
+PASS comment.deleteData(1, 631), with selected range collapsed at (comment, 1) 
+PASS comment.deleteData(comment.length, 631), with unselected range collapsed at (comment, comment.length) 
+PASS comment.deleteData(comment.length, 631), with selected range collapsed at (comment, comment.length) 
+PASS comment.deleteData(1, 631), with unselected range on comment from 1 to 3 
+PASS comment.deleteData(1, 631), with selected range on comment from 1 to 3 
+PASS comment.deleteData(2, 631), with unselected range on comment from 1 to 3 
+PASS comment.deleteData(2, 631), with selected range on comment from 1 to 3 
+PASS comment.deleteData(3, 631), with unselected range on comment from 1 to 3 
+PASS comment.deleteData(3, 631), with selected range on comment from 1 to 3 
+PASS foreignComment.deleteData(376, 2), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.deleteData(376, 2), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.deleteData(0, 2), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.deleteData(0, 2), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.deleteData(1, 2), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.deleteData(1, 2), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.deleteData(foreignComment.length, 2), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.deleteData(foreignComment.length, 2), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.deleteData(1, 2), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(1, 2), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(2, 2), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(2, 2), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(3, 2), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(3, 2), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(376, 0), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.deleteData(376, 0), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.deleteData(0, 0), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.deleteData(0, 0), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.deleteData(1, 0), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.deleteData(1, 0), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.deleteData(foreignComment.length, 0), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.deleteData(foreignComment.length, 0), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.deleteData(1, 0), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(1, 0), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(2, 0), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(2, 0), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(3, 0), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(3, 0), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(376, 631), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.deleteData(376, 631), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.deleteData(0, 631), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.deleteData(0, 631), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.deleteData(1, 631), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.deleteData(1, 631), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.deleteData(foreignComment.length, 631), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.deleteData(foreignComment.length, 631), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.deleteData(1, 631), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(1, 631), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(2, 631), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(2, 631), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(3, 631), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.deleteData(3, 631), with selected range on foreignComment from 1 to 3 
+PASS xmlComment.deleteData(376, 2), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.deleteData(376, 2), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.deleteData(0, 2), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.deleteData(0, 2), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.deleteData(1, 2), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.deleteData(1, 2), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.deleteData(xmlComment.length, 2), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.deleteData(xmlComment.length, 2), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.deleteData(1, 2), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(1, 2), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(2, 2), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(2, 2), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(3, 2), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(3, 2), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(376, 0), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.deleteData(376, 0), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.deleteData(0, 0), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.deleteData(0, 0), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.deleteData(1, 0), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.deleteData(1, 0), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.deleteData(xmlComment.length, 0), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.deleteData(xmlComment.length, 0), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.deleteData(1, 0), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(1, 0), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(2, 0), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(2, 0), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(3, 0), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(3, 0), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(376, 631), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.deleteData(376, 631), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.deleteData(0, 631), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.deleteData(0, 631), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.deleteData(1, 631), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.deleteData(1, 631), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.deleteData(xmlComment.length, 631), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.deleteData(xmlComment.length, 631), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.deleteData(1, 631), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(1, 631), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(2, 631), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(2, 631), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(3, 631), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.deleteData(3, 631), with selected range on xmlComment from 1 to 3 
+PASS detachedComment.deleteData(376, 2), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.deleteData(376, 2), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.deleteData(0, 2), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.deleteData(0, 2), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.deleteData(1, 2), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.deleteData(1, 2), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.deleteData(detachedComment.length, 2), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.deleteData(detachedComment.length, 2), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.deleteData(1, 2), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(1, 2), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(2, 2), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(2, 2), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(3, 2), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(3, 2), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(376, 0), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.deleteData(376, 0), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.deleteData(0, 0), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.deleteData(0, 0), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.deleteData(1, 0), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.deleteData(1, 0), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.deleteData(detachedComment.length, 0), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.deleteData(detachedComment.length, 0), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.deleteData(1, 0), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(1, 0), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(2, 0), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(2, 0), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(3, 0), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(3, 0), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(376, 631), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.deleteData(376, 631), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.deleteData(0, 631), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.deleteData(0, 631), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.deleteData(1, 631), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.deleteData(1, 631), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.deleteData(detachedComment.length, 631), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.deleteData(detachedComment.length, 631), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.deleteData(1, 631), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(1, 631), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(2, 631), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(2, 631), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(3, 631), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.deleteData(3, 631), with selected range on detachedComment from 1 to 3 
+PASS detachedForeignComment.deleteData(376, 2), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.deleteData(376, 2), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.deleteData(0, 2), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.deleteData(0, 2), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.deleteData(1, 2), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.deleteData(1, 2), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.deleteData(detachedForeignComment.length, 2), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.deleteData(detachedForeignComment.length, 2), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.deleteData(1, 2), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(1, 2), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(2, 2), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(2, 2), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(3, 2), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(3, 2), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(376, 0), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.deleteData(376, 0), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.deleteData(0, 0), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.deleteData(0, 0), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.deleteData(1, 0), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.deleteData(1, 0), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.deleteData(detachedForeignComment.length, 0), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.deleteData(detachedForeignComment.length, 0), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.deleteData(1, 0), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(1, 0), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(2, 0), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(2, 0), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(3, 0), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(3, 0), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(376, 631), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.deleteData(376, 631), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.deleteData(0, 631), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.deleteData(0, 631), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.deleteData(1, 631), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.deleteData(1, 631), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.deleteData(detachedForeignComment.length, 631), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.deleteData(detachedForeignComment.length, 631), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.deleteData(1, 631), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(1, 631), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(2, 631), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(2, 631), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(3, 631), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.deleteData(3, 631), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedXmlComment.deleteData(376, 2), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.deleteData(376, 2), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.deleteData(0, 2), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.deleteData(0, 2), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.deleteData(1, 2), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.deleteData(1, 2), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.deleteData(detachedXmlComment.length, 2), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.deleteData(detachedXmlComment.length, 2), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.deleteData(1, 2), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(1, 2), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(2, 2), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(2, 2), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(3, 2), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(3, 2), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(376, 0), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.deleteData(376, 0), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.deleteData(0, 0), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.deleteData(0, 0), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.deleteData(1, 0), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.deleteData(1, 0), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.deleteData(detachedXmlComment.length, 0), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.deleteData(detachedXmlComment.length, 0), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.deleteData(1, 0), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(1, 0), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(2, 0), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(2, 0), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(3, 0), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(3, 0), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(376, 631), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.deleteData(376, 631), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.deleteData(0, 631), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.deleteData(0, 631), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.deleteData(1, 631), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.deleteData(1, 631), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.deleteData(detachedXmlComment.length, 631), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.deleteData(detachedXmlComment.length, 631), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.deleteData(1, 631), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(1, 631), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(2, 631), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(2, 631), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(3, 631), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.deleteData(3, 631), with selected range on detachedXmlComment from 1 to 3 
+PASS paras[0].firstChild.deleteData(1, 2), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.deleteData(1, 2), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.deleteData(1, 2), with selected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.deleteData(1, 2), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.deleteData(1, 2), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.deleteData(1, 2), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.deleteData(2, 2), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.deleteData(2, 2), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.deleteData(3, 2), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.deleteData(3, 2), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.deleteData(1, 2), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.deleteData(1, 2), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.deleteData(2, 2), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.deleteData(2, 2), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.deleteData(3, 2), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.deleteData(3, 2), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsdeleteDatahtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-deleteData.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-deleteData.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-deleteData.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Range mutation tests - deleteData&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Aryeh Gregor&quot; href=ayg@aryeh.name&gt;
+&lt;meta name=timeout content=long&gt;
+
+&lt;div id=log&gt;&lt;/div&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;../common.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Range-mutations.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+doTests(deleteDataTests, function(params) { return params[0] + &quot;.deleteData(&quot; + params[1] + &quot;, &quot; + params[2] + &quot;)&quot; }, testDeleteData);
+testDiv.style.display = &quot;none&quot;;
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsinsertBeforeexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertBefore-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertBefore-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertBefore-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,78 @@
</span><ins>+
+PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range collapsed at (paras[0], 0) 
+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range collapsed at (paras[0], 0) 
+PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range on paras[0] from 0 to 1 
+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range on paras[0] from 0 to 1 
+PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range collapsed at (paras[0], 1) 
+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range collapsed at (paras[0], 1) 
+PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range on testDiv from 0 to 2 
+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range on testDiv from 0 to 2 
+PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range collapsed at (testDiv, 1) 
+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range collapsed at (testDiv, 1) 
+PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range on testDiv from 1 to 2 
+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range on testDiv from 1 to 2 
+PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range collapsed at (testDiv, 2) 
+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range collapsed at (testDiv, 2) 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range on testDiv from 0 to 1 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range on testDiv from 0 to 1 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range on testDiv from 0 to 2 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range on testDiv from 0 to 2 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range collapsed at (testDiv, 1) 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range collapsed at (testDiv, 1) 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range on testDiv from 1 to 2 
+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range on testDiv from 1 to 2 
+PASS paras[0].insertBefore(paras[1], null), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].insertBefore(paras[1], null), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].insertBefore(paras[1], null), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(paras[1], null), with selected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(paras[1], null), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].insertBefore(paras[1], null), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].insertBefore(paras[1], null), with unselected range on testDiv from 0 to 1 
+PASS paras[0].insertBefore(paras[1], null), with selected range on testDiv from 0 to 1 
+PASS paras[0].insertBefore(paras[1], null), with unselected range on testDiv from 0 to 2 
+PASS paras[0].insertBefore(paras[1], null), with selected range on testDiv from 0 to 2 
+PASS paras[0].insertBefore(paras[1], null), with unselected range collapsed at (testDiv, 1) 
+PASS paras[0].insertBefore(paras[1], null), with selected range collapsed at (testDiv, 1) 
+PASS paras[0].insertBefore(paras[1], null), with unselected range on testDiv from 1 to 2 
+PASS paras[0].insertBefore(paras[1], null), with selected range on testDiv from 1 to 2 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with unselected range collapsed at (foreignDoc, 0) 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 0) 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with unselected range on foreignDoc from 0 to 1 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 1 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with unselected range on foreignDoc from 0 to 2 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 2 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with unselected range collapsed at (foreignDoc, 1) 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 1) 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with unselected range collapsed at (foreignDoc, 0) 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 0) 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with unselected range on foreignDoc from 0 to 1 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 1 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with unselected range on foreignDoc from 0 to 2 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 2 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with unselected range collapsed at (foreignDoc, 1) 
+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 1) 
+PASS foreignDoc.insertBefore(detachedComment, null), with unselected range on foreignDoc from 0 to 1 
+PASS foreignDoc.insertBefore(detachedComment, null), with selected range on foreignDoc from 0 to 1 
+PASS paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].insertBefore(paras[0], paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(paras[0], paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(testDiv, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(testDiv, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(document, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(document, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(foreignDoc, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(foreignDoc, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(document.doctype, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].insertBefore(document.doctype, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsinsertBeforehtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertBefore.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertBefore.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertBefore.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Range mutation tests - insertBefore&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Aryeh Gregor&quot; href=ayg@aryeh.name&gt;
+&lt;meta name=timeout content=long&gt;
+
+&lt;div id=log&gt;&lt;/div&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;../common.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Range-mutations.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+doTests(insertBeforeTests, function(params) { return params[0] + &quot;.insertBefore(&quot; + params[1] + &quot;, &quot; + params[2] + &quot;)&quot; }, testInsertBefore);
+testDiv.style.display = &quot;none&quot;;
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsinsertDataexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertData-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertData-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertData-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,384 @@
</span><ins>+
+PASS paras[0].firstChild.insertData(376, &quot;foo&quot;), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.insertData(376, &quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.insertData(0, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.insertData(0, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.insertData(paras[0].firstChild.length, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.insertData(paras[0].firstChild.length, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.insertData(2, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.insertData(2, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.insertData(3, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.insertData(3, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.insertData(376, &quot;&quot;), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.insertData(376, &quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.insertData(0, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.insertData(0, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.insertData(1, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.insertData(1, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.insertData(paras[0].firstChild.length, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.insertData(paras[0].firstChild.length, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.insertData(1, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.insertData(1, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.insertData(2, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.insertData(2, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.insertData(3, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.insertData(3, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[1].firstChild.insertData(376, &quot;foo&quot;), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.insertData(376, &quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.insertData(0, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.insertData(0, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.insertData(1, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.insertData(1, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.insertData(paras[1].firstChild.length, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.insertData(paras[1].firstChild.length, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.insertData(1, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.insertData(1, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.insertData(2, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.insertData(2, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.insertData(3, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.insertData(3, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.insertData(376, &quot;&quot;), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.insertData(376, &quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.insertData(0, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.insertData(0, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.insertData(1, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.insertData(1, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.insertData(paras[1].firstChild.length, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.insertData(paras[1].firstChild.length, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.insertData(1, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.insertData(1, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.insertData(2, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.insertData(2, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.insertData(3, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.insertData(3, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS foreignTextNode.insertData(376, &quot;foo&quot;), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.insertData(376, &quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.insertData(0, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.insertData(1, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.insertData(foreignTextNode.length, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.insertData(foreignTextNode.length, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.insertData(1, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.insertData(1, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.insertData(2, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.insertData(2, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.insertData(3, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.insertData(3, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.insertData(376, &quot;&quot;), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.insertData(376, &quot;&quot;), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.insertData(0, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.insertData(1, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.insertData(foreignTextNode.length, &quot;&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.insertData(foreignTextNode.length, &quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.insertData(1, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.insertData(1, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.insertData(2, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.insertData(2, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.insertData(3, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.insertData(3, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS xmlTextNode.insertData(376, &quot;foo&quot;), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.insertData(376, &quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.insertData(0, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.insertData(1, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.insertData(xmlTextNode.length, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.insertData(xmlTextNode.length, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.insertData(1, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.insertData(1, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.insertData(2, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.insertData(2, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.insertData(3, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.insertData(3, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.insertData(376, &quot;&quot;), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.insertData(376, &quot;&quot;), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.insertData(0, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.insertData(1, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.insertData(xmlTextNode.length, &quot;&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.insertData(xmlTextNode.length, &quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.insertData(1, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.insertData(1, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.insertData(2, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.insertData(2, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.insertData(3, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.insertData(3, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS detachedTextNode.insertData(376, &quot;foo&quot;), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.insertData(376, &quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.insertData(0, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.insertData(1, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.insertData(detachedTextNode.length, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.insertData(detachedTextNode.length, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.insertData(1, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.insertData(1, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.insertData(2, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.insertData(2, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.insertData(3, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.insertData(3, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.insertData(376, &quot;&quot;), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.insertData(376, &quot;&quot;), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.insertData(0, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.insertData(1, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.insertData(detachedTextNode.length, &quot;&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.insertData(detachedTextNode.length, &quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.insertData(1, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.insertData(1, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.insertData(2, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.insertData(2, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.insertData(3, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.insertData(3, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedForeignTextNode.insertData(376, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.insertData(376, &quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.insertData(0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.insertData(1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.insertData(detachedForeignTextNode.length, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.insertData(detachedForeignTextNode.length, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.insertData(1, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.insertData(1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.insertData(2, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.insertData(2, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.insertData(3, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.insertData(3, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.insertData(376, &quot;&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.insertData(376, &quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.insertData(0, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.insertData(1, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.insertData(detachedForeignTextNode.length, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.insertData(detachedForeignTextNode.length, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.insertData(1, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.insertData(1, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.insertData(2, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.insertData(2, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.insertData(3, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.insertData(3, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedXmlTextNode.insertData(376, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.insertData(376, &quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.insertData(0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.insertData(1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.insertData(detachedXmlTextNode.length, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.insertData(detachedXmlTextNode.length, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.insertData(1, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.insertData(1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.insertData(2, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.insertData(2, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.insertData(3, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.insertData(3, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.insertData(376, &quot;&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.insertData(376, &quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.insertData(0, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.insertData(1, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.insertData(detachedXmlTextNode.length, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.insertData(detachedXmlTextNode.length, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.insertData(1, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.insertData(1, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.insertData(2, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.insertData(2, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.insertData(3, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.insertData(3, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS comment.insertData(376, &quot;foo&quot;), with unselected range on comment from 0 to 1 
+PASS comment.insertData(376, &quot;foo&quot;), with selected range on comment from 0 to 1 
+PASS comment.insertData(0, &quot;foo&quot;), with unselected range collapsed at (comment, 0) 
+PASS comment.insertData(0, &quot;foo&quot;), with selected range collapsed at (comment, 0) 
+PASS comment.insertData(1, &quot;foo&quot;), with unselected range collapsed at (comment, 1) 
+PASS comment.insertData(1, &quot;foo&quot;), with selected range collapsed at (comment, 1) 
+PASS comment.insertData(comment.length, &quot;foo&quot;), with unselected range collapsed at (comment, comment.length) 
+PASS comment.insertData(comment.length, &quot;foo&quot;), with selected range collapsed at (comment, comment.length) 
+PASS comment.insertData(1, &quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.insertData(1, &quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.insertData(2, &quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.insertData(2, &quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.insertData(3, &quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.insertData(3, &quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.insertData(376, &quot;&quot;), with unselected range on comment from 0 to 1 
+PASS comment.insertData(376, &quot;&quot;), with selected range on comment from 0 to 1 
+PASS comment.insertData(0, &quot;&quot;), with unselected range collapsed at (comment, 0) 
+PASS comment.insertData(0, &quot;&quot;), with selected range collapsed at (comment, 0) 
+PASS comment.insertData(1, &quot;&quot;), with unselected range collapsed at (comment, 1) 
+PASS comment.insertData(1, &quot;&quot;), with selected range collapsed at (comment, 1) 
+PASS comment.insertData(comment.length, &quot;&quot;), with unselected range collapsed at (comment, comment.length) 
+PASS comment.insertData(comment.length, &quot;&quot;), with selected range collapsed at (comment, comment.length) 
+PASS comment.insertData(1, &quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.insertData(1, &quot;&quot;), with selected range on comment from 1 to 3 
+PASS comment.insertData(2, &quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.insertData(2, &quot;&quot;), with selected range on comment from 1 to 3 
+PASS comment.insertData(3, &quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.insertData(3, &quot;&quot;), with selected range on comment from 1 to 3 
+PASS foreignComment.insertData(376, &quot;foo&quot;), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.insertData(376, &quot;foo&quot;), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.insertData(0, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.insertData(1, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.insertData(foreignComment.length, &quot;foo&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.insertData(foreignComment.length, &quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.insertData(1, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.insertData(1, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.insertData(2, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.insertData(2, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.insertData(3, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.insertData(3, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.insertData(376, &quot;&quot;), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.insertData(376, &quot;&quot;), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.insertData(0, &quot;&quot;), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.insertData(0, &quot;&quot;), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.insertData(1, &quot;&quot;), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.insertData(1, &quot;&quot;), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.insertData(foreignComment.length, &quot;&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.insertData(foreignComment.length, &quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.insertData(1, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.insertData(1, &quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.insertData(2, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.insertData(2, &quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.insertData(3, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.insertData(3, &quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS xmlComment.insertData(376, &quot;foo&quot;), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.insertData(376, &quot;foo&quot;), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.insertData(0, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.insertData(1, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.insertData(xmlComment.length, &quot;foo&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.insertData(xmlComment.length, &quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.insertData(1, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.insertData(1, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.insertData(2, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.insertData(2, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.insertData(3, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.insertData(3, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.insertData(376, &quot;&quot;), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.insertData(376, &quot;&quot;), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.insertData(0, &quot;&quot;), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.insertData(0, &quot;&quot;), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.insertData(1, &quot;&quot;), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.insertData(1, &quot;&quot;), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.insertData(xmlComment.length, &quot;&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.insertData(xmlComment.length, &quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.insertData(1, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.insertData(1, &quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.insertData(2, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.insertData(2, &quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.insertData(3, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.insertData(3, &quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS detachedComment.insertData(376, &quot;foo&quot;), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.insertData(376, &quot;foo&quot;), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.insertData(0, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.insertData(1, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.insertData(detachedComment.length, &quot;foo&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.insertData(detachedComment.length, &quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.insertData(1, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.insertData(1, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.insertData(2, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.insertData(2, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.insertData(3, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.insertData(3, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.insertData(376, &quot;&quot;), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.insertData(376, &quot;&quot;), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.insertData(0, &quot;&quot;), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.insertData(0, &quot;&quot;), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.insertData(1, &quot;&quot;), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.insertData(1, &quot;&quot;), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.insertData(detachedComment.length, &quot;&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.insertData(detachedComment.length, &quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.insertData(1, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.insertData(1, &quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.insertData(2, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.insertData(2, &quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.insertData(3, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.insertData(3, &quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedForeignComment.insertData(376, &quot;foo&quot;), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.insertData(376, &quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.insertData(0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.insertData(1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.insertData(detachedForeignComment.length, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.insertData(detachedForeignComment.length, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.insertData(1, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.insertData(1, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.insertData(2, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.insertData(2, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.insertData(3, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.insertData(3, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.insertData(376, &quot;&quot;), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.insertData(376, &quot;&quot;), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.insertData(0, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.insertData(0, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.insertData(1, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.insertData(1, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.insertData(detachedForeignComment.length, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.insertData(detachedForeignComment.length, &quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.insertData(1, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.insertData(1, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.insertData(2, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.insertData(2, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.insertData(3, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.insertData(3, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedXmlComment.insertData(376, &quot;foo&quot;), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.insertData(376, &quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.insertData(0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.insertData(1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.insertData(detachedXmlComment.length, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.insertData(detachedXmlComment.length, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.insertData(1, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.insertData(1, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.insertData(2, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.insertData(2, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.insertData(3, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.insertData(3, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.insertData(376, &quot;&quot;), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.insertData(376, &quot;&quot;), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.insertData(0, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.insertData(0, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.insertData(1, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.insertData(1, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.insertData(detachedXmlComment.length, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.insertData(detachedXmlComment.length, &quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.insertData(1, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.insertData(1, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.insertData(2, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.insertData(2, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.insertData(3, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.insertData(3, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.insertData(2, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.insertData(2, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.insertData(3, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.insertData(3, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.insertData(2, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.insertData(2, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.insertData(3, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.insertData(3, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsinsertDatahtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertData.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertData.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertData.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Range mutation tests - insertData&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Aryeh Gregor&quot; href=ayg@aryeh.name&gt;
+&lt;meta name=timeout content=long&gt;
+
+&lt;div id=log&gt;&lt;/div&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;../common.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Range-mutations.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+doTests(insertDataTests, function(params) { return params[0] + &quot;.insertData(&quot; + params[1] + &quot;, &quot; + params[2] + &quot;)&quot; }, testInsertData);
+testDiv.style.display = &quot;none&quot;;
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsremoveChildexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-removeChild-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-removeChild-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-removeChild-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+
+PASS paras[0].parentNode.removeChild(paras[0]), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].parentNode.removeChild(paras[0]), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].parentNode.removeChild(paras[0]), with selected range on paras[0] from 0 to 1 
+PASS paras[0].parentNode.removeChild(paras[0]), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].parentNode.removeChild(paras[0]), with unselected range collapsed at (testDiv, 0) 
+PASS paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (testDiv, 0) 
+PASS paras[0].parentNode.removeChild(paras[0]), with unselected range on testDiv from 0 to 1 
+PASS paras[0].parentNode.removeChild(paras[0]), with selected range on testDiv from 0 to 1 
+PASS paras[0].parentNode.removeChild(paras[0]), with unselected range collapsed at (testDiv, 1) 
+PASS paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (testDiv, 1) 
+PASS paras[0].parentNode.removeChild(paras[0]), with unselected range on testDiv from 0 to 2 
+PASS paras[0].parentNode.removeChild(paras[0]), with selected range on testDiv from 0 to 2 
+PASS paras[0].parentNode.removeChild(paras[0]), with unselected range on testDiv from 1 to 2 
+PASS paras[0].parentNode.removeChild(paras[0]), with selected range on testDiv from 1 to 2 
+PASS paras[0].parentNode.removeChild(paras[0]), with unselected range collapsed at (testDiv, 2) 
+PASS paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (testDiv, 2) 
+PASS foreignDoc.documentElement.parentNode.removeChild(foreignDoc.documentElement), with unselected range on foreignDoc from 0 to foreignDoc.childNodes.length 
+PASS foreignDoc.documentElement.parentNode.removeChild(foreignDoc.documentElement), with selected range on foreignDoc from 0 to foreignDoc.childNodes.length 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsremoveChildhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-removeChild.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-removeChild.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-removeChild.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Range mutation tests - removeChild&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Aryeh Gregor&quot; href=ayg@aryeh.name&gt;
+&lt;meta name=timeout content=long&gt;
+
+&lt;div id=log&gt;&lt;/div&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;../common.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Range-mutations.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+doTests(removeChildTests, function(params) { return params[0] + &quot;.parentNode.removeChild(&quot; + params[0] + &quot;)&quot; }, testRemoveChild);
+testDiv.style.display = &quot;none&quot;;
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsreplaceChildexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceChild-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceChild-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceChild-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,62 @@
</span><ins>+
+PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range collapsed at (paras[0], 0) 
+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range collapsed at (paras[0], 0) 
+PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range on paras[0] from 0 to 1 
+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range on paras[0] from 0 to 1 
+PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range collapsed at (paras[0], 1) 
+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range collapsed at (paras[0], 1) 
+PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range on testDiv from 0 to 2 
+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range on testDiv from 0 to 2 
+PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range collapsed at (testDiv, 1) 
+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range collapsed at (testDiv, 1) 
+PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range on testDiv from 1 to 2 
+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range on testDiv from 1 to 2 
+PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range collapsed at (testDiv, 2) 
+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range collapsed at (testDiv, 2) 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range on testDiv from 0 to 1 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range on testDiv from 0 to 1 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range on testDiv from 0 to 2 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range on testDiv from 0 to 2 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range collapsed at (testDiv, 1) 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range collapsed at (testDiv, 1) 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range on testDiv from 1 to 2 
+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range on testDiv from 1 to 2 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with unselected range collapsed at (foreignDoc, 0) 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 0) 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with unselected range on foreignDoc from 0 to 1 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 1 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with unselected range on foreignDoc from 0 to 2 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 2 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with unselected range collapsed at (foreignDoc, 1) 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 1) 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with unselected range collapsed at (foreignDoc, 0) 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 0) 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with unselected range on foreignDoc from 0 to 1 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 1 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with unselected range on foreignDoc from 0 to 2 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 2 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with unselected range collapsed at (foreignDoc, 1) 
+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 1) 
+PASS paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].replaceChild(paras[0], paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(paras[0], paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(testDiv, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(testDiv, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(document, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(document, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(foreignDoc, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(foreignDoc, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(document.doctype, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].replaceChild(document.doctype, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsreplaceChildhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceChild.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceChild.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceChild.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Range mutation tests - replaceChild&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Aryeh Gregor&quot; href=ayg@aryeh.name&gt;
+&lt;meta name=timeout content=long&gt;
+
+&lt;div id=log&gt;&lt;/div&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;../common.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Range-mutations.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+doTests(replaceChildTests, function(params) { return params[0] + &quot;.replaceChild(&quot; + params[1] + &quot;, &quot; + params[2] + &quot;)&quot; }, testReplaceChild);
+testDiv.style.display = &quot;none&quot;;
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsreplaceDataexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceData-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceData-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceData-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,1148 @@
</span><ins>+
+PASS paras[0].firstChild.replaceData(376, 0, &quot;foo&quot;), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.replaceData(376, 0, &quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(376, 0, &quot;&quot;), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.replaceData(376, 0, &quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(2, 0, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(2, 0, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(3, 0, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(3, 0, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(376, 1, &quot;foo&quot;), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.replaceData(376, 1, &quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(376, 1, &quot;&quot;), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.replaceData(376, 1, &quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(2, 1, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(2, 1, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(3, 1, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(3, 1, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(376, 47, &quot;foo&quot;), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.replaceData(376, 47, &quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(376, 47, &quot;&quot;), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.replaceData(376, 47, &quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(2, 47, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(2, 47, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(3, 47, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.replaceData(3, 47, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(376, 0, &quot;foo&quot;), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.replaceData(376, 0, &quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(2, 0, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(2, 0, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(3, 0, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(3, 0, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(376, 0, &quot;&quot;), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.replaceData(376, 0, &quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.replaceData(1, 0, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(1, 0, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(2, 0, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(2, 0, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(3, 0, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(3, 0, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(376, 1, &quot;foo&quot;), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.replaceData(376, 1, &quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(2, 1, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(2, 1, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(3, 1, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(3, 1, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(376, 1, &quot;&quot;), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.replaceData(376, 1, &quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.replaceData(1, 1, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(1, 1, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(2, 1, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(2, 1, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(3, 1, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(3, 1, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(376, 47, &quot;foo&quot;), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.replaceData(376, 47, &quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(2, 47, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(2, 47, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(3, 47, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(3, 47, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(376, 47, &quot;&quot;), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.replaceData(376, 47, &quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.replaceData(1, 47, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(1, 47, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(2, 47, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(2, 47, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(3, 47, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.replaceData(3, 47, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
+PASS foreignTextNode.replaceData(376, 0, &quot;foo&quot;), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.replaceData(foreignTextNode.length, 0, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.replaceData(foreignTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(2, 0, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(3, 0, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(376, 0, &quot;&quot;), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.replaceData(376, 0, &quot;&quot;), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.replaceData(foreignTextNode.length, 0, &quot;&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.replaceData(foreignTextNode.length, 0, &quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.replaceData(1, 0, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(1, 0, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(2, 0, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(2, 0, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(3, 0, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(3, 0, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(376, 1, &quot;foo&quot;), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.replaceData(foreignTextNode.length, 1, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.replaceData(foreignTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(2, 1, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(3, 1, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(376, 1, &quot;&quot;), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.replaceData(376, 1, &quot;&quot;), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.replaceData(foreignTextNode.length, 1, &quot;&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.replaceData(foreignTextNode.length, 1, &quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.replaceData(1, 1, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(1, 1, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(2, 1, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(2, 1, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(3, 1, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(3, 1, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(376, 47, &quot;foo&quot;), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.replaceData(foreignTextNode.length, 47, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.replaceData(foreignTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(2, 47, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(3, 47, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(376, 47, &quot;&quot;), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.replaceData(376, 47, &quot;&quot;), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.replaceData(foreignTextNode.length, 47, &quot;&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.replaceData(foreignTextNode.length, 47, &quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.replaceData(1, 47, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(1, 47, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(2, 47, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(2, 47, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(3, 47, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.replaceData(3, 47, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(376, 0, &quot;foo&quot;), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.replaceData(xmlTextNode.length, 0, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.replaceData(xmlTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(2, 0, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(3, 0, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(376, 0, &quot;&quot;), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.replaceData(376, 0, &quot;&quot;), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.replaceData(xmlTextNode.length, 0, &quot;&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.replaceData(xmlTextNode.length, 0, &quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.replaceData(1, 0, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(1, 0, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(2, 0, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(2, 0, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(3, 0, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(3, 0, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(376, 1, &quot;foo&quot;), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.replaceData(xmlTextNode.length, 1, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.replaceData(xmlTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(2, 1, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(3, 1, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(376, 1, &quot;&quot;), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.replaceData(376, 1, &quot;&quot;), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.replaceData(xmlTextNode.length, 1, &quot;&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.replaceData(xmlTextNode.length, 1, &quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.replaceData(1, 1, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(1, 1, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(2, 1, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(2, 1, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(3, 1, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(3, 1, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(376, 47, &quot;foo&quot;), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.replaceData(xmlTextNode.length, 47, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.replaceData(xmlTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(2, 47, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(3, 47, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(376, 47, &quot;&quot;), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.replaceData(376, 47, &quot;&quot;), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.replaceData(xmlTextNode.length, 47, &quot;&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.replaceData(xmlTextNode.length, 47, &quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.replaceData(1, 47, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(1, 47, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(2, 47, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(2, 47, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(3, 47, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.replaceData(3, 47, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(376, 0, &quot;foo&quot;), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.replaceData(detachedTextNode.length, 0, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.replaceData(detachedTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(2, 0, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(3, 0, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(376, 0, &quot;&quot;), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.replaceData(376, 0, &quot;&quot;), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.replaceData(detachedTextNode.length, 0, &quot;&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.replaceData(detachedTextNode.length, 0, &quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.replaceData(1, 0, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(1, 0, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(2, 0, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(2, 0, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(3, 0, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(3, 0, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(376, 1, &quot;foo&quot;), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.replaceData(detachedTextNode.length, 1, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.replaceData(detachedTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(2, 1, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(3, 1, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(376, 1, &quot;&quot;), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.replaceData(376, 1, &quot;&quot;), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.replaceData(detachedTextNode.length, 1, &quot;&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.replaceData(detachedTextNode.length, 1, &quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.replaceData(1, 1, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(1, 1, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(2, 1, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(2, 1, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(3, 1, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(3, 1, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(376, 47, &quot;foo&quot;), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.replaceData(detachedTextNode.length, 47, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.replaceData(detachedTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(2, 47, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(3, 47, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(376, 47, &quot;&quot;), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.replaceData(376, 47, &quot;&quot;), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.replaceData(detachedTextNode.length, 47, &quot;&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.replaceData(detachedTextNode.length, 47, &quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.replaceData(1, 47, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(1, 47, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(2, 47, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(2, 47, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(3, 47, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.replaceData(3, 47, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(376, 0, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(2, 0, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(3, 0, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(376, 0, &quot;&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.replaceData(376, 0, &quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.replaceData(1, 0, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(1, 0, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(2, 0, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(2, 0, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(3, 0, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(3, 0, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(376, 1, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(2, 1, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(3, 1, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(376, 1, &quot;&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.replaceData(376, 1, &quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.replaceData(1, 1, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(1, 1, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(2, 1, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(2, 1, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(3, 1, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(3, 1, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(376, 47, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(2, 47, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(3, 47, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(376, 47, &quot;&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.replaceData(376, 47, &quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.replaceData(1, 47, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(1, 47, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(2, 47, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(2, 47, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(3, 47, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.replaceData(3, 47, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(376, 0, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(2, 0, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(3, 0, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(376, 0, &quot;&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.replaceData(376, 0, &quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.replaceData(1, 0, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(1, 0, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(2, 0, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(2, 0, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(3, 0, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(3, 0, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(376, 1, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(2, 1, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(3, 1, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(376, 1, &quot;&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.replaceData(376, 1, &quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.replaceData(1, 1, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(1, 1, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(2, 1, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(2, 1, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(3, 1, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(3, 1, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(376, 47, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(2, 47, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(3, 47, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(376, 47, &quot;&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.replaceData(376, 47, &quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.replaceData(1, 47, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(1, 47, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(2, 47, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(2, 47, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(3, 47, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.replaceData(3, 47, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
+PASS comment.replaceData(376, 0, &quot;foo&quot;), with unselected range on comment from 0 to 1 
+PASS comment.replaceData(376, 0, &quot;foo&quot;), with selected range on comment from 0 to 1 
+PASS comment.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (comment, 0) 
+PASS comment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (comment, 0) 
+PASS comment.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (comment, 1) 
+PASS comment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (comment, 1) 
+PASS comment.replaceData(comment.length, 0, &quot;foo&quot;), with unselected range collapsed at (comment, comment.length) 
+PASS comment.replaceData(comment.length, 0, &quot;foo&quot;), with selected range collapsed at (comment, comment.length) 
+PASS comment.replaceData(1, 0, &quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(1, 0, &quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(2, 0, &quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(2, 0, &quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(3, 0, &quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(3, 0, &quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(376, 0, &quot;&quot;), with unselected range on comment from 0 to 1 
+PASS comment.replaceData(376, 0, &quot;&quot;), with selected range on comment from 0 to 1 
+PASS comment.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (comment, 0) 
+PASS comment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (comment, 0) 
+PASS comment.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (comment, 1) 
+PASS comment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (comment, 1) 
+PASS comment.replaceData(comment.length, 0, &quot;&quot;), with unselected range collapsed at (comment, comment.length) 
+PASS comment.replaceData(comment.length, 0, &quot;&quot;), with selected range collapsed at (comment, comment.length) 
+PASS comment.replaceData(1, 0, &quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(1, 0, &quot;&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(2, 0, &quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(2, 0, &quot;&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(3, 0, &quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(3, 0, &quot;&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(376, 1, &quot;foo&quot;), with unselected range on comment from 0 to 1 
+PASS comment.replaceData(376, 1, &quot;foo&quot;), with selected range on comment from 0 to 1 
+PASS comment.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (comment, 0) 
+PASS comment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (comment, 0) 
+PASS comment.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (comment, 1) 
+PASS comment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (comment, 1) 
+PASS comment.replaceData(comment.length, 1, &quot;foo&quot;), with unselected range collapsed at (comment, comment.length) 
+PASS comment.replaceData(comment.length, 1, &quot;foo&quot;), with selected range collapsed at (comment, comment.length) 
+PASS comment.replaceData(1, 1, &quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(1, 1, &quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(2, 1, &quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(2, 1, &quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(3, 1, &quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(3, 1, &quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(376, 1, &quot;&quot;), with unselected range on comment from 0 to 1 
+PASS comment.replaceData(376, 1, &quot;&quot;), with selected range on comment from 0 to 1 
+PASS comment.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (comment, 0) 
+PASS comment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (comment, 0) 
+PASS comment.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (comment, 1) 
+PASS comment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (comment, 1) 
+PASS comment.replaceData(comment.length, 1, &quot;&quot;), with unselected range collapsed at (comment, comment.length) 
+PASS comment.replaceData(comment.length, 1, &quot;&quot;), with selected range collapsed at (comment, comment.length) 
+PASS comment.replaceData(1, 1, &quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(1, 1, &quot;&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(2, 1, &quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(2, 1, &quot;&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(3, 1, &quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(3, 1, &quot;&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(376, 47, &quot;foo&quot;), with unselected range on comment from 0 to 1 
+PASS comment.replaceData(376, 47, &quot;foo&quot;), with selected range on comment from 0 to 1 
+PASS comment.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (comment, 0) 
+PASS comment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (comment, 0) 
+PASS comment.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (comment, 1) 
+PASS comment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (comment, 1) 
+PASS comment.replaceData(comment.length, 47, &quot;foo&quot;), with unselected range collapsed at (comment, comment.length) 
+PASS comment.replaceData(comment.length, 47, &quot;foo&quot;), with selected range collapsed at (comment, comment.length) 
+PASS comment.replaceData(1, 47, &quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(1, 47, &quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(2, 47, &quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(2, 47, &quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(3, 47, &quot;foo&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(3, 47, &quot;foo&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(376, 47, &quot;&quot;), with unselected range on comment from 0 to 1 
+PASS comment.replaceData(376, 47, &quot;&quot;), with selected range on comment from 0 to 1 
+PASS comment.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (comment, 0) 
+PASS comment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (comment, 0) 
+PASS comment.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (comment, 1) 
+PASS comment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (comment, 1) 
+PASS comment.replaceData(comment.length, 47, &quot;&quot;), with unselected range collapsed at (comment, comment.length) 
+PASS comment.replaceData(comment.length, 47, &quot;&quot;), with selected range collapsed at (comment, comment.length) 
+PASS comment.replaceData(1, 47, &quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(1, 47, &quot;&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(2, 47, &quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(2, 47, &quot;&quot;), with selected range on comment from 1 to 3 
+PASS comment.replaceData(3, 47, &quot;&quot;), with unselected range on comment from 1 to 3 
+PASS comment.replaceData(3, 47, &quot;&quot;), with selected range on comment from 1 to 3 
+PASS foreignComment.replaceData(376, 0, &quot;foo&quot;), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.replaceData(376, 0, &quot;foo&quot;), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.replaceData(foreignComment.length, 0, &quot;foo&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.replaceData(foreignComment.length, 0, &quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.replaceData(1, 0, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(1, 0, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(2, 0, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(2, 0, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(3, 0, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(3, 0, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(376, 0, &quot;&quot;), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.replaceData(376, 0, &quot;&quot;), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.replaceData(foreignComment.length, 0, &quot;&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.replaceData(foreignComment.length, 0, &quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.replaceData(1, 0, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(1, 0, &quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(2, 0, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(2, 0, &quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(3, 0, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(3, 0, &quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(376, 1, &quot;foo&quot;), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.replaceData(376, 1, &quot;foo&quot;), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.replaceData(foreignComment.length, 1, &quot;foo&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.replaceData(foreignComment.length, 1, &quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.replaceData(1, 1, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(1, 1, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(2, 1, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(2, 1, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(3, 1, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(3, 1, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(376, 1, &quot;&quot;), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.replaceData(376, 1, &quot;&quot;), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.replaceData(foreignComment.length, 1, &quot;&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.replaceData(foreignComment.length, 1, &quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.replaceData(1, 1, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(1, 1, &quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(2, 1, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(2, 1, &quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(3, 1, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(3, 1, &quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(376, 47, &quot;foo&quot;), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.replaceData(376, 47, &quot;foo&quot;), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.replaceData(foreignComment.length, 47, &quot;foo&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.replaceData(foreignComment.length, 47, &quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.replaceData(1, 47, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(1, 47, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(2, 47, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(2, 47, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(3, 47, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(3, 47, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(376, 47, &quot;&quot;), with unselected range on foreignComment from 0 to 1 
+PASS foreignComment.replaceData(376, 47, &quot;&quot;), with selected range on foreignComment from 0 to 1 
+PASS foreignComment.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (foreignComment, 0) 
+PASS foreignComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (foreignComment, 0) 
+PASS foreignComment.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (foreignComment, 1) 
+PASS foreignComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (foreignComment, 1) 
+PASS foreignComment.replaceData(foreignComment.length, 47, &quot;&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.replaceData(foreignComment.length, 47, &quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
+PASS foreignComment.replaceData(1, 47, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(1, 47, &quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(2, 47, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(2, 47, &quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(3, 47, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
+PASS foreignComment.replaceData(3, 47, &quot;&quot;), with selected range on foreignComment from 1 to 3 
+PASS xmlComment.replaceData(376, 0, &quot;foo&quot;), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.replaceData(376, 0, &quot;foo&quot;), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.replaceData(xmlComment.length, 0, &quot;foo&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.replaceData(xmlComment.length, 0, &quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.replaceData(1, 0, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(1, 0, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(2, 0, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(2, 0, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(3, 0, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(3, 0, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(376, 0, &quot;&quot;), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.replaceData(376, 0, &quot;&quot;), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.replaceData(xmlComment.length, 0, &quot;&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.replaceData(xmlComment.length, 0, &quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.replaceData(1, 0, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(1, 0, &quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(2, 0, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(2, 0, &quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(3, 0, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(3, 0, &quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(376, 1, &quot;foo&quot;), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.replaceData(376, 1, &quot;foo&quot;), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.replaceData(xmlComment.length, 1, &quot;foo&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.replaceData(xmlComment.length, 1, &quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.replaceData(1, 1, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(1, 1, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(2, 1, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(2, 1, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(3, 1, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(3, 1, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(376, 1, &quot;&quot;), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.replaceData(376, 1, &quot;&quot;), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.replaceData(xmlComment.length, 1, &quot;&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.replaceData(xmlComment.length, 1, &quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.replaceData(1, 1, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(1, 1, &quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(2, 1, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(2, 1, &quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(3, 1, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(3, 1, &quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(376, 47, &quot;foo&quot;), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.replaceData(376, 47, &quot;foo&quot;), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.replaceData(xmlComment.length, 47, &quot;foo&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.replaceData(xmlComment.length, 47, &quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.replaceData(1, 47, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(1, 47, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(2, 47, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(2, 47, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(3, 47, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(3, 47, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(376, 47, &quot;&quot;), with unselected range on xmlComment from 0 to 1 
+PASS xmlComment.replaceData(376, 47, &quot;&quot;), with selected range on xmlComment from 0 to 1 
+PASS xmlComment.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (xmlComment, 0) 
+PASS xmlComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (xmlComment, 0) 
+PASS xmlComment.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (xmlComment, 1) 
+PASS xmlComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (xmlComment, 1) 
+PASS xmlComment.replaceData(xmlComment.length, 47, &quot;&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.replaceData(xmlComment.length, 47, &quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
+PASS xmlComment.replaceData(1, 47, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(1, 47, &quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(2, 47, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(2, 47, &quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(3, 47, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
+PASS xmlComment.replaceData(3, 47, &quot;&quot;), with selected range on xmlComment from 1 to 3 
+PASS detachedComment.replaceData(376, 0, &quot;foo&quot;), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.replaceData(detachedComment.length, 0, &quot;foo&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.replaceData(detachedComment.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.replaceData(1, 0, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(2, 0, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(3, 0, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(376, 0, &quot;&quot;), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.replaceData(376, 0, &quot;&quot;), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.replaceData(detachedComment.length, 0, &quot;&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.replaceData(detachedComment.length, 0, &quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.replaceData(1, 0, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(1, 0, &quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(2, 0, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(2, 0, &quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(3, 0, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(3, 0, &quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(376, 1, &quot;foo&quot;), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.replaceData(detachedComment.length, 1, &quot;foo&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.replaceData(detachedComment.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.replaceData(1, 1, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(2, 1, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(3, 1, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(376, 1, &quot;&quot;), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.replaceData(376, 1, &quot;&quot;), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.replaceData(detachedComment.length, 1, &quot;&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.replaceData(detachedComment.length, 1, &quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.replaceData(1, 1, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(1, 1, &quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(2, 1, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(2, 1, &quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(3, 1, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(3, 1, &quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(376, 47, &quot;foo&quot;), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.replaceData(detachedComment.length, 47, &quot;foo&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.replaceData(detachedComment.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.replaceData(1, 47, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(2, 47, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(3, 47, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(376, 47, &quot;&quot;), with unselected range on detachedComment from 0 to 1 
+PASS detachedComment.replaceData(376, 47, &quot;&quot;), with selected range on detachedComment from 0 to 1 
+PASS detachedComment.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (detachedComment, 0) 
+PASS detachedComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedComment, 0) 
+PASS detachedComment.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (detachedComment, 1) 
+PASS detachedComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedComment, 1) 
+PASS detachedComment.replaceData(detachedComment.length, 47, &quot;&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.replaceData(detachedComment.length, 47, &quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
+PASS detachedComment.replaceData(1, 47, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(1, 47, &quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(2, 47, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(2, 47, &quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(3, 47, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
+PASS detachedComment.replaceData(3, 47, &quot;&quot;), with selected range on detachedComment from 1 to 3 
+PASS detachedForeignComment.replaceData(376, 0, &quot;foo&quot;), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.replaceData(1, 0, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(2, 0, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(3, 0, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(376, 0, &quot;&quot;), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.replaceData(376, 0, &quot;&quot;), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 0, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 0, &quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.replaceData(1, 0, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(1, 0, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(2, 0, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(2, 0, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(3, 0, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(3, 0, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(376, 1, &quot;foo&quot;), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.replaceData(1, 1, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(2, 1, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(3, 1, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(376, 1, &quot;&quot;), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.replaceData(376, 1, &quot;&quot;), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 1, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 1, &quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.replaceData(1, 1, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(1, 1, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(2, 1, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(2, 1, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(3, 1, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(3, 1, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(376, 47, &quot;foo&quot;), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 47, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.replaceData(1, 47, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(2, 47, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(3, 47, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(376, 47, &quot;&quot;), with unselected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.replaceData(376, 47, &quot;&quot;), with selected range on detachedForeignComment from 0 to 1 
+PASS detachedForeignComment.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) 
+PASS detachedForeignComment.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) 
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 47, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 47, &quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
+PASS detachedForeignComment.replaceData(1, 47, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(1, 47, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(2, 47, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(2, 47, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(3, 47, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
+PASS detachedForeignComment.replaceData(3, 47, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
+PASS detachedXmlComment.replaceData(376, 0, &quot;foo&quot;), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.replaceData(1, 0, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(2, 0, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(3, 0, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(376, 0, &quot;&quot;), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.replaceData(376, 0, &quot;&quot;), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 0, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 0, &quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.replaceData(1, 0, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(1, 0, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(2, 0, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(2, 0, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(3, 0, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(3, 0, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(376, 1, &quot;foo&quot;), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.replaceData(1, 1, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(2, 1, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(3, 1, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(376, 1, &quot;&quot;), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.replaceData(376, 1, &quot;&quot;), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 1, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 1, &quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.replaceData(1, 1, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(1, 1, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(2, 1, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(2, 1, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(3, 1, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(3, 1, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(376, 47, &quot;foo&quot;), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 47, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.replaceData(1, 47, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(2, 47, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(3, 47, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(376, 47, &quot;&quot;), with unselected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.replaceData(376, 47, &quot;&quot;), with selected range on detachedXmlComment from 0 to 1 
+PASS detachedXmlComment.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) 
+PASS detachedXmlComment.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) 
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 47, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 47, &quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
+PASS detachedXmlComment.replaceData(1, 47, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(1, 47, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(2, 47, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(2, 47, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(3, 47, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
+PASS detachedXmlComment.replaceData(3, 47, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsreplaceDatahtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceData.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceData.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceData.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Range mutation tests - replaceData&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Aryeh Gregor&quot; href=ayg@aryeh.name&gt;
+&lt;meta name=timeout content=long&gt;
+
+&lt;div id=log&gt;&lt;/div&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;../common.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Range-mutations.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+doTests(replaceDataTests, function(params) { return params[0] + &quot;.replaceData(&quot; + params[1] + &quot;, &quot; + params[2] + &quot;, &quot; + params[3] + &quot;)&quot; }, testReplaceData);
+testDiv.style.display = &quot;none&quot;;
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationssplitTextexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-splitText-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-splitText-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-splitText-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,118 @@
</span><ins>+
+PASS paras[0].firstChild.splitText(376), with unselected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.splitText(376), with selected range on paras[0].firstChild from 0 to 1 
+PASS paras[0].firstChild.splitText(0), with unselected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.splitText(0), with selected range collapsed at (paras[0].firstChild, 0) 
+PASS paras[0].firstChild.splitText(1), with unselected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.splitText(1), with selected range collapsed at (paras[0].firstChild, 1) 
+PASS paras[0].firstChild.splitText(paras[0].firstChild.length), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.splitText(paras[0].firstChild.length), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
+PASS paras[0].firstChild.splitText(1), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.splitText(1), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.splitText(2), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.splitText(2), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.splitText(3), with unselected range on paras[0].firstChild from 1 to 3 
+PASS paras[0].firstChild.splitText(3), with selected range on paras[0].firstChild from 1 to 3 
+PASS paras[1].firstChild.splitText(376), with unselected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.splitText(376), with selected range on paras[1].firstChild from 0 to 1 
+PASS paras[1].firstChild.splitText(0), with unselected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.splitText(0), with selected range collapsed at (paras[1].firstChild, 0) 
+PASS paras[1].firstChild.splitText(1), with unselected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.splitText(1), with selected range collapsed at (paras[1].firstChild, 1) 
+PASS paras[1].firstChild.splitText(paras[1].firstChild.length), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.splitText(paras[1].firstChild.length), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
+PASS paras[1].firstChild.splitText(1), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.splitText(1), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.splitText(2), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.splitText(2), with selected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.splitText(3), with unselected range on paras[1].firstChild from 1 to 3 
+PASS paras[1].firstChild.splitText(3), with selected range on paras[1].firstChild from 1 to 3 
+PASS foreignTextNode.splitText(376), with unselected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.splitText(376), with selected range on foreignTextNode from 0 to 1 
+PASS foreignTextNode.splitText(0), with unselected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.splitText(0), with selected range collapsed at (foreignTextNode, 0) 
+PASS foreignTextNode.splitText(1), with unselected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.splitText(1), with selected range collapsed at (foreignTextNode, 1) 
+PASS foreignTextNode.splitText(foreignTextNode.length), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.splitText(foreignTextNode.length), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
+PASS foreignTextNode.splitText(1), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.splitText(1), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.splitText(2), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.splitText(2), with selected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.splitText(3), with unselected range on foreignTextNode from 1 to 3 
+PASS foreignTextNode.splitText(3), with selected range on foreignTextNode from 1 to 3 
+PASS xmlTextNode.splitText(376), with unselected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.splitText(376), with selected range on xmlTextNode from 0 to 1 
+PASS xmlTextNode.splitText(0), with unselected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.splitText(0), with selected range collapsed at (xmlTextNode, 0) 
+PASS xmlTextNode.splitText(1), with unselected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.splitText(1), with selected range collapsed at (xmlTextNode, 1) 
+PASS xmlTextNode.splitText(xmlTextNode.length), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.splitText(xmlTextNode.length), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
+PASS xmlTextNode.splitText(1), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.splitText(1), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.splitText(2), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.splitText(2), with selected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.splitText(3), with unselected range on xmlTextNode from 1 to 3 
+PASS xmlTextNode.splitText(3), with selected range on xmlTextNode from 1 to 3 
+PASS detachedTextNode.splitText(376), with unselected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.splitText(376), with selected range on detachedTextNode from 0 to 1 
+PASS detachedTextNode.splitText(0), with unselected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.splitText(0), with selected range collapsed at (detachedTextNode, 0) 
+PASS detachedTextNode.splitText(1), with unselected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.splitText(1), with selected range collapsed at (detachedTextNode, 1) 
+PASS detachedTextNode.splitText(detachedTextNode.length), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.splitText(detachedTextNode.length), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
+PASS detachedTextNode.splitText(1), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.splitText(1), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.splitText(2), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.splitText(2), with selected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.splitText(3), with unselected range on detachedTextNode from 1 to 3 
+PASS detachedTextNode.splitText(3), with selected range on detachedTextNode from 1 to 3 
+PASS detachedForeignTextNode.splitText(376), with unselected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.splitText(376), with selected range on detachedForeignTextNode from 0 to 1 
+PASS detachedForeignTextNode.splitText(0), with unselected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.splitText(0), with selected range collapsed at (detachedForeignTextNode, 0) 
+PASS detachedForeignTextNode.splitText(1), with unselected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.splitText(1), with selected range collapsed at (detachedForeignTextNode, 1) 
+PASS detachedForeignTextNode.splitText(detachedForeignTextNode.length), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.splitText(detachedForeignTextNode.length), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
+PASS detachedForeignTextNode.splitText(1), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.splitText(1), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.splitText(2), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.splitText(2), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.splitText(3), with unselected range on detachedForeignTextNode from 1 to 3 
+PASS detachedForeignTextNode.splitText(3), with selected range on detachedForeignTextNode from 1 to 3 
+PASS detachedXmlTextNode.splitText(376), with unselected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.splitText(376), with selected range on detachedXmlTextNode from 0 to 1 
+PASS detachedXmlTextNode.splitText(0), with unselected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.splitText(0), with selected range collapsed at (detachedXmlTextNode, 0) 
+PASS detachedXmlTextNode.splitText(1), with unselected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.splitText(1), with selected range collapsed at (detachedXmlTextNode, 1) 
+PASS detachedXmlTextNode.splitText(detachedXmlTextNode.length), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.splitText(detachedXmlTextNode.length), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
+PASS detachedXmlTextNode.splitText(1), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.splitText(1), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.splitText(2), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.splitText(2), with selected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.splitText(3), with unselected range on detachedXmlTextNode from 1 to 3 
+PASS detachedXmlTextNode.splitText(3), with selected range on detachedXmlTextNode from 1 to 3 
+PASS paras[0].firstChild.splitText(1), with unselected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.splitText(1), with selected range collapsed at (paras[0], 0) 
+PASS paras[0].firstChild.splitText(1), with unselected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.splitText(1), with selected range on paras[0] from 0 to 1 
+PASS paras[0].firstChild.splitText(1), with unselected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.splitText(1), with selected range collapsed at (paras[0], 1) 
+PASS paras[0].firstChild.splitText(1), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.splitText(1), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.splitText(2), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.splitText(2), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.splitText(3), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.splitText(3), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
+PASS paras[0].firstChild.splitText(1), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.splitText(1), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.splitText(2), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.splitText(2), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.splitText(3), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+PASS paras[0].firstChild.splitText(3), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationssplitTexthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-splitText.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-splitText.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-splitText.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;title&gt;Range mutation tests - splitText&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Aryeh Gregor&quot; href=ayg@aryeh.name&gt;
+&lt;meta name=timeout content=long&gt;
+
+&lt;div id=log&gt;&lt;/div&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;../common.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;Range-mutations.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+doTests(splitTextTests, function(params) { return params[0] + &quot;.splitText(&quot; + params[1] + &quot;)&quot; }, testSplitText);
+testDiv.style.display = &quot;none&quot;;
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations.js (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations.js                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,921 @@
</span><ins>+&quot;use strict&quot;;
+
+// These tests probably use too much abstraction and too little copy-paste.
+// Reader beware.
+//
+// TODO:
+//
+// * Lots and lots and lots more different types of ranges
+// * insertBefore() with DocumentFragments
+// * Fill out other insert/remove tests
+// * normalize() (https://www.w3.org/Bugs/Public/show_bug.cgi?id=13843)
+
+// Give a textual description of the range we're testing, for the test names.
+function describeRange(startContainer, startOffset, endContainer, endOffset) {
+  if (startContainer == endContainer &amp;&amp; startOffset == endOffset) {
+    return &quot;range collapsed at (&quot; + startContainer + &quot;, &quot; + startOffset + &quot;)&quot;;
+  } else if (startContainer == endContainer) {
+    return &quot;range on &quot; + startContainer + &quot; from &quot; + startOffset + &quot; to &quot; + endOffset;
+  } else {
+    return &quot;range from (&quot; + startContainer + &quot;, &quot; + startOffset + &quot;) to (&quot; + endContainer + &quot;, &quot; + endOffset + &quot;)&quot;;
+  }
+}
+
+// Lists of the various types of nodes we'll want to use.  We use strings that
+// we can later eval(), so that we can produce legible test names.
+var textNodes = [
+  &quot;paras[0].firstChild&quot;,
+  &quot;paras[1].firstChild&quot;,
+  &quot;foreignTextNode&quot;,
+  &quot;xmlTextNode&quot;,
+  &quot;detachedTextNode&quot;,
+  &quot;detachedForeignTextNode&quot;,
+  &quot;detachedXmlTextNode&quot;,
+];
+var commentNodes = [
+  &quot;comment&quot;,
+  &quot;foreignComment&quot;,
+  &quot;xmlComment&quot;,
+  &quot;detachedComment&quot;,
+  &quot;detachedForeignComment&quot;,
+  &quot;detachedXmlComment&quot;,
+];
+var characterDataNodes = textNodes.concat(commentNodes);
+
+// This function is slightly scary, but it works well enough, so . . .
+// sourceTests is an array of test data that will be altered in mysterious ways
+// before being passed off to doTest, descFn is something that takes an element
+// of sourceTests and produces the first part of a human-readable description
+// of the test, testFn is the function that doTest will call to do the actual
+// work and tell it what results to expect.
+function doTests(sourceTests, descFn, testFn) {
+  var tests = [];
+  for (var i = 0; i &lt; sourceTests.length; i++) {
+    var params = sourceTests[i];
+    var len = params.length;
+    tests.push([
+      descFn(params) + &quot;, with unselected &quot; + describeRange(params[len - 4], params[len - 3], params[len - 2], params[len - 1]),
+      // The closure here ensures that the params that testFn get are the
+      // current version of params, not the version from the last
+      // iteration of this loop.  We test that none of the parameters
+      // evaluate to undefined to catch bugs in our eval'ing, like
+      // mistyping a property name.
+      function(params) { return function() {
+        var evaledParams = params.map(eval);
+        for (var i = 0; i &lt; evaledParams.length; i++) {
+          assert_true(typeof evaledParams[i] != &quot;undefined&quot;,
+            &quot;Test bug: &quot; + params[i] + &quot; is undefined&quot;);
+        }
+        return testFn.apply(null, evaledParams);
+      } }(params),
+      false,
+      params[len - 4],
+      params[len - 3],
+      params[len - 2],
+      params[len - 1]
+    ]);
+    tests.push([
+      descFn(params) + &quot;, with selected &quot; + describeRange(params[len - 4], params[len - 3], params[len - 2], params[len - 1]),
+      function(params) { return function(selectedRange) {
+        var evaledParams = params.slice(0, len - 4).map(eval);
+        for (var i = 0; i &lt; evaledParams.length; i++) {
+          assert_true(typeof evaledParams[i] != &quot;undefined&quot;,
+            &quot;Test bug: &quot; + params[i] + &quot; is undefined&quot;);
+        }
+        // Override input range with the one that was actually selected when computing the expected result.
+        evaledParams = evaledParams.concat([selectedRange.startContainer, selectedRange.startOffset, selectedRange.endContainer, selectedRange.endOffset]);
+        return testFn.apply(null, evaledParams);
+      } }(params),
+      true,
+      params[len - 4],
+      params[len - 3],
+      params[len - 2],
+      params[len - 1]
+    ]);
+  }
+  generate_tests(doTest, tests);
+}
+
+// Set up the range, call the callback function to do the DOM modification and
+// tell us what to expect.  The callback function needs to return a
+// four-element array with the expected start/end containers/offsets, and
+// receives no arguments.  useSelection tells us whether the Range should be
+// added to a Selection and the Selection tested to ensure that the mutation
+// affects user selections as well as other ranges; every test is run with this
+// both false and true, because when it's set to true WebKit and Opera fail all
+// tests' sanity checks, which is unhelpful.  The last four parameters just
+// tell us what range to build.
+function doTest(callback, useSelection, startContainer, startOffset, endContainer, endOffset) {
+  // Recreate all the test nodes in case they were altered by the last test
+  // run.
+  setupRangeTests();
+  startContainer = eval(startContainer);
+  startOffset = eval(startOffset);
+  endContainer = eval(endContainer);
+  endOffset = eval(endOffset);
+
+  var ownerDoc = startContainer.nodeType == Node.DOCUMENT_NODE
+    ? startContainer
+    : startContainer.ownerDocument;
+  var range = ownerDoc.createRange();
+  range.setStart(startContainer, startOffset);
+  range.setEnd(endContainer, endOffset);
+
+  if (useSelection) {
+    getSelection().removeAllRanges();
+    getSelection().addRange(range);
+
+    // Some browsers refuse to add a range unless it results in an actual visible selection.
+    if (!getSelection().rangeCount)
+        return;
+
+    // Override range with the one that was actually selected as it differs in some browsers.
+    range = getSelection().getRangeAt(0);
+  }
+
+  var expected = callback(range);
+
+  assert_equals(range.startContainer, expected[0],
+    &quot;Wrong start container&quot;);
+  assert_equals(range.startOffset, expected[1],
+    &quot;Wrong start offset&quot;);
+  assert_equals(range.endContainer, expected[2],
+    &quot;Wrong end container&quot;);
+  assert_equals(range.endOffset, expected[3],
+    &quot;Wrong end offset&quot;);
+}
+
+
+// Now we get to the specific tests.
+
+function testSplitText(oldNode, offset, startContainer, startOffset, endContainer, endOffset) {
+  // Save these for later
+  var originalStartOffset = startOffset;
+  var originalEndOffset = endOffset;
+  var originalLength = oldNode.length;
+
+  var newNode;
+  try {
+    newNode = oldNode.splitText(offset);
+  } catch (e) {
+    // Should only happen if offset is negative
+    return [startContainer, startOffset, endContainer, endOffset];
+  }
+
+  // First we adjust for replacing data:
+  //
+  // &quot;Replace data with offset offset, count count, and data the empty
+  // string.&quot;
+  //
+  // That translates to offset = offset, count = originalLength - offset,
+  // data = &quot;&quot;.  node is oldNode.
+  //
+  // &quot;For every boundary point whose node is node, and whose offset is
+  // greater than offset but less than or equal to offset plus count, set its
+  // offset to offset.&quot;
+  if (startContainer == oldNode
+  &amp;&amp; startOffset &gt; offset
+  &amp;&amp; startOffset &lt;= originalLength) {
+    startOffset = offset;
+  }
+
+  if (endContainer == oldNode
+  &amp;&amp; endOffset &gt; offset
+  &amp;&amp; endOffset &lt;= originalLength) {
+    endOffset = offset;
+  }
+
+  // &quot;For every boundary point whose node is node, and whose offset is
+  // greater than offset plus count, add the length of data to its offset,
+  // then subtract count from it.&quot;
+  //
+  // Can't happen: offset plus count is originalLength.
+
+  // Now we insert a node, if oldNode's parent isn't null: &quot;For each boundary
+  // point whose node is the new parent of the affected node and whose offset
+  // is greater than the new index of the affected node, add one to the
+  // boundary point's offset.&quot;
+  if (startContainer == oldNode.parentNode
+  &amp;&amp; startOffset &gt; 1 + indexOf(oldNode)) {
+    startOffset++;
+  }
+
+  if (endContainer == oldNode.parentNode
+  &amp;&amp; endOffset &gt; 1 + indexOf(oldNode)) {
+    endOffset++;
+  }
+
+  // Finally, the splitText stuff itself:
+  //
+  // &quot;If parent is not null, run these substeps:
+  //
+  //   * &quot;For each range whose start node is node and start offset is greater
+  //   than offset, set its start node to new node and decrease its start
+  //   offset by offset.
+  //
+  //   * &quot;For each range whose end node is node and end offset is greater
+  //   than offset, set its end node to new node and decrease its end offset
+  //   by offset.
+  //
+  //   * &quot;For each range whose start node is parent and start offset is equal
+  //   to the index of node + 1, increase its start offset by one.
+  //
+  //   * &quot;For each range whose end node is parent and end offset is equal to
+  //   the index of node + 1, increase its end offset by one.&quot;
+  if (oldNode.parentNode) {
+    if (startContainer == oldNode &amp;&amp; originalStartOffset &gt; offset) {
+      startContainer = newNode;
+      startOffset = originalStartOffset - offset;
+    }
+
+    if (endContainer == oldNode &amp;&amp; originalEndOffset &gt; offset) {
+      endContainer = newNode;
+      endOffset = originalEndOffset - offset;
+    }
+
+    if (startContainer == oldNode.parentNode
+    &amp;&amp; startOffset == 1 + indexOf(oldNode)) {
+      startOffset++;
+    }
+
+    if (endContainer == oldNode.parentNode
+    &amp;&amp; endOffset == 1 + indexOf(oldNode)) {
+      endOffset++;
+    }
+  }
+
+  return [startContainer, startOffset, endContainer, endOffset];
+}
+
+// The offset argument is unsigned, so per WebIDL -1 should wrap to 4294967295,
+// which is probably longer than the length, so it should throw an exception.
+// This is no different from the other cases where the offset is longer than
+// the length, and the wrapping complicates my testing slightly, so I won't
+// bother testing negative values here or in other cases.
+var splitTextTests = [];
+for (var i = 0; i &lt; textNodes.length; i++) {
+  var node = textNodes[i];
+  splitTextTests.push([node, 376, node, 0, node, 1]);
+  splitTextTests.push([node, 0, node, 0, node, 0]);
+  splitTextTests.push([node, 1, node, 1, node, 1]);
+  splitTextTests.push([node, node + &quot;.length&quot;, node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  splitTextTests.push([node, 1, node, 1, node, 3]);
+  splitTextTests.push([node, 2, node, 1, node, 3]);
+  splitTextTests.push([node, 3, node, 1, node, 3]);
+}
+
+splitTextTests.push(
+  [&quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 2, &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 3, &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+  [&quot;paras[0].firstChild&quot;, 2, &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+  [&quot;paras[0].firstChild&quot;, 3, &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3]
+);
+
+
+function testReplaceDataAlgorithm(node, offset, count, data, callback, startContainer, startOffset, endContainer, endOffset) {
+  // Mutation works the same any time DOM Core's &quot;replace data&quot; algorithm is
+  // invoked.  node, offset, count, data are as in that algorithm.  The
+  // callback is what does the actual setting.  Not to be confused with
+  // testReplaceData, which tests the replaceData() method.
+
+  // Barring any provision to the contrary, the containers and offsets must
+  // not change.
+  var expectedStartContainer = startContainer;
+  var expectedStartOffset = startOffset;
+  var expectedEndContainer = endContainer;
+  var expectedEndOffset = endOffset;
+
+  var originalParent = node.parentNode;
+  var originalData = node.data;
+
+  var exceptionThrown = false;
+  try {
+    callback();
+  } catch (e) {
+    // Should only happen if offset is greater than length
+    exceptionThrown = true;
+  }
+
+  assert_equals(node.parentNode, originalParent,
+    &quot;Sanity check failed: changing data changed the parent&quot;);
+
+  // &quot;User agents must run the following steps whenever they replace data of
+  // a CharacterData node, as though they were written in the specification
+  // for that algorithm after all other steps. In particular, the steps must
+  // not be executed if the algorithm threw an exception.&quot;
+  if (exceptionThrown) {
+    assert_equals(node.data, originalData,
+      &quot;Sanity check failed: exception thrown but data changed&quot;);
+  } else {
+    assert_equals(node.data,
+      originalData.substr(0, offset) + data + originalData.substr(offset + count),
+      &quot;Sanity check failed: data not changed as expected&quot;);
+  }
+
+  // &quot;For every boundary point whose node is node, and whose offset is
+  // greater than offset but less than or equal to offset plus count, set
+  // its offset to offset.&quot;
+  if (!exceptionThrown
+  &amp;&amp; startContainer == node
+  &amp;&amp; startOffset &gt; offset
+  &amp;&amp; startOffset &lt;= offset + count) {
+    expectedStartOffset = offset;
+  }
+
+  if (!exceptionThrown
+  &amp;&amp; endContainer == node
+  &amp;&amp; endOffset &gt; offset
+  &amp;&amp; endOffset &lt;= offset + count) {
+    expectedEndOffset = offset;
+  }
+
+  // &quot;For every boundary point whose node is node, and whose offset is
+  // greater than offset plus count, add the length of data to its offset,
+  // then subtract count from it.&quot;
+  if (!exceptionThrown
+  &amp;&amp; startContainer == node
+  &amp;&amp; startOffset &gt; offset + count) {
+    expectedStartOffset += data.length - count;
+  }
+
+  if (!exceptionThrown
+  &amp;&amp; endContainer == node
+  &amp;&amp; endOffset &gt; offset + count) {
+    expectedEndOffset += data.length - count;
+  }
+
+  return [expectedStartContainer, expectedStartOffset, expectedEndContainer, expectedEndOffset];
+}
+
+function testInsertData(node, offset, data, startContainer, startOffset, endContainer, endOffset) {
+  return testReplaceDataAlgorithm(node, offset, 0, data,
+    function() { node.insertData(offset, data) },
+    startContainer, startOffset, endContainer, endOffset);
+}
+
+var insertDataTests = [];
+for (var i = 0; i &lt; characterDataNodes.length; i++) {
+  var node = characterDataNodes[i];
+  insertDataTests.push([node, 376, '&quot;foo&quot;', node, 0, node, 1]);
+  insertDataTests.push([node, 0, '&quot;foo&quot;', node, 0, node, 0]);
+  insertDataTests.push([node, 1, '&quot;foo&quot;', node, 1, node, 1]);
+  insertDataTests.push([node, node + &quot;.length&quot;, '&quot;foo&quot;', node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  insertDataTests.push([node, 1, '&quot;foo&quot;', node, 1, node, 3]);
+  insertDataTests.push([node, 2, '&quot;foo&quot;', node, 1, node, 3]);
+  insertDataTests.push([node, 3, '&quot;foo&quot;', node, 1, node, 3]);
+
+  insertDataTests.push([node, 376, '&quot;&quot;', node, 0, node, 1]);
+  insertDataTests.push([node, 0, '&quot;&quot;', node, 0, node, 0]);
+  insertDataTests.push([node, 1, '&quot;&quot;', node, 1, node, 1]);
+  insertDataTests.push([node, node + &quot;.length&quot;, '&quot;&quot;', node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  insertDataTests.push([node, 1, '&quot;&quot;', node, 1, node, 3]);
+  insertDataTests.push([node, 2, '&quot;&quot;', node, 1, node, 3]);
+  insertDataTests.push([node, 3, '&quot;&quot;', node, 1, node, 3]);
+}
+
+insertDataTests.push(
+  [&quot;paras[0].firstChild&quot;, 1, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0].firstChild&quot;, 1, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, '&quot;foo&quot;', &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 2, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 3, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+  [&quot;paras[0].firstChild&quot;, 2, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+  [&quot;paras[0].firstChild&quot;, 3, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3]
+);
+
+
+function testAppendData(node, data, startContainer, startOffset, endContainer, endOffset) {
+  return testReplaceDataAlgorithm(node, node.length, 0, data,
+    function() { node.appendData(data) },
+    startContainer, startOffset, endContainer, endOffset);
+}
+
+var appendDataTests = [];
+for (var i = 0; i &lt; characterDataNodes.length; i++) {
+  var node = characterDataNodes[i];
+  appendDataTests.push([node, '&quot;foo&quot;', node, 0, node, 1]);
+  appendDataTests.push([node, '&quot;foo&quot;', node, 0, node, 0]);
+  appendDataTests.push([node, '&quot;foo&quot;', node, 1, node, 1]);
+  appendDataTests.push([node, '&quot;foo&quot;', node, 0, node, node + &quot;.length&quot;]);
+  appendDataTests.push([node, '&quot;foo&quot;', node, 1, node, node + &quot;.length&quot;]);
+  appendDataTests.push([node, '&quot;foo&quot;', node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  appendDataTests.push([node, '&quot;foo&quot;', node, 1, node, 3]);
+
+  appendDataTests.push([node, '&quot;&quot;', node, 0, node, 1]);
+  appendDataTests.push([node, '&quot;&quot;', node, 0, node, 0]);
+  appendDataTests.push([node, '&quot;&quot;', node, 1, node, 1]);
+  appendDataTests.push([node, '&quot;&quot;', node, 0, node, node + &quot;.length&quot;]);
+  appendDataTests.push([node, '&quot;&quot;', node, 1, node, node + &quot;.length&quot;]);
+  appendDataTests.push([node, '&quot;&quot;', node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  appendDataTests.push([node, '&quot;&quot;', node, 1, node, 3]);
+}
+
+appendDataTests.push(
+  [&quot;paras[0].firstChild&quot;, '&quot;&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0].firstChild&quot;, '&quot;&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, '&quot;&quot;', &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, '&quot;&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, '&quot;&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+
+  [&quot;paras[0].firstChild&quot;, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0].firstChild&quot;, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, '&quot;foo&quot;', &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3]
+);
+
+
+function testDeleteData(node, offset, count, startContainer, startOffset, endContainer, endOffset) {
+  return testReplaceDataAlgorithm(node, offset, count, &quot;&quot;,
+    function() { node.deleteData(offset, count) },
+    startContainer, startOffset, endContainer, endOffset);
+}
+
+var deleteDataTests = [];
+for (var i = 0; i &lt; characterDataNodes.length; i++) {
+  var node = characterDataNodes[i];
+  deleteDataTests.push([node, 376, 2, node, 0, node, 1]);
+  deleteDataTests.push([node, 0, 2, node, 0, node, 0]);
+  deleteDataTests.push([node, 1, 2, node, 1, node, 1]);
+  deleteDataTests.push([node, node + &quot;.length&quot;, 2, node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  deleteDataTests.push([node, 1, 2, node, 1, node, 3]);
+  deleteDataTests.push([node, 2, 2, node, 1, node, 3]);
+  deleteDataTests.push([node, 3, 2, node, 1, node, 3]);
+
+  deleteDataTests.push([node, 376, 0, node, 0, node, 1]);
+  deleteDataTests.push([node, 0, 0, node, 0, node, 0]);
+  deleteDataTests.push([node, 1, 0, node, 1, node, 1]);
+  deleteDataTests.push([node, node + &quot;.length&quot;, 0, node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  deleteDataTests.push([node, 1, 0, node, 1, node, 3]);
+  deleteDataTests.push([node, 2, 0, node, 1, node, 3]);
+  deleteDataTests.push([node, 3, 0, node, 1, node, 3]);
+
+  deleteDataTests.push([node, 376, 631, node, 0, node, 1]);
+  deleteDataTests.push([node, 0, 631, node, 0, node, 0]);
+  deleteDataTests.push([node, 1, 631, node, 1, node, 1]);
+  deleteDataTests.push([node, node + &quot;.length&quot;, 631, node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  deleteDataTests.push([node, 1, 631, node, 1, node, 3]);
+  deleteDataTests.push([node, 2, 631, node, 1, node, 3]);
+  deleteDataTests.push([node, 3, 631, node, 1, node, 3]);
+}
+
+deleteDataTests.push(
+  [&quot;paras[0].firstChild&quot;, 1, 2, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0].firstChild&quot;, 1, 2, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, 2, &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, 2, &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 2, 2, &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 3, 2, &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, 2, &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+  [&quot;paras[0].firstChild&quot;, 2, 2, &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+  [&quot;paras[0].firstChild&quot;, 3, 2, &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3]
+);
+
+
+function testReplaceData(node, offset, count, data, startContainer, startOffset, endContainer, endOffset) {
+  return testReplaceDataAlgorithm(node, offset, count, data,
+    function() { node.replaceData(offset, count, data) },
+    startContainer, startOffset, endContainer, endOffset);
+}
+
+var replaceDataTests = [];
+for (var i = 0; i &lt; characterDataNodes.length; i++) {
+  var node = characterDataNodes[i];
+  replaceDataTests.push([node, 376, 0, '&quot;foo&quot;', node, 0, node, 1]);
+  replaceDataTests.push([node, 0, 0, '&quot;foo&quot;', node, 0, node, 0]);
+  replaceDataTests.push([node, 1, 0, '&quot;foo&quot;', node, 1, node, 1]);
+  replaceDataTests.push([node, node + &quot;.length&quot;, 0, '&quot;foo&quot;', node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  replaceDataTests.push([node, 1, 0, '&quot;foo&quot;', node, 1, node, 3]);
+  replaceDataTests.push([node, 2, 0, '&quot;foo&quot;', node, 1, node, 3]);
+  replaceDataTests.push([node, 3, 0, '&quot;foo&quot;', node, 1, node, 3]);
+
+  replaceDataTests.push([node, 376, 0, '&quot;&quot;', node, 0, node, 1]);
+  replaceDataTests.push([node, 0, 0, '&quot;&quot;', node, 0, node, 0]);
+  replaceDataTests.push([node, 1, 0, '&quot;&quot;', node, 1, node, 1]);
+  replaceDataTests.push([node, node + &quot;.length&quot;, 0, '&quot;&quot;', node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  replaceDataTests.push([node, 1, 0, '&quot;&quot;', node, 1, node, 3]);
+  replaceDataTests.push([node, 2, 0, '&quot;&quot;', node, 1, node, 3]);
+  replaceDataTests.push([node, 3, 0, '&quot;&quot;', node, 1, node, 3]);
+
+  replaceDataTests.push([node, 376, 1, '&quot;foo&quot;', node, 0, node, 1]);
+  replaceDataTests.push([node, 0, 1, '&quot;foo&quot;', node, 0, node, 0]);
+  replaceDataTests.push([node, 1, 1, '&quot;foo&quot;', node, 1, node, 1]);
+  replaceDataTests.push([node, node + &quot;.length&quot;, 1, '&quot;foo&quot;', node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  replaceDataTests.push([node, 1, 1, '&quot;foo&quot;', node, 1, node, 3]);
+  replaceDataTests.push([node, 2, 1, '&quot;foo&quot;', node, 1, node, 3]);
+  replaceDataTests.push([node, 3, 1, '&quot;foo&quot;', node, 1, node, 3]);
+
+  replaceDataTests.push([node, 376, 1, '&quot;&quot;', node, 0, node, 1]);
+  replaceDataTests.push([node, 0, 1, '&quot;&quot;', node, 0, node, 0]);
+  replaceDataTests.push([node, 1, 1, '&quot;&quot;', node, 1, node, 1]);
+  replaceDataTests.push([node, node + &quot;.length&quot;, 1, '&quot;&quot;', node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  replaceDataTests.push([node, 1, 1, '&quot;&quot;', node, 1, node, 3]);
+  replaceDataTests.push([node, 2, 1, '&quot;&quot;', node, 1, node, 3]);
+  replaceDataTests.push([node, 3, 1, '&quot;&quot;', node, 1, node, 3]);
+
+  replaceDataTests.push([node, 376, 47, '&quot;foo&quot;', node, 0, node, 1]);
+  replaceDataTests.push([node, 0, 47, '&quot;foo&quot;', node, 0, node, 0]);
+  replaceDataTests.push([node, 1, 47, '&quot;foo&quot;', node, 1, node, 1]);
+  replaceDataTests.push([node, node + &quot;.length&quot;, 47, '&quot;foo&quot;', node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  replaceDataTests.push([node, 1, 47, '&quot;foo&quot;', node, 1, node, 3]);
+  replaceDataTests.push([node, 2, 47, '&quot;foo&quot;', node, 1, node, 3]);
+  replaceDataTests.push([node, 3, 47, '&quot;foo&quot;', node, 1, node, 3]);
+
+  replaceDataTests.push([node, 376, 47, '&quot;&quot;', node, 0, node, 1]);
+  replaceDataTests.push([node, 0, 47, '&quot;&quot;', node, 0, node, 0]);
+  replaceDataTests.push([node, 1, 47, '&quot;&quot;', node, 1, node, 1]);
+  replaceDataTests.push([node, node + &quot;.length&quot;, 47, '&quot;&quot;', node, node + &quot;.length&quot;, node, node + &quot;.length&quot;]);
+  replaceDataTests.push([node, 1, 47, '&quot;&quot;', node, 1, node, 3]);
+  replaceDataTests.push([node, 2, 47, '&quot;&quot;', node, 1, node, 3]);
+  replaceDataTests.push([node, 3, 47, '&quot;&quot;', node, 1, node, 3]);
+}
+
+replaceDataTests.push(
+  [&quot;paras[0].firstChild&quot;, 1, 0, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0].firstChild&quot;, 1, 0, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, 0, '&quot;foo&quot;', &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, 0, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 2, 0, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 3, 0, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, 0, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+  [&quot;paras[0].firstChild&quot;, 2, 0, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+  [&quot;paras[0].firstChild&quot;, 3, 0, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+
+  [&quot;paras[0].firstChild&quot;, 1, 1, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0].firstChild&quot;, 1, 1, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, 1, '&quot;foo&quot;', &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, 1, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 2, 1, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 3, 1, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, 1, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+  [&quot;paras[0].firstChild&quot;, 2, 1, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+  [&quot;paras[0].firstChild&quot;, 3, 1, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+
+  [&quot;paras[0].firstChild&quot;, 1, 47, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0].firstChild&quot;, 1, 47, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, 47, '&quot;foo&quot;', &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, 47, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 2, 47, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 3, 47, '&quot;foo&quot;', &quot;paras[0].firstChild&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0].firstChild&quot;, 1, 47, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+  [&quot;paras[0].firstChild&quot;, 2, 47, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3],
+  [&quot;paras[0].firstChild&quot;, 3, 47, '&quot;foo&quot;', &quot;paras[0]&quot;, 0, &quot;paras[0].firstChild&quot;, 3]
+);
+
+
+// There are lots of ways to set data, so we pass a callback that does the
+// actual setting.
+function testDataChange(node, attr, op, rval, startContainer, startOffset, endContainer, endOffset) {
+  return testReplaceDataAlgorithm(node, 0, node.length, op == &quot;=&quot; ? rval : node[attr] + rval,
+    function() {
+      if (op == &quot;=&quot;) {
+        node[attr] = rval;
+      } else if (op == &quot;+=&quot;) {
+        node[attr] += rval;
+      } else {
+        throw &quot;Unknown op &quot; + op;
+      }
+    },
+    startContainer, startOffset, endContainer, endOffset);
+}
+
+var dataChangeTests = [];
+var dataChangeTestAttrs = [&quot;data&quot;, &quot;textContent&quot;, &quot;nodeValue&quot;];
+for (var i = 0; i &lt; characterDataNodes.length; i++) {
+  var node = characterDataNodes[i];
+  var dataChangeTestRanges = [
+    [node, 0, node, 0],
+    [node, 0, node, 1],
+    [node, 1, node, 1],
+    [node, 0, node, node + &quot;.length&quot;],
+    [node, 1, node, node + &quot;.length&quot;],
+    [node, node + &quot;.length&quot;, node, node + &quot;.length&quot;],
+  ];
+
+  for (var j = 0; j &lt; dataChangeTestRanges.length; j++) {
+    for (var k = 0; k &lt; dataChangeTestAttrs.length; k++) {
+      dataChangeTests.push([
+        node,
+        '&quot;' + dataChangeTestAttrs[k] + '&quot;',
+        '&quot;=&quot;',
+        '&quot;&quot;',
+      ].concat(dataChangeTestRanges[j]));
+
+      dataChangeTests.push([
+        node,
+        '&quot;' + dataChangeTestAttrs[k] + '&quot;',
+        '&quot;=&quot;',
+        '&quot;foo&quot;',
+      ].concat(dataChangeTestRanges[j]));
+
+      dataChangeTests.push([
+        node,
+        '&quot;' + dataChangeTestAttrs[k] + '&quot;',
+        '&quot;=&quot;',
+        node + &quot;.&quot; + dataChangeTestAttrs[k],
+      ].concat(dataChangeTestRanges[j]));
+
+      dataChangeTests.push([
+        node,
+        '&quot;' + dataChangeTestAttrs[k] + '&quot;',
+        '&quot;+=&quot;',
+        '&quot;&quot;',
+      ].concat(dataChangeTestRanges[j]));
+
+      dataChangeTests.push([
+        node,
+        '&quot;' + dataChangeTestAttrs[k] + '&quot;',
+        '&quot;+=&quot;',
+        '&quot;foo&quot;',
+      ].concat(dataChangeTestRanges[j]));
+
+      dataChangeTests.push([
+        node,
+        '&quot;' + dataChangeTestAttrs[k] + '&quot;',
+        '&quot;+=&quot;',
+        node + &quot;.&quot; + dataChangeTestAttrs[k]
+      ].concat(dataChangeTestRanges[j]));
+    }
+  }
+}
+
+
+// Now we test node insertions and deletions, as opposed to just data changes.
+// To avoid loads of repetition, we define modifyForRemove() and
+// modifyForInsert().
+
+// If we were to remove removedNode from its parent, what would the boundary
+// point [node, offset] become?  Returns [new node, new offset].  Must be
+// called BEFORE the node is actually removed, so its parent is not null.  (If
+// the parent is null, it will do nothing.)
+function modifyForRemove(removedNode, point) {
+  var oldParent = removedNode.parentNode;
+  var oldIndex = indexOf(removedNode);
+  if (!oldParent) {
+    return point;
+  }
+
+  // &quot;For each boundary point whose node is removed node or a descendant of
+  // it, set the boundary point to (old parent, old index).&quot;
+  if (point[0] == removedNode || isDescendant(point[0], removedNode)) {
+    return [oldParent, oldIndex];
+  }
+
+  // &quot;For each boundary point whose node is old parent and whose offset is
+  // greater than old index, subtract one from its offset.&quot;
+  if (point[0] == oldParent &amp;&amp; point[1] &gt; oldIndex) {
+    return [point[0], point[1] - 1];
+  }
+
+  return point;
+}
+
+// Update the given boundary point [node, offset] to account for the fact that
+// insertedNode was just inserted into its current position.  This must be
+// called AFTER insertedNode was already inserted.
+function modifyForInsert(insertedNode, point) {
+  // &quot;For each boundary point whose node is the new parent of the affected
+  // node and whose offset is greater than the new index of the affected
+  // node, add one to the boundary point's offset.&quot;
+  if (point[0] == insertedNode.parentNode &amp;&amp; point[1] &gt; indexOf(insertedNode)) {
+    return [point[0], point[1] + 1];
+  }
+
+  return point;
+}
+
+
+function testInsertBefore(newParent, affectedNode, refNode, startContainer, startOffset, endContainer, endOffset) {
+  var expectedStart = [startContainer, startOffset];
+  var expectedEnd = [endContainer, endOffset];
+
+  expectedStart = modifyForRemove(affectedNode, expectedStart);
+  expectedEnd = modifyForRemove(affectedNode, expectedEnd);
+
+  try {
+    newParent.insertBefore(affectedNode, refNode);
+  } catch (e) {
+    // For our purposes, assume that DOM Core is true -- i.e., ignore
+    // mutation events and similar.
+    return [startContainer, startOffset, endContainer, endOffset];
+  }
+
+  expectedStart = modifyForInsert(affectedNode, expectedStart);
+  expectedEnd = modifyForInsert(affectedNode, expectedEnd);
+
+  return expectedStart.concat(expectedEnd);
+}
+
+var insertBeforeTests = [
+  // Moving a node to its current position
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 2],
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 1],
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 2],
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;testDiv&quot;, 2, &quot;testDiv&quot;, 2],
+
+  // Stuff that actually moves something.  Note that paras[0] and paras[1]
+  // are both children of testDiv.
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 2],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 2],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;null&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;null&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;null&quot;, &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;null&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;null&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 2],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;null&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;null&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 2],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.documentElement&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 0],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.documentElement&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 1],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.documentElement&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 2],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.documentElement&quot;, &quot;foreignDoc&quot;, 1, &quot;foreignDoc&quot;, 1],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.doctype&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 0],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.doctype&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 1],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.doctype&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 2],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.doctype&quot;, &quot;foreignDoc&quot;, 1, &quot;foreignDoc&quot;, 1],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;null&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;xmlTextNode&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0]&quot;, &quot;xmlTextNode&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;xmlTextNode&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+
+  // Stuff that throws exceptions
+  [&quot;paras[0]&quot;, &quot;paras[0]&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;testDiv&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;document&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;foreignDoc&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;document.doctype&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+];
+
+
+function testReplaceChild(newParent, newChild, oldChild, startContainer, startOffset, endContainer, endOffset) {
+  var expectedStart = [startContainer, startOffset];
+  var expectedEnd = [endContainer, endOffset];
+
+  expectedStart = modifyForRemove(oldChild, expectedStart);
+  expectedEnd = modifyForRemove(oldChild, expectedEnd);
+
+  if (newChild != oldChild) {
+    // Don't do this twice, if they're the same!
+    expectedStart = modifyForRemove(newChild, expectedStart);
+    expectedEnd = modifyForRemove(newChild, expectedEnd);
+  }
+
+  try {
+    newParent.replaceChild(newChild, oldChild);
+  } catch (e) {
+    return [startContainer, startOffset, endContainer, endOffset];
+  }
+
+  expectedStart = modifyForInsert(newChild, expectedStart);
+  expectedEnd = modifyForInsert(newChild, expectedEnd);
+
+  return expectedStart.concat(expectedEnd);
+}
+
+var replaceChildTests = [
+  // Moving a node to its current position.  Doesn't match most browsers'
+  // behavior, but we probably want to keep the spec the same anyway:
+  // https://bugzilla.mozilla.org/show_bug.cgi?id=647603
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[0]&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[0]&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[0]&quot;, &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[0]&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 2],
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[0]&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 1],
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[0]&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 2],
+  [&quot;testDiv&quot;, &quot;paras[0]&quot;, &quot;paras[0]&quot;, &quot;testDiv&quot;, 2, &quot;testDiv&quot;, 2],
+
+  // Stuff that actually moves something.
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 2],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0].firstChild&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 2],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.documentElement&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 0],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.documentElement&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 1],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.documentElement&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 2],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.documentElement&quot;, &quot;foreignDoc&quot;, 1, &quot;foreignDoc&quot;, 1],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.doctype&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 0],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.doctype&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 1],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.doctype&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, 2],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc.doctype&quot;, &quot;foreignDoc&quot;, 1, &quot;foreignDoc&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;xmlTextNode&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0]&quot;, &quot;xmlTextNode&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;xmlTextNode&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+
+  // Stuff that throws exceptions
+  [&quot;paras[0]&quot;, &quot;paras[0]&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;testDiv&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;document&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;foreignDoc&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;document.doctype&quot;, &quot;paras[0].firstChild&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+];
+
+
+function testAppendChild(newParent, affectedNode, startContainer, startOffset, endContainer, endOffset) {
+  var expectedStart = [startContainer, startOffset];
+  var expectedEnd = [endContainer, endOffset];
+
+  expectedStart = modifyForRemove(affectedNode, expectedStart);
+  expectedEnd = modifyForRemove(affectedNode, expectedEnd);
+
+  try {
+    newParent.appendChild(affectedNode);
+  } catch (e) {
+    return [startContainer, startOffset, endContainer, endOffset];
+  }
+
+  // These two lines will actually never do anything, if you think about it,
+  // but let's leave them in so correctness is more obvious.
+  expectedStart = modifyForInsert(affectedNode, expectedStart);
+  expectedEnd = modifyForInsert(affectedNode, expectedEnd);
+
+  return expectedStart.concat(expectedEnd);
+}
+
+var appendChildTests = [
+  // Moving a node to its current position
+  [&quot;testDiv&quot;, &quot;testDiv.lastChild&quot;, &quot;testDiv.lastChild&quot;, 0, &quot;testDiv.lastChild&quot;, 0],
+  [&quot;testDiv&quot;, &quot;testDiv.lastChild&quot;, &quot;testDiv.lastChild&quot;, 0, &quot;testDiv.lastChild&quot;, 1],
+  [&quot;testDiv&quot;, &quot;testDiv.lastChild&quot;, &quot;testDiv.lastChild&quot;, 1, &quot;testDiv.lastChild&quot;, 1],
+  [&quot;testDiv&quot;, &quot;testDiv.lastChild&quot;, &quot;testDiv&quot;, &quot;testDiv.childNodes.length - 2&quot;, &quot;testDiv&quot;, &quot;testDiv.childNodes.length&quot;],
+  [&quot;testDiv&quot;, &quot;testDiv.lastChild&quot;, &quot;testDiv&quot;, &quot;testDiv.childNodes.length - 2&quot;, &quot;testDiv&quot;, &quot;testDiv.childNodes.length - 1&quot;],
+  [&quot;testDiv&quot;, &quot;testDiv.lastChild&quot;, &quot;testDiv&quot;, &quot;testDiv.childNodes.length - 1&quot;, &quot;testDiv&quot;, &quot;testDiv.childNodes.length&quot;],
+  [&quot;testDiv&quot;, &quot;testDiv.lastChild&quot;, &quot;testDiv&quot;, &quot;testDiv.childNodes.length - 1&quot;, &quot;testDiv&quot;, &quot;testDiv.childNodes.length - 1&quot;],
+  [&quot;testDiv&quot;, &quot;testDiv.lastChild&quot;, &quot;testDiv&quot;, &quot;testDiv.childNodes.length&quot;, &quot;testDiv&quot;, &quot;testDiv.childNodes.length&quot;],
+  [&quot;detachedDiv&quot;, &quot;detachedDiv.lastChild&quot;, &quot;detachedDiv.lastChild&quot;, 0, &quot;detachedDiv.lastChild&quot;, 0],
+  [&quot;detachedDiv&quot;, &quot;detachedDiv.lastChild&quot;, &quot;detachedDiv.lastChild&quot;, 0, &quot;detachedDiv.lastChild&quot;, 1],
+  [&quot;detachedDiv&quot;, &quot;detachedDiv.lastChild&quot;, &quot;detachedDiv.lastChild&quot;, 1, &quot;detachedDiv.lastChild&quot;, 1],
+  [&quot;detachedDiv&quot;, &quot;detachedDiv.lastChild&quot;, &quot;detachedDiv&quot;, &quot;detachedDiv.childNodes.length - 2&quot;, &quot;detachedDiv&quot;, &quot;detachedDiv.childNodes.length&quot;],
+  [&quot;detachedDiv&quot;, &quot;detachedDiv.lastChild&quot;, &quot;detachedDiv&quot;, &quot;detachedDiv.childNodes.length - 2&quot;, &quot;detachedDiv&quot;, &quot;detachedDiv.childNodes.length - 1&quot;],
+  [&quot;detachedDiv&quot;, &quot;detachedDiv.lastChild&quot;, &quot;detachedDiv&quot;, &quot;detachedDiv.childNodes.length - 1&quot;, &quot;detachedDiv&quot;, &quot;detachedDiv.childNodes.length&quot;],
+  [&quot;detachedDiv&quot;, &quot;detachedDiv.lastChild&quot;, &quot;detachedDiv&quot;, &quot;detachedDiv.childNodes.length - 1&quot;, &quot;detachedDiv&quot;, &quot;detachedDiv.childNodes.length - 1&quot;],
+  [&quot;detachedDiv&quot;, &quot;detachedDiv.lastChild&quot;, &quot;detachedDiv&quot;, &quot;detachedDiv.childNodes.length&quot;, &quot;detachedDiv&quot;, &quot;detachedDiv.childNodes.length&quot;],
+
+  // Stuff that actually moves something
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 2],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[1]&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 2],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc&quot;, &quot;foreignDoc.childNodes.length - 1&quot;, &quot;foreignDoc&quot;, &quot;foreignDoc.childNodes.length&quot;],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc&quot;, &quot;foreignDoc.childNodes.length - 1&quot;, &quot;foreignDoc&quot;, &quot;foreignDoc.childNodes.length - 1&quot;],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;foreignDoc&quot;, &quot;foreignDoc.childNodes.length&quot;, &quot;foreignDoc&quot;, &quot;foreignDoc.childNodes.length&quot;],
+  [&quot;foreignDoc&quot;, &quot;detachedComment&quot;, &quot;detachedComment&quot;, 0, &quot;detachedComment&quot;, 5],
+  [&quot;paras[0]&quot;, &quot;xmlTextNode&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0]&quot;, &quot;xmlTextNode&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;xmlTextNode&quot;, &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+
+  // Stuff that throws exceptions
+  [&quot;paras[0]&quot;, &quot;paras[0]&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;testDiv&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;document&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;foreignDoc&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;document.doctype&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+];
+
+
+function testRemoveChild(affectedNode, startContainer, startOffset, endContainer, endOffset) {
+  var expectedStart = [startContainer, startOffset];
+  var expectedEnd = [endContainer, endOffset];
+
+  expectedStart = modifyForRemove(affectedNode, expectedStart);
+  expectedEnd = modifyForRemove(affectedNode, expectedEnd);
+
+  // We don't test cases where the parent is wrong, so this should never
+  // throw an exception.
+  affectedNode.parentNode.removeChild(affectedNode);
+
+  return expectedStart.concat(expectedEnd);
+}
+
+var removeChildTests = [
+  [&quot;paras[0]&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 0],
+  [&quot;paras[0]&quot;, &quot;paras[0]&quot;, 0, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;paras[0]&quot;, 1, &quot;paras[0]&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 0],
+  [&quot;paras[0]&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 1],
+  [&quot;paras[0]&quot;, &quot;testDiv&quot;, 0, &quot;testDiv&quot;, 2],
+  [&quot;paras[0]&quot;, &quot;testDiv&quot;, 1, &quot;testDiv&quot;, 2],
+  [&quot;paras[0]&quot;, &quot;testDiv&quot;, 2, &quot;testDiv&quot;, 2],
+
+  [&quot;foreignDoc.documentElement&quot;, &quot;foreignDoc&quot;, 0, &quot;foreignDoc&quot;, &quot;foreignDoc.childNodes.length&quot;],
+];
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -32,7 +32,17 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-intersectsNode-binding.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-intersectsNode.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-isPointInRange.html
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html
</del><ins>+/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendChild.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendData.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-dataChange.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-deleteData.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertBefore.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertData.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-removeChild.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceChild.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceData.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-splitText.html
+/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations.js
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-selectNode.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-set.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-stringifier.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediadrmmp4playbackretrievedestroypersistentlicensehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -37,7 +37,8 @@
</span><span class="cx">         var keysystem = getSupportedKeySystem(),
</span><span class="cx">             contentitem = content['mp4-basic'],
</span><span class="cx">             handler = new MessageHandler( keysystem, contentitem, 'persistent-license' ),
</span><del>-            config = {  video:              document.getElementById('videoelement'),
</del><ins>+            config = {  content:            contentitem,
+                        video:              document.getElementById('videoelement'),
</ins><span class="cx">                         keysystem:          keysystem,
</span><span class="cx">                         messagehandler:     handler.messagehandler,
</span><span class="cx">                         audioPath:          contentitem.audio.path,
</span><span class="lines">@@ -51,4 +52,4 @@
</span><span class="cx">         runTest(config);
</span><span class="cx">     &lt;/script&gt;
</span><span class="cx">   &lt;/body&gt;
</span><del>-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span><ins>+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediadrmmp4playbacktemporaryexpiredhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -2,6 +2,7 @@
</span><span class="cx"> &lt;html&gt;
</span><span class="cx">   &lt;head&gt;
</span><span class="cx">     &lt;meta charset=utf-8&gt;
</span><ins>+    &lt;meta name=&quot;timeout&quot; content=&quot;long&quot;&gt;
</ins><span class="cx">     &lt;title&gt;Encrypted Media Extensions: Successful Playback, Temporary session with DRM, mp4, expired license&lt;/title&gt;
</span><span class="cx">     &lt;link rel=&quot;help&quot; href=&quot;https://w3c.github.io/encrypted-media/&quot;&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediaresourcesdrmretrievedestroypersistentlicensehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -24,44 +24,44 @@
</span><span class="cx"> 
</span><span class="cx">     &lt;script&gt;
</span><span class="cx">     // Wait for a message from the main window with details of our task
</span><del>-    window.addEventListener( 'message', function( event ) {
</del><ins>+    window.addEventListener('message', function(event) {
</ins><span class="cx"> 
</span><span class="cx">         var config = event.data.config,
</span><del>-            configuration = {   initDataTypes: [ config.initDataType ],
-                                audioCapabilities: [ { contentType: config.audioType } ],
-                                videoCapabilities: [ { contentType: config.videoType } ],
-                                sessionTypes: [ 'persistent-license' ] },
-            assertions = [ ];
</del><ins>+            configuration = {   initDataTypes: [config.initDataType],
+                                audioCapabilities: [{contentType: config.audioType}],
+                                videoCapabilities: [{contentType: config.videoType}],
+                                sessionTypes: ['persistent-license']},
+            assertions = [];
</ins><span class="cx"> 
</span><span class="cx">         var _mediaKeys,
</span><span class="cx">             _mediaKeySession;
</span><span class="cx"> 
</span><span class="cx">         config.video = document.getElementById('videoelement');
</span><del>-        config.messagehandler = (new MessageHandler( config.keysystem, undefined, 'persistent-license' ) ).messagehandler;
</del><ins>+        config.messagehandler = (new MessageHandler(config.keysystem, config.content, 'persistent-license')).messagehandler;
</ins><span class="cx"> 
</span><del>-function onComplete() {
</del><ins>+        function onComplete() {
</ins><span class="cx">             window.opener.postMessage(assertions, '*');
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         function onFailure(error) {
</span><del>-            assertions.push( { actual: false, expected: true, message: error.toString() } );
</del><ins>+            assertions.push({actual: false, expected: true, message: error.toString()});
</ins><span class="cx">             onComplete();
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         function onMessage( messageevent )
</span><span class="cx">         {
</span><del>-            assertions.push( { expected: true, actual: messageevent instanceof window.MediaKeyMessageEvent, message: &quot;event is of correct class&quot; } );
-            assertions.push( { expected: 'message', actual: messageevent.type, message: &quot;event type is message&quot; } );
-            assertions.push( { expected: 'license-release', actual: messageevent.messageType, message: &quot;message type is license-release&quot; } );
</del><ins>+            assertions.push({expected: true, actual: messageevent instanceof window.MediaKeyMessageEvent, message: &quot;event is of correct class&quot;});
+            assertions.push({expected: 'message', actual: messageevent.type, message: &quot;event type is message&quot;});
+            assertions.push({expected: 'license-release', actual: messageevent.messageType, message: &quot;message type is license-release&quot;});
</ins><span class="cx"> 
</span><del>-            config.messagehandler( messageevent.messageType, messageevent.message )
-            .then( function( response ) {
-                messageevent.target.update( response ).catch(onFailure);
-            });
</del><ins>+            config.messagehandler(messageevent.messageType, messageevent.message)
+            .then( function(response) {
+                return messageevent.target.update(response);
+            }).catch(onFailure);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         function onTimeupdate(event) {
</span><del>-            if ( config.video.currentTime &gt; ( config.duration || 1 ) ) {
</del><ins>+            if (config.video.currentTime &gt; (config.duration || 1)) {
</ins><span class="cx">                 config.video.pause();
</span><span class="cx">                 config.video.removeAttribute('src');
</span><span class="cx">                 config.video.load();
</span><span class="lines">@@ -71,14 +71,14 @@
</span><span class="cx"> 
</span><span class="cx">         function onClosed() {
</span><span class="cx">             // Try and reload and check this fails
</span><del>-            var mediaKeySession = _mediaKeys.createSession( 'persistent-license' );
-            mediaKeySession.load( event.data.sessionId ).then( function( success ) {
-                assertions.push( { expected: false, actual: success, message: &quot;Load of removed session should fail&quot; } );
</del><ins>+            var mediaKeySession = _mediaKeys.createSession('persistent-license');
+            mediaKeySession.load(event.data.sessionId ).then( function(success) {
+                assertions.push({expected: false, actual: success, message: &quot;Load of removed session should fail&quot;});
</ins><span class="cx">                 onComplete();
</span><span class="cx">             }).catch(onFailure);
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        navigator.requestMediaKeySystemAccess(config.keysystem, [ configuration ] )
</del><ins>+        navigator.requestMediaKeySystemAccess(config.keysystem, [configuration] )
</ins><span class="cx">         .then(function(access) {
</span><span class="cx">             return access.createMediaKeys();
</span><span class="cx">         }).then(function(mediaKeys) {
</span><span class="lines">@@ -86,13 +86,13 @@
</span><span class="cx">             return config.video.setMediaKeys(mediaKeys);
</span><span class="cx">         }).then(function() {
</span><span class="cx">             config.video.addEventListener('timeupdate', onTimeupdate, true);
</span><del>-            _mediaKeySession = _mediaKeys.createSession( 'persistent-license' );
-            _mediaKeySession.addEventListener( 'message', onMessage );
</del><ins>+            _mediaKeySession = _mediaKeys.createSession('persistent-license');
+            _mediaKeySession.addEventListener('message', onMessage);
</ins><span class="cx">             _mediaKeySession.closed.then(onClosed);
</span><del>-            return _mediaKeySession.load( event.data.sessionId );
-        }).then(function( success ) {
-            assertions.push( { actual: success, expected: true, message: &quot;Expect load session to succeed&quot; } );
-            if ( !success ) throw new DOMException();
</del><ins>+            return _mediaKeySession.load(event.data.sessionId);
+        }).then(function(success) {
+            assertions.push({actual: success, expected: true, message: &quot;Expect load session to succeed&quot;});
+            if (!success) throw new DOMException();
</ins><span class="cx">             return testmediasource(config);
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             config.video.src = URL.createObjectURL(source);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsclearkeyupdatenonasciiinputjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/clearkey-update-non-ascii-input.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/clearkey-update-non-ascii-input.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/clearkey-update-non-ascii-input.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx">             assert_unreached('Error: update() should fail because the processed message has non-ASCII character.');
</span><span class="cx">         }).catch(function (error) {
</span><span class="cx">             if(messageEventFired){
</span><del>-                assert_equals(error.name, 'InvalidAccessError');
</del><ins>+                assert_equals(error.name, 'TypeError');
</ins><span class="cx">             }
</span><span class="cx">             else {
</span><span class="cx">                 assert_unreached('Error: ' + error.name);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsgeneraterequestdisallowedinputjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/generate-request-disallowed-input.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/generate-request-disallowed-input.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/generate-request-disallowed-input.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">             promise_test(function(test) {
</span><span class="cx">                 // Create a &quot;temporary&quot; session for |keysystem| and call generateRequest()
</span><span class="cx">                 // with the provided initData. generateRequest() should fail with an
</span><del>-                // InvalidAccessError. Returns a promise that is resolved
</del><ins>+                // TypeError. Returns a promise that is resolved
</ins><span class="cx">                 // if the error occurred and rejected otherwise.
</span><span class="cx">                 return navigator.requestMediaKeySystemAccess(testspec.keysystem, getSimpleConfigurationForInitDataType(testspec.initDataType)).then(function(access) {
</span><span class="cx">                     return access.createMediaKeys();
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsinvalidlicensejs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/invalid-license.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/invalid-license.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/invalid-license.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx">             assert_unreached('Error: update() should fail because of an invalid license.');
</span><span class="cx">         }).catch(function (error) {
</span><span class="cx">             if(messageEventFired) {
</span><del>-                assert_equals(error.name, 'InvalidAccessError');
</del><ins>+                assert_equals(error.name, 'TypeError');
</ins><span class="cx">             } else {
</span><span class="cx">                 assert_unreached('Error: ' + error.name);
</span><span class="cx">             }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsonencryptedjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/onencrypted.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/onencrypted.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/onencrypted.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -8,7 +8,7 @@
</span><span class="cx">     var currentData;
</span><span class="cx"> 
</span><span class="cx">     async_test(function (test) {
</span><del>-          var video = config.video,
</del><ins>+        var video = config.video,
</ins><span class="cx">             mediaSource,
</span><span class="cx">             onEncrypted = function (event) {
</span><span class="cx">                 currentData = new Uint8Array(event.initData);
</span><span class="lines">@@ -24,14 +24,15 @@
</span><span class="cx">                 }
</span><span class="cx">             };
</span><span class="cx"> 
</span><del>-          waitForEventAndRunStep('encrypted', video, onEncrypted, test);
-          return testmediasource(config).then(test.step_func(function (source) {
-              mediaSource = source;
-              config.video.src = URL.createObjectURL(mediaSource);
-              video.play();
-          }));
-      }, 'encrypted fired on encrypted media file.'
-    );
</del><ins>+        waitForEventAndRunStep('encrypted', video, onEncrypted, test);
+        return testmediasource(config).then(function (source) {
+            mediaSource = source;
+            config.video.src = URL.createObjectURL(mediaSource);
+            return source.done;
+        }).then(function(){
+            video.play();
+        });
+    }, 'encrypted fired on encrypted media file.');
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> function checkInitData(data, expectedData) {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackdestroypersistentlicensejs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-destroy-persistent-license.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-destroy-persistent-license.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-destroy-persistent-license.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -87,6 +87,8 @@
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx">         }).catch(onFailure);
</span><span class="cx">     }, testname);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackpersistentlicenseeventsjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-license-events.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-license-events.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-license-events.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -49,22 +49,17 @@
</span><span class="cx">             }).then(test.step_func(function() {
</span><span class="cx">                 _events.push('updated');
</span><span class="cx">                 if (event.messageType === 'license-release') {
</span><del>-                    assert_array_equals(_events,
-                                [
-                                    'generaterequest',
-                                    'license-request',
-                                    'license-request-response',
-                                    'updated',
-                                    'keystatuseschange',
-                                    'playing',
-                                    'remove',
-                                    'keystatuseschange',
-                                    'license-release',
-                                    'license-release-response',
-                                    'closed-promise',
-                                    'updated'
-                                ],
-                                &quot;Expected events sequence&quot; );
</del><ins>+                    checkEventSequence( _events,
+                                    ['generaterequest',
+                                        ['license-request', 'license-request-response', 'updated'], // potentially repeating
+                                        'keystatuseschange',
+                                        'playing',
+                                        'remove',
+                                        'keystatuseschange',
+                                        'license-release',
+                                        'license-release-response',
+                                        'closed-promise',
+                                        'updated' ]);
</ins><span class="cx">                     test.done();
</span><span class="cx">                 }
</span><span class="cx">             })).catch(onFailure);
</span><span class="lines">@@ -122,6 +117,8 @@
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx">         }).catch(onFailure);
</span><span class="cx">     }, testname);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackpersistentlicensejs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-license.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-license.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-license.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -69,6 +69,8 @@
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx">         }).catch(onFailure);
</span><span class="cx">     }, testname);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackpersistentusagerecordeventsjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record-events.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record-events.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record-events.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -5,10 +5,10 @@
</span><span class="cx">                                     + /video\/([^;]*)/.exec(config.videoType)[1]
</span><span class="cx">                                     + ', playback, check events';
</span><span class="cx"> 
</span><del>-    var configuration = {   initDataTypes: [ config.initDataType ],
-                            audioCapabilities: [ { contentType: config.audioType } ],
-                            videoCapabilities: [ { contentType: config.videoType } ],
-                            sessionTypes: [ 'persistent-usage-record' ] };
</del><ins>+    var configuration = {   initDataTypes: [config.initDataType ],
+                            audioCapabilities: [{contentType: config.audioType}],
+                            videoCapabilities: [{contentType: config.videoType}],
+                            sessionTypes: ['persistent-usage-record']};
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     async_test(function(test) {
</span><span class="lines">@@ -28,12 +28,12 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         function onMessage(event) {
</span><del>-            assert_equals( event.target, _mediaKeySession );
-            assert_true( event instanceof window.MediaKeyMessageEvent );
-            assert_equals( event.type, 'message');
</del><ins>+            assert_equals(event.target, _mediaKeySession);
+            assert_true(event instanceof window.MediaKeyMessageEvent);
+            assert_equals(event.type, 'message');
</ins><span class="cx"> 
</span><del>-            if ( event.messageType !== 'individualization-request' ) {
-                _events.push( event.messageType );
</del><ins>+            if (event.messageType !== 'individualization-request') {
+                _events.push(event.messageType);
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             config.messagehandler(event.messageType, event.message).then(function(response) {
</span><span class="lines">@@ -40,25 +40,19 @@
</span><span class="cx">                 _events.push(event.messageType + '-response');
</span><span class="cx">                 return _mediaKeySession.update(response);
</span><span class="cx">             }).then(test.step_func(function() {
</span><del>-                _events.push('update-done');
</del><ins>+                _events.push('updated');
</ins><span class="cx">                 if (event.messageType === 'license-release') {
</span><del>-                    consoleWrite(_events);
-                    assert_array_equals(_events,
-                                    [   'encrypted',
-                                        'generaterequest-done',
-                                        'license-request',
-                                        'license-request-response',
-                                        'update-done',
</del><ins>+                    checkEventSequence( _events,
+                                    ['encrypted','generaterequest-done',
+                                        ['license-request', 'license-request-response', 'updated'], // potentially repeating
</ins><span class="cx">                                         'keystatuseschange',
</span><span class="cx">                                         'playing',
</span><del>-                                        'remove-done',
</del><ins>+                                        'removed',
</ins><span class="cx">                                         'keystatuseschange',
</span><span class="cx">                                         'license-release',
</span><span class="cx">                                         'license-release-response',
</span><span class="cx">                                         'closed-promise',
</span><del>-                                        'update-done'
-                                    ],
-                                    &quot;Expected events sequence&quot; );
</del><ins>+                                        'updated' ]);
</ins><span class="cx">                     test.done();
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="lines">@@ -83,7 +77,7 @@
</span><span class="cx">             if (_video.currentTime &gt; (config.duration || 1) &amp;&amp; !_timeupdateEvent) {
</span><span class="cx">                 _timeupdateEvent = true;
</span><span class="cx">                 _video.pause();
</span><del>-                _mediaKeySession.remove().then(recordEventFunc('remove-done')).catch(onFailure);
</del><ins>+                _mediaKeySession.remove().then(recordEventFunc('removed')).catch(onFailure);
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -107,6 +101,8 @@
</span><span class="cx">             return testmediasource(config);
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _video.src = URL.createObjectURL(source);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx">         }).catch(onFailure);
</span><span class="cx">     }, testname);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackpersistentusagerecordjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -96,6 +96,8 @@
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx">         }).catch(onFailure);
</span><span class="cx">     }, testname);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackretrievepersistentlicensejs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-license.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-license.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-license.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -100,6 +100,8 @@
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx">         }).catch(onFailure);
</span><span class="cx">     }, testname);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybackretrievepersistentusagerecordjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-usage-record.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-usage-record.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-usage-record.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -102,6 +102,8 @@
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx">         }).catch(onFailure);
</span><span class="cx">     }, testname);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporaryencryptedclearsourcesjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-encrypted-clear-sources.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-encrypted-clear-sources.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-encrypted-clear-sources.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -95,6 +95,8 @@
</span><span class="cx">                 }).then(function(source) {
</span><span class="cx">                     _mediaSource = source;
</span><span class="cx">                     _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+                    return source.done;
+                }).then(function(){
</ins><span class="cx">                     _video.play();
</span><span class="cx">                 }).catch(onFailure);
</span><span class="cx">             }
</span><span class="lines">@@ -101,7 +103,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         waitForEventAndRunStep('encrypted', _video, onEncrypted, test);
</span><del>-        waitForEventAndRunStep('playing', video, onPlaying, test);
</del><ins>+        waitForEventAndRunStep('playing', _video, onPlaying, test);
</ins><span class="cx">         startPlayback();
</span><span class="cx">     }, testname);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporaryeventsjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-events.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-events.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-events.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             config.messagehandler(event.messageType, event.message).then(function(response) {
</span><del>-                _events.push('license-response');
</del><ins>+                _events.push('license-request-response');
</ins><span class="cx">                 waitForEventAndRunStep('keystatuseschange', _mediaKeySession, onKeyStatusesChange, test);
</span><span class="cx">                 return _mediaKeySession.update( response );
</span><span class="cx">             }).then(function() {
</span><span class="lines">@@ -76,21 +76,16 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         function onClosed(event) {
</span><del>-            _events.push('closed-promise');
</del><ins>+            _events.push('closed-attribute-resolved');
</ins><span class="cx">             setTimeout(test.step_func(function() {
</span><del>-                assert_array_equals(_events,
-                                    [
-                                        'generaterequest',
-                                        'license-request',
-                                        'license-response',
-                                        'updated',
</del><ins>+                checkEventSequence( _events,
+                                    ['generaterequest',
+                                        ['license-request', 'license-request-response', 'updated'], // potentially repeating
</ins><span class="cx">                                         'allkeysusable',
</span><span class="cx">                                         'playing',
</span><del>-                                        'closed',
-                                        'closed-promise',
-                                        'emptykeyslist'
-                                    ],
-                                    &quot;Expected events sequence&quot;);
</del><ins>+                                        'closed-attribute-resolved',
+                                        'closed-method-promise-resolved',
+                                        'emptykeyslist']);
</ins><span class="cx">                 test.done();
</span><span class="cx">             } ), 0);
</span><span class="cx">         }
</span><span class="lines">@@ -102,7 +97,7 @@
</span><span class="cx"> 
</span><span class="cx">                 _mediaKeySession.closed.then(test.step_func(onClosed));
</span><span class="cx">                 _mediaKeySession.close().then(function() {
</span><del>-                    _events.push('closed');
</del><ins>+                    _events.push('closed-method-promise-resolved');
</ins><span class="cx">                 }).catch(onFailure);
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -128,6 +123,8 @@
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx">         }).catch(onFailure);
</span><span class="cx">     }, testname);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporaryexpiredjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-expired.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-expired.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-expired.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -44,13 +44,20 @@
</span><span class="cx"> 
</span><span class="cx">             assert_in_array(event.messageType, ['license-request', 'individualization-request']);
</span><span class="cx"> 
</span><del>-            var expiration = Date.now().valueOf();
-            config.messagehandler(event.messageType, event.message, expiration).then(function(response) {
</del><ins>+            var expiration = Date.now().valueOf() + 1000;
+            config.messagehandler(event.messageType, event.message, { expiration: expiration }).then(function(response) {
</ins><span class="cx">                 return event.target.update(response);
</span><del>-            }).then(test.step_func(function(){
</del><ins>+            }).then(test.step_func(function() {
+                // License server may only have second granularity, so check
+                // that session expiration time is close to the desired value.
</ins><span class="cx">                 assert_approx_equals(event.target.expiration, expiration, 2000, &quot;expiration attribute should equal provided expiration time&quot;);
</span><ins>+
+                // Since the expiration time is in the future, wait 5 seconds
+                // so that the license has expired before calling play().
</ins><span class="cx">                 test.step_timeout(function() {
</span><ins>+                    assert_greater_than(Date.now().valueOf(), expiration, &quot;Starting play before license expired&quot;);
</ins><span class="cx">                     _video.play();
</span><ins>+                    // Wait 2 seconds to ensure that the video does not play.
</ins><span class="cx">                     test.step_timeout(function() { test.done(); }, 2000);
</span><span class="cx">                 }, 5000);
</span><span class="cx">             })).catch(onFailure);
</span><span class="lines">@@ -79,6 +86,7 @@
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
</ins><span class="cx">         }).catch(onFailure);
</span><span class="cx">     }, testname);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporarymultikeysequentialjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-multikey-sequential.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-multikey-sequential.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-multikey-sequential.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -35,15 +35,21 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         function onMessage(event) {
</span><ins>+            var firstMessage = !_video.src;
</ins><span class="cx">             config.messagehandler(event.messageType, event.message, {variantId: event.target.variantId}).then(function(response) {
</span><span class="cx">                 return event.target.update(response);
</span><span class="cx">             }).then(function(){
</span><del>-                if (!video.src) {
</del><ins>+                if (firstMessage) {
</ins><span class="cx">                     _video.src = URL.createObjectURL(_mediaSource);
</span><del>-                    _video.play();
</del><ins>+                    return _mediaSource.done;
</ins><span class="cx">                 } else if (event.target.keyStatuses.size &gt; 0){
</span><span class="cx">                     _waitingForKey = false;
</span><ins>+                    return Promise.resolve();
</ins><span class="cx">                 }
</span><ins>+            }).then(function(){
+                if (firstMessage) {
+                    _video.play();
+                }
</ins><span class="cx">             }).catch(onFailure);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -50,7 +56,11 @@
</span><span class="cx">         function onWaitingForKey(event) {
</span><span class="cx">             _waitingForKey = true;
</span><span class="cx">             if (config.checkReadyState) {
</span><del>-                assert_equals(_video.readyState, _video.HAVE_METADATA, &quot;Video readyState should be HAVE_METADATA on watingforkey event&quot;);
</del><ins>+                // This test does not start playing until the first license has been provided,
+                // so this event should occur when transitioning between keys.
+                // Thus, the frame at the current playback position is available and readyState
+                // should be HAVE_CURRENT_DATA.
+                assert_equals(_video.readyState, _video.HAVE_CURRENT_DATA, &quot;Video readyState should be HAVE_CURRENT_DATA on watingforkey event&quot;);
</ins><span class="cx">             }
</span><span class="cx">             startNewSession();
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporarymultisessionjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-multisession.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-multisession.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-multisession.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -68,6 +68,8 @@
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx">         }).catch(onFailure);
</span><span class="cx">     }, testname);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporarysetMediaKeysjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-setMediaKeys.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-setMediaKeys.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-setMediaKeys.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -90,14 +90,16 @@
</span><span class="cx">             waitForEventAndRunStep('playing', _video, onPlaying, test);
</span><span class="cx"> 
</span><span class="cx">             return testmediasource(config);
</span><del>-        }).then(test.step_func(function(source) {
</del><ins>+        }).then(function(source) {
</ins><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx"> 
</span><span class="cx">             if (config.testcase === SETMEDIAKEYS_AFTER_SRC) {
</span><span class="cx">                 return _video.setMediaKeys(_mediaKeys);
</span><span class="cx">             }
</span><del>-        })).catch(onFailure);
</del><ins>+        }).catch(onFailure);
</ins><span class="cx">     }, testname);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporarytwovideosjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-two-videos.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-two-videos.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-two-videos.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -74,6 +74,8 @@
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx">             return wait_for_timeupdate_message(_video);
</span><span class="cx">         }).catch(onFailure);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporarywaitingforkeyjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-waitingforkey.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-waitingforkey.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-waitingforkey.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -63,6 +63,8 @@
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx">         }).catch(onFailure);
</span><span class="cx">     }, testname);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsplaybacktemporaryjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -74,6 +74,8 @@
</span><span class="cx">         }).then(function(source) {
</span><span class="cx">             _mediaSource = source;
</span><span class="cx">             _video.src = URL.createObjectURL(_mediaSource);
</span><ins>+            return source.done;
+        }).then(function(){
</ins><span class="cx">             _video.play();
</span><span class="cx">         }).catch(onFailure);
</span><span class="cx">     }, testname);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsrequestmediakeysystemaccessjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/requestmediakeysystemaccess.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/requestmediakeysystemaccess.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/requestmediakeysystemaccess.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -8,7 +8,7 @@
</span><span class="cx">             videoCapabilities = configurations.length ? configurations[0].videoCapabilities : undefined,
</span><span class="cx">             audiocontenttypes = audioCapabilities ? audioCapabilities.map( function(ac) { return &quot;'&quot; + ac.contentType + &quot;'&quot;; } ).join(',') : '',
</span><span class="cx">             videocontenttypes = videoCapabilities ? videoCapabilities.map( function(ac) { return &quot;'&quot; + ac.contentType + &quot;'&quot;; } ).join(',') : '',
</span><del>-            modifiedtestname = testname.replace( '%ks', keySystem ).replace( '%audiocontenttype', audiocontenttypes ).replace( '%videocontenttype', videocontenttypes );
</del><ins>+            modifiedtestname = testname.replace( '%audiocontenttype', audiocontenttypes ).replace( '%videocontenttype', videocontenttypes );
</ins><span class="cx"> 
</span><span class="cx">         promise_test(function(test) {
</span><span class="cx">             return navigator.requestMediaKeySystemAccess(keySystem, configurations).then(function(a) {
</span><span class="lines">@@ -41,17 +41,17 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Tests for Key System.
</span><del>-    expect_error('', [{}], 'InvalidAccessError', 'Empty Key System (%ks)');
-    expect_error('com.example.unsupported', [{}], 'NotSupportedError', 'Unsupported Key System (%ks)');
-    expect_error(config.keysystem + '.', [{}], 'NotSupportedError', 'Key System ending in &quot;.&quot; (%ks)');
-    expect_error(config.keysystem.toUpperCase(), [{}], 'NotSupportedError', 'Capitalized Key System (%ks)');
-    expect_error(config.keysystem + '\u028F', [{}], 'NotSupportedError', 'Non-ASCII Key System (%ks)');
</del><ins>+    expect_error('', [{}], 'TypeError', 'Empty Key System');
+    expect_error('com.example.unsupported', [{}], 'NotSupportedError', 'Unsupported Key System');
+    expect_error(config.keysystem + '.', [{}], 'NotSupportedError', 'Key System ending in &quot;.&quot;');
+    expect_error(config.keysystem.toUpperCase(), [{}], 'NotSupportedError', 'Capitalized Key System');
+    expect_error(config.keysystem + '\u028F', [{}], 'NotSupportedError', 'Non-ASCII Key System');
</ins><span class="cx"> 
</span><span class="cx">     // Parent of Clear Key not supported.
</span><del>-    expect_error(config.keysystem.match(/^(.*?)\./)[1], [{}], 'NotSupportedError', 'Root domain of Key System alone (%ks)');
-    expect_error(config.keysystem.match(/^(.*?)\./)[0], [{}], 'NotSupportedError', 'Root domain of Key System, with dot (%ks)');
-    expect_error(config.keysystem.match(/^(.*?\..*?)\./)[1], [{}], 'NotSupportedError', 'Domain of Key System along (%ks)');
-    expect_error(config.keysystem.match(/^(.*?\..*?)\./)[0], [{}], 'NotSupportedError', 'Domain of Key System, with dot (%ks)');
</del><ins>+    expect_error(config.keysystem.match(/^(.*?)\./)[1], [{}], 'NotSupportedError', 'Root domain of Key System alone');
+    expect_error(config.keysystem.match(/^(.*?)\./)[0], [{}], 'NotSupportedError', 'Root domain of Key System, with dot');
+    expect_error(config.keysystem.match(/^(.*?\..*?)\./)[1], [{}], 'NotSupportedError', 'Domain of Key System along');
+    expect_error(config.keysystem.match(/^(.*?\..*?)\./)[0], [{}], 'NotSupportedError', 'Domain of Key System, with dot');
</ins><span class="cx"> 
</span><span class="cx">     // Child of Clear Key not supported.
</span><span class="cx">     expect_error(config.keysystem+'.foo', [{}], 'NotSupportedError', 'Child of Key System');
</span><span class="lines">@@ -60,30 +60,30 @@
</span><span class="cx">     expect_error('webkit-'+config.keysystem, [{}], 'NotSupportedError', 'Prefixed Key System');
</span><span class="cx"> 
</span><span class="cx">     // Incomplete names.
</span><del>-    expect_error(config.keysystem.substr(0,7)+config.keysystem.substr(8), [{}], 'NotSupportedError', 'Incomplete Key System name (%ks)');
-    expect_error(config.keysystem.substr(0,config.keysystem.length-1), [{}], 'NotSupportedError', 'Incomplete Key System name (%ks)');
</del><ins>+    expect_error(config.keysystem.substr(0,7)+config.keysystem.substr(8), [{}], 'NotSupportedError', 'Missing characters in middle of Key System name');
+    expect_error(config.keysystem.substr(0,config.keysystem.length-1), [{}], 'NotSupportedError', 'Missing characters at end of Key System name');
</ins><span class="cx"> 
</span><span class="cx">     // Spaces in key system name not supported.
</span><del>-    expect_error(' '+config.keysystem, [{}], 'NotSupportedError', 'Leading space in Key System name (%ks)');
-    expect_error(config.keysystem.substr(0,6) + ' ' + config.keysystem.substr(6), [{}], 'NotSupportedError', 'Extra space in Key System name (%ks)');
-    expect_error(config.keysystem + ' ', [{}], 'NotSupportedError', 'Trailing space in Key System name (%ks)');
</del><ins>+    expect_error(' '+config.keysystem, [{}], 'NotSupportedError', 'Leading space in Key System name');
+    expect_error(config.keysystem.substr(0,6) + ' ' + config.keysystem.substr(6), [{}], 'NotSupportedError', 'Extra space in Key System name');
+    expect_error(config.keysystem + ' ', [{}], 'NotSupportedError', 'Trailing space in Key System name');
</ins><span class="cx"> 
</span><span class="cx">     // Extra dots in key systems names not supported.
</span><del>-    expect_error('.' + config.keysystem, [{}], 'NotSupportedError', 'Leading dot in Key System name (%ks)');
-    expect_error(config.keysystem.substr(0,6) + '.' + config.keysystem.substr(6), [{}], 'NotSupportedError', 'Trailing dot in Key System name (%ks)');
-    expect_error(config.keysystem + '.', [{}], 'NotSupportedError', 'Trailing dot in Key System name (%ks)');
</del><ins>+    expect_error('.' + config.keysystem, [{}], 'NotSupportedError', 'Leading dot in Key System name');
+    expect_error(config.keysystem.substr(0,6) + '.' + config.keysystem.substr(6), [{}], 'NotSupportedError', 'Extra dot in middle of Key System name');
+    expect_error(config.keysystem + '.', [{}], 'NotSupportedError', 'Trailing dot in Key System name');
</ins><span class="cx"> 
</span><span class="cx">     // Key system name is case sensitive.
</span><span class="cx">     if (config.keysystem !== config.keysystem.toUpperCase()) {
</span><del>-        expect_error(config.keysystem.toUpperCase(), [{}], 'NotSupportedError', 'Key System name is case sensitive (%ks)');
</del><ins>+        expect_error(config.keysystem.toUpperCase(), [{}], 'NotSupportedError', 'Key System name is case sensitive');
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (config.keysystem !== config.keysystem.toLowerCase()) {
</span><del>-        expect_error(config.keysystem.toLowerCase(), [{}], 'NotSupportedError', 'Key System name is case sensitive (%ks)');
</del><ins>+        expect_error(config.keysystem.toLowerCase(), [{}], 'NotSupportedError', 'Key System name is case sensitive');
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Tests for trivial configurations.
</span><del>-    expect_error(config.keysystem, [], 'InvalidAccessError', 'Empty supportedConfigurations');
</del><ins>+    expect_error(config.keysystem, [], 'TypeError', 'Empty supportedConfigurations');
</ins><span class="cx">     expect_config(config.keysystem, [{}], {}, 'Empty configuration');
</span><span class="cx"> 
</span><span class="cx">     // Various combinations of supportedConfigurations.
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptssetmediakeysmultipletimeswithdifferentmediakeysjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/setmediakeys-multiple-times-with-different-mediakeys.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/setmediakeys-multiple-times-with-different-mediakeys.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/setmediakeys-multiple-times-with-different-mediakeys.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -9,7 +9,7 @@
</span><span class="cx">             _access,
</span><span class="cx">             _mediaKeys1,
</span><span class="cx">             _mediaKeys2,
</span><del>-            fail;
</del><ins>+            _usingMediaKeys2 = false;;
</ins><span class="cx"> 
</span><span class="cx">         // Test MediaKeys assignment.
</span><span class="cx">         assert_equals(_video.mediaKeys, null);
</span><span class="lines">@@ -50,37 +50,49 @@
</span><span class="cx">         })).then(function(source) {
</span><span class="cx">             // Set src attribute on Video Element
</span><span class="cx">             _video.src = URL.createObjectURL(source);
</span><del>-            // Set mediaKeys2 on video element (switching MediaKeys) need not
-            // fail after src attribute is set.
</del><ins>+            // According to the specification, support for changing the Media Keys object after
+            // the src attribute on the video element has been set is optional. The following operation
+            // may therefore either succeed or fail. We handle both cases.
</ins><span class="cx">             return _video.setMediaKeys(_mediaKeys2);
</span><del>-        })).then(test.step_func(function() {
-            // Switching setMediaKeys after setting src attribute on video element
-            // is not required to fail.
-            assert_equals(_video2.mediaKeys, _mediaKeys2);
-            fail = false;
</del><ins>+        }).then(test.step_func(function() {
+            // Changing the Media Keys object succeeded
+            _usingMediaKeys2 = true;
+            assert_equals(_video.mediaKeys, _mediaKeys2);
+            // Return something so the promise resolves properly.
</ins><span class="cx">             return Promise.resolve();
</span><del>-        }, test.step_func(function(error) {
-            fail = true;
</del><ins>+        }), test.step_func(function(error) {
+            // Changing the Media Keys object failed
+            _usingMediaKeys2 = false;
</ins><span class="cx">             assert_equals(_video.mediaKeys, _mediaKeys1);
</span><ins>+            // The specification allows either NotSupportedError or InvalidStateError depending on
+            // whether the failure was because changing Media Keys object is not supported
+            // or just not allowed at this time, respectively.
</ins><span class="cx">             assert_in_array(error.name, ['InvalidStateError','NotSupportedError']);
</span><span class="cx">             assert_not_equals(error.message, '');
</span><span class="cx">             // Return something so the promise resolves properly.
</span><span class="cx">             return Promise.resolve();
</span><span class="cx">         })).then(function() {
</span><del>-            // Set null mediaKeys on video (clearing MediaKeys) not
-            // supported after src attribute is set.
</del><ins>+            // According to the specification, support for clearing the Media Keys object associated
+            // with the video element is optional. The following operation
+            // may therefore either succeed or fail. We handle both cases.
</ins><span class="cx">             return _video.setMediaKeys(null);
</span><span class="cx">         }).then(test.step_func(function() {
</span><del>-            assert_unreached('Clearing mediaKeys after setting src should have failed.');
</del><ins>+            // Clearing the media keys succeeded
+            assert_equals(_video.mediaKeys, null);
+            test.done();
</ins><span class="cx">         }), test.step_func(function(error) {
</span><del>-            if(fail) {
</del><ins>+            // Clearing the media keys failed
+            if(!_usingMediaKeys2) {
</ins><span class="cx">                 assert_equals(_video.mediaKeys, _mediaKeys1);
</span><span class="cx">             } else {
</span><span class="cx">                 assert_equals(_video.mediaKeys, _mediaKeys2);
</span><span class="cx">             }
</span><del>-            assert_is_array(error.name, ['InvalidStateError','ReferenceError']);
</del><ins>+            // The specification allows either NotSupportedError or InvalidStateError depending on
+            // whether the failure was because changing Media Keys object is not supported
+            // or just not allowed at this time, respectively.
+            assert_in_array(error.name, ['InvalidStateError','NotSupportedError']);
</ins><span class="cx">             assert_not_equals(error.message, '');
</span><span class="cx">             test.done();
</span><span class="cx">         })).catch(onFailure);
</span><span class="cx">     }, testname);
</span><del>-}
</del><span class="cx">\ No newline at end of file
</span><ins>+}
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptssetmediakeysjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/setmediakeys.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/setmediakeys.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/setmediakeys.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx">             assert_unreached('setMediaKeys should fail when setting to wrong kind of object (Date)');
</span><span class="cx">         }, function(error) {
</span><span class="cx">             // The error should be TypeError.
</span><del>-            assert_equals(error.name, 'setMediaKeys should return a TypeError when setting to wrong kind of object (Date)');
</del><ins>+            assert_equals(error.name, 'TypeError', 'setMediaKeys should return a TypeError when setting to wrong kind of object (Date)');
</ins><span class="cx">             return navigator.requestMediaKeySystemAccess(config.keysystem, [configuration]);
</span><span class="cx">         }).then(function(access) {
</span><span class="cx">             assert_equals(access.keySystem, config.keysystem)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptssyntaxmediakeysessionjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/syntax-mediakeysession.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/syntax-mediakeysession.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/syntax-mediakeysession.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -50,8 +50,10 @@
</span><span class="cx">                 return mk5.createSession().generateRequest(type, 1);
</span><span class="cx">             }
</span><span class="cx">         },
</span><ins>+        // (new Uint8Array(0)) returns empty array. So 'TypeError' should
+        // be returned.
</ins><span class="cx">         {
</span><del>-            exception: 'InvalidAccessError',
</del><ins>+            exception: 'TypeError',
</ins><span class="cx">             func: function (mk6, type) {
</span><span class="cx">                 return mk6.createSession().generateRequest(type, new Uint8Array(0));
</span><span class="cx">             }
</span><span class="lines">@@ -178,12 +180,15 @@
</span><span class="cx">     // allows for an NotSupportedError to be generated and treated as a
</span><span class="cx">     // success, if allowed. See comment above kCreateSessionTestCases.
</span><span class="cx">     function test_generateRequest(testCase, mediaKeys, type, initData) {
</span><ins>+        var mediaKeySession;
</ins><span class="cx">         try {
</span><del>-            var mediaKeySession = testCase.func.call(null, mediaKeys);
-            return mediaKeySession.generateRequest(type, initData);
</del><ins>+            mediaKeySession = testCase.func.call(null, mediaKeys);
</ins><span class="cx">         } catch (e) {
</span><span class="cx">             assert_true(testCase.isNotSupportedAllowed);
</span><ins>+            assert_equals(e.name, 'NotSupportedError');
+            return Promise.resolve('not supported');
</ins><span class="cx">         }
</span><ins>+        return mediaKeySession.generateRequest(type, initData);
</ins><span class="cx">     }
</span><span class="cx">     function generateRequestForVariousSessions(){
</span><span class="cx">         return new Promise(function(resolve, reject){
</span><span class="lines">@@ -247,8 +252,10 @@
</span><span class="cx">                 return s.update(1);
</span><span class="cx">             }
</span><span class="cx">         },
</span><ins>+        // (new Uint8Array(0)) returns empty array. So 'TypeError' should
+        // be returned.
</ins><span class="cx">         {
</span><del>-            exception: 'InvalidAccessError',
</del><ins>+            exception: 'TypeError',
</ins><span class="cx">             func: function (s) {
</span><span class="cx">                 return s.update(new Uint8Array(0));
</span><span class="cx">             }
</span><span class="lines">@@ -319,14 +326,6 @@
</span><span class="cx">                 assert_unreached('remove() should not succeed if session uninitialized');
</span><span class="cx">             }, function (error) {
</span><span class="cx">                 assert_equals(error.name, 'InvalidStateError');
</span><del>-                // remove() on a temporary session should fail.
-                return mediaKeySession.generateRequest(type, initData);
-            }).then(function (result) {
-                return mediaKeySession.remove();
-            }).then(function () {
-                assert_unreached('remove() should not succeed for temporary sessions');
-            }, function (error) {
-                assert_equals(error.name, 'InvalidAccessError');
</del><span class="cx">             });
</span><span class="cx">     }
</span><span class="cx">     function removeTestException(){
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptssyntaxmediakeysystemaccessjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/syntax-mediakeysystemaccess.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/syntax-mediakeysystemaccess.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/syntax-mediakeysystemaccess.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -47,19 +47,22 @@
</span><span class="cx">         {
</span><span class="cx">             exception: 'NotSupportedError',
</span><span class="cx">             func: function () {
</span><del>-                return navigator.requestMediaKeySystemAccess(new Uint8Array(0), [{}]);
</del><ins>+                return navigator.requestMediaKeySystemAccess('unsupported', [{}]);
</ins><span class="cx">             }
</span><span class="cx">         },
</span><ins>+        // Empty keysystem string should be rejected with TypeError.
</ins><span class="cx">         {
</span><del>-            exception: 'NotSupportedError',
</del><ins>+            exception: 'TypeError',
</ins><span class="cx">             func: function () {
</span><span class="cx">                 return navigator.requestMediaKeySystemAccess('', [{}]);
</span><span class="cx">             }
</span><span class="cx">         },
</span><ins>+        // (new Uint8Array(0)).toString() should return ''. So this case should be the same
+        // as the above.
</ins><span class="cx">         {
</span><del>-            exception: 'NotSupportedError',
</del><ins>+            exception: 'TypeError',
</ins><span class="cx">             func: function () {
</span><del>-                return navigator.requestMediaKeySystemAccess('unsupported', [{}]);
</del><ins>+                return navigator.requestMediaKeySystemAccess(new Uint8Array(0), [{}]);
</ins><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         // Non-ASCII names.
</span><span class="lines">@@ -71,32 +74,32 @@
</span><span class="cx">         },
</span><span class="cx">         // Empty sequence of MediaKeySystemConfiguration.
</span><span class="cx">         {
</span><del>-            exception: 'NotSupportedError',
</del><ins>+            exception: 'TypeError',
</ins><span class="cx">             func: function () {
</span><span class="cx">                 return navigator.requestMediaKeySystemAccess(keysystem, []);
</span><span class="cx">             }
</span><span class="cx">         },
</span><del>-        // Invalid sequences of MediaKeySystemConfigurations.
</del><ins>+        // Things that don't convert to valid sequences of MediaKeySystemConfigurations.
</ins><span class="cx">         {
</span><del>-            exception: 'NotSupportedError',
</del><ins>+            exception: 'TypeError',
</ins><span class="cx">             func: function () {
</span><span class="cx">                 return navigator.requestMediaKeySystemAccess(keysystem, {});
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         {
</span><del>-            exception: 'NotSupportedError',
</del><ins>+            exception: 'TypeError',
</ins><span class="cx">             func: function () {
</span><span class="cx">                 return navigator.requestMediaKeySystemAccess(keysystem, &quot;invalid&quot;);
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         {
</span><del>-            exception: 'NotSupportedError',
</del><ins>+            exception: 'TypeError',
</ins><span class="cx">             func: function () {
</span><span class="cx">                 return navigator.requestMediaKeySystemAccess(keysystem, [{}, 6]);
</span><span class="cx">             }
</span><span class="cx">         },
</span><span class="cx">         {
</span><del>-            exception: 'NotSupportedError',
</del><ins>+            exception: 'TypeError',
</ins><span class="cx">             func: function () {
</span><span class="cx">                 return navigator.requestMediaKeySystemAccess(keysystem, [&quot;invalid&quot;, &quot;upsupported&quot;]);
</span><span class="cx">             }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsupdatedisallowedinputjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/update-disallowed-input.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/update-disallowed-input.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/update-disallowed-input.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx">         }).then(function () {
</span><span class="cx">             assert_unreached('update() with a response longer than 64Kb succeed');
</span><span class="cx">         }).catch(function (error) {
</span><del>-            assert_equals(error.name, 'InvalidAccessError');
</del><ins>+            assert_equals(error.name, 'TypeError');
</ins><span class="cx">         });
</span><span class="cx">     }, 'update() with invalid response (longer than 64Kb characters) should fail.');
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediascriptsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-encrypted-clear-sources.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-events.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-expired.js
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-multikey-multisession.js
</del><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-multikey-sequential.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-multisession.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/encrypted-media/scripts/playback-temporary-setMediaKeys.js
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediautildrmmessagehandlerjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/util/drm-messagehandler.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/util/drm-messagehandler.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/util/drm-messagehandler.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -227,7 +227,7 @@
</span><span class="cx">             var algorithm = jwt2webcrypto(alg);
</span><span class="cx">             if (secret.byteLength !== algorithm.length / 8) throw new Error(&quot;Unexpected secret length: &quot; + secret.byteLength);
</span><span class="cx"> 
</span><del>-            if (!claims.iat) claims.iat = (Date.now() / 1000) | 0;
</del><ins>+            if (!claims.iat) claims.iat = ((Date.now() / 1000) | 0) - 60;
</ins><span class="cx">             if (!claims.jti) {
</span><span class="cx">                 var nonce = new Uint8Array(16);
</span><span class="cx">                 window.crypto.getRandomValues(nonce);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediautiltestmediasourcejs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/util/testmediasource.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/util/testmediasource.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/util/testmediasource.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -15,29 +15,35 @@
</span><span class="cx"> 
</span><span class="cx">             // Create media source
</span><span class="cx">             var source = new MediaSource();
</span><ins>+            source.done = new Promise(function(resolvesource,rejectsource){
</ins><span class="cx"> 
</span><del>-            // Create and fill source buffers when the media source is opened
-            source.addEventListener('sourceopen', onSourceOpen);
</del><ins>+                // Create and fill source buffers when the media source is opened
+                source.addEventListener('sourceopen', onSourceOpen);
+                resolve(source);
</ins><span class="cx"> 
</span><del>-            function onSourceOpen(event) {
-                var audioSourceBuffer = source.addSourceBuffer(config.audioType),
-                    videoSourceBuffer = source.addSourceBuffer(config.videoType);
</del><ins>+                function onSourceOpen(event) {
+                    var audioSourceBuffer = source.addSourceBuffer(config.audioType),
+                        videoSourceBuffer = source.addSourceBuffer(config.videoType);
</ins><span class="cx"> 
</span><del>-                audioSourceBuffer.appendBuffer(config.audioMedia);
-                videoSourceBuffer.appendBuffer(config.videoMedia);
</del><ins>+                    audioSourceBuffer.addEventListener('updateend',onUpdateEnd);
+                    videoSourceBuffer.addEventListener('updateend',onUpdateEnd);
</ins><span class="cx"> 
</span><del>-                function endOfStream() {
-                    if (audioSourceBuffer.updating || videoSourceBuffer.updating) {
-                        setTimeout(endOfStream, 250);
-                    } else {
-                        source.endOfStream();
</del><ins>+                    audioSourceBuffer.appendBuffer(config.audioMedia);
+                    videoSourceBuffer.appendBuffer(config.videoMedia);
+
+                    function onUpdateEnd(event){
+                        event.target.removeEventListener('updateend', onUpdateEnd);
+                        if (!audioSourceBuffer.updating &amp;&amp; !videoSourceBuffer.updating) {
+                            if (source.readyState !== 'open') {
+                                rejectsource(new Error(&quot;Media source error&quot;));
+                            } else {
+                                source.endOfStream();
+                                resolvesource();
+                            }
+                        }
</ins><span class="cx">                     }
</span><span class="cx">                 }
</span><del>-
-                endOfStream();
-            }
-
-            resolve(source);
</del><ins>+            });
</ins><span class="cx">         });
</span><span class="cx">     });
</span><del>-}
</del><span class="cx">\ No newline at end of file
</span><ins>+}
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsencryptedmediautilutilsjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/util/utils.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/util/utils.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/encrypted-media/util/utils.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -118,16 +118,7 @@
</span><span class="cx"> 
</span><span class="cx"> function forceTestFailureFromPromise(test, error, message)
</span><span class="cx"> {
</span><del>-    // Promises convert exceptions into rejected Promises. Since there is
-    // currently no way to report a failed test in the test harness, errors
-    // are reported using force_timeout().
-    if (message)
-        consoleWrite(message + ': ' + error.message);
-    else if (error)
-        consoleWrite(error);
-
-    test.force_timeout();
-    test.done();
</del><ins>+    test.step_func(assert_unreached)(message ? message + ': ' + error.message : error);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Returns an array of audioCapabilities that includes entries for a set of
</span><span class="lines">@@ -268,4 +259,27 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+// Check that the events sequence (array of strings) matches the pattern (array of either strings, or
+// arrays of strings, with the latter representing a possibly repeating sub-sequence)
+function checkEventSequence(events,pattern) {
+    function th(i) { return i + (i &lt; 4 ? [&quot;th&quot;, &quot;st&quot;, &quot;nd&quot;, &quot;rd&quot;][i] : &quot;th&quot;); }
+    var i = 0, j=0, k=0;
+    while(i &lt; events.length &amp;&amp; j &lt; pattern.length) {
+        if (!Array.isArray(pattern[j])) {
+            assert_equals(events[i], pattern[j], &quot;Expected &quot; + th(i+1) + &quot; event to be '&quot; + pattern[j] + &quot;'&quot;);
+            ++i;
+            ++j;
+        } else {
+            assert_equals(events[i], pattern[j][k], &quot;Expected &quot; + th(i+1) + &quot; event to be '&quot; + pattern[j][k] + &quot;'&quot;);
+            ++i;
+            k = (k+1)%pattern[j].length;
+            if (k === 0 &amp;&amp; events[i] !== pattern[j][0]) {
+                ++j;
+            }
+        }
+    }
+    assert_equals(i,events.length,&quot;Received more events than expected&quot;);
+    assert_equals(j,pattern.length,&quot;Expected more events than received&quot;);
+}
</ins><span class="cx"> 
</span><ins>+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicerrorafterresponsehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/error-after-response.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/error-after-response.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/error-after-response.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -9,23 +9,23 @@
</span><span class="cx">   &lt;body&gt;
</span><span class="cx">     &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><span class="cx">     &lt;script&gt;
</span><del>-function checkReader(test, reader, checkRead)
</del><ins>+function checkReader(test, reader, promiseToTest)
</ins><span class="cx"> {
</span><span class="cx">     return reader.read().then((value) =&gt; {
</span><span class="cx">         validateBufferFromString(value.value, &quot;TEST_CHUNK&quot;, &quot;Should receive first chunk&quot;);
</span><del>-        return promise_rejects(test, new TypeError(), checkRead ? reader.read() : reader.closed);
</del><ins>+        return promise_rejects(test, new TypeError(), promiseToTest(reader));
</ins><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> promise_test((test) =&gt; {
</span><span class="cx">     return fetch(&quot;../resources/bad-chunk-encoding.py?count=1&quot;).then((response) =&gt; {
</span><del>-        return checkReader(test, response.body.getReader(), true);
</del><ins>+        return checkReader(test, response.body.getReader(), reader =&gt; reader.read());
</ins><span class="cx">     });
</span><span class="cx"> }, &quot;Response reader read() promise should reject after a network error happening after resolving fetch promise&quot;);
</span><span class="cx"> 
</span><span class="cx"> promise_test((test) =&gt; {
</span><span class="cx">     return fetch(&quot;../resources/bad-chunk-encoding.py?count=1&quot;).then((response) =&gt; {
</span><del>-        return checkReader(test, response.body.getReader(), false);
</del><ins>+        return checkReader(test, response.body.getReader(), reader =&gt; reader.closed);
</ins><span class="cx">     });
</span><span class="cx"> }, &quot;Response reader closed promise should reject after a network error happening after resolving fetch promise&quot;);
</span><span class="cx">     &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicschemedataexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> PASS Fetching data:,response%27s%20body is OK (cors) 
</span><span class="cx"> PASS Fetching data:text/plain;base64,cmVzcG9uc2UncyBib[...] is OK 
</span><span class="cx"> PASS Fetching data:image/png;base64,cmVzcG9uc2UncyBib2[...] is OK 
</span><ins>+PASS Fetching [POST] data:,response%27s%20body is OK 
+PASS Fetching [HEAD] data:,response%27s%20body is OK 
</ins><span class="cx"> FAIL Fetching [GET] data:notAdataUrl.com is KO assert_unreached: Should have rejected. Reached unreachable code
</span><del>-FAIL Fetching [POST] data:,response%27s%20body is KO assert_unreached: Should have rejected. Reached unreachable code
-FAIL Fetching [HEAD] data:,response%27s%20body is KO assert_unreached: Should have rejected. Reached unreachable code
</del><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicschemedataworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data-worker-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data-worker-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data-worker-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> PASS Fetching data:,response%27s%20body is OK (cors) 
</span><span class="cx"> PASS Fetching data:text/plain;base64,cmVzcG9uc2UncyBib[...] is OK 
</span><span class="cx"> PASS Fetching data:image/png;base64,cmVzcG9uc2UncyBib2[...] is OK 
</span><ins>+PASS Fetching [POST] data:,response%27s%20body is OK 
+PASS Fetching [HEAD] data:,response%27s%20body is OK 
</ins><span class="cx"> FAIL Fetching [GET] data:notAdataUrl.com is KO assert_unreached: Should have rejected. Reached unreachable code
</span><del>-FAIL Fetching [POST] data:,response%27s%20body is KO assert_unreached: Should have rejected. Reached unreachable code
-FAIL Fetching [HEAD] data:,response%27s%20body is KO assert_unreached: Should have rejected. Reached unreachable code
</del><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicschemedatajs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -3,10 +3,10 @@
</span><span class="cx">   importScripts(&quot;../resources/utils.js&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function checkFetchResponse(url, data, mime, fetchMode) {
</del><ins>+function checkFetchResponse(url, data, mime, fetchMode, method) {
</ins><span class="cx">   var cut = (url.length &gt;= 40) ? &quot;[...]&quot; : &quot;&quot;;
</span><del>-  desc = &quot;Fetching &quot; + url.substring(0, 40) + cut + &quot; is OK&quot;;
-  var init = { };
</del><ins>+  desc = &quot;Fetching &quot; + (method ? &quot;[&quot; + method + &quot;] &quot; : &quot;&quot;) + url.substring(0, 40) + cut + &quot; is OK&quot;;
+  var init = {&quot;method&quot;: method || &quot;GET&quot;};
</ins><span class="cx">   if (fetchMode) {
</span><span class="cx">     init.mode = fetchMode;
</span><span class="cx">     desc += &quot; (&quot; + fetchMode + &quot;)&quot;;
</span><span class="lines">@@ -31,6 +31,8 @@
</span><span class="cx"> checkFetchResponse(&quot;data:image/png;base64,cmVzcG9uc2UncyBib2R5&quot;,
</span><span class="cx">                    &quot;response's body&quot;,
</span><span class="cx">                    &quot;image/png&quot;);
</span><ins>+checkFetchResponse(&quot;data:,response%27s%20body&quot;, &quot;response's body&quot;, &quot;text/plain;charset=US-ASCII&quot;, null, &quot;POST&quot;);
+checkFetchResponse(&quot;data:,response%27s%20body&quot;, &quot;response's body&quot;, &quot;text/plain;charset=US-ASCII&quot;, null, &quot;HEAD&quot;);
</ins><span class="cx"> 
</span><span class="cx"> function checkKoUrl(url, method, desc) {
</span><span class="cx">   var cut = (url.length &gt;= 40) ? &quot;[...]&quot; : &quot;&quot;;
</span><span class="lines">@@ -41,7 +43,5 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> checkKoUrl(&quot;data:notAdataUrl.com&quot;, &quot;GET&quot;);
</span><del>-checkKoUrl(&quot;data:,response%27s%20body&quot;, &quot;POST&quot;);
-checkKoUrl(&quot;data:,response%27s%20body&quot;, &quot;HEAD&quot;);
</del><span class="cx"> 
</span><span class="cx"> done();
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasictextutf8html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/text-utf8.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/text-utf8.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/text-utf8.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -44,13 +44,13 @@
</span><span class="cx"> 
</span><span class="cx">     promise_test(function(test) {
</span><span class="cx">         return new Response(body).arrayBuffer().then(function(buffer) {
</span><del>-            validateBufferFromString(buffer, encode_utf8(body), &quot;Response.arrayBuffer() should contain data encoded as UTF-8&quot;);
</del><ins>+            assert_array_equals(new Uint8Array(buffer), encode_utf8(body), &quot;Response.arrayBuffer() should contain data encoded as UTF-8&quot;);
</ins><span class="cx">         });
</span><span class="cx">     }, title + &quot; (Response object)&quot;);
</span><span class="cx"> 
</span><span class="cx">     promise_test(function(test) {
</span><span class="cx">         return new Request(&quot;&quot;, {method: &quot;POST&quot;, body: body}).arrayBuffer().then(function(buffer) {
</span><del>-            validateBufferFromString(buffer, encode_utf8(body), &quot;Request.arrayBuffer() should contain data encoded as UTF-8&quot;);
</del><ins>+            assert_array_equals(new Uint8Array(buffer), encode_utf8(body), &quot;Request.arrayBuffer() should contain data encoded as UTF-8&quot;);
</ins><span class="cx">         });
</span><span class="cx">     }, title + &quot; (Request object)&quot;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapibasicw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -18,6 +18,9 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/accept-header-worker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/accept-header.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/accept-header.js
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/conditional-get.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/error-after-response.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/integrity-sharedworker.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/integrity-worker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/integrity.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/integrity.js
</span><span class="lines">@@ -41,6 +44,9 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer.js
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload-worker.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload.js
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/response-url-worker.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/response-url.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/response-url.js
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapicorscorsredirectjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -15,7 +15,7 @@
</span><span class="cx">   var requestInit = {&quot;mode&quot;: &quot;cors&quot;, &quot;redirect&quot;: &quot;follow&quot;};
</span><span class="cx"> 
</span><span class="cx">   return promise_test(function(test) {
</span><del>-    fetch(RESOURCES_DIR + &quot;clean-stash.py?token=&quot; + uuid_token).then(function(resp) {
</del><ins>+    return fetch(RESOURCES_DIR + &quot;clean-stash.py?token=&quot; + uuid_token).then(function(resp) {
</ins><span class="cx">       return fetch(url + urlParameters, requestInit).then(function(resp) {
</span><span class="cx">         assert_equals(resp.status, 200, &quot;Response's status is 200&quot;);
</span><span class="cx">         assert_equals(resp.headers.get(&quot;x-did-preflight&quot;), &quot;0&quot;, &quot;No preflight request has been made&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiheadersheadersbasichtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-basic.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-basic.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/headers-basic.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx">         return value.toLowerCase();
</span><span class="cx">       }).sort();
</span><span class="cx"> 
</span><del>-      var iteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([].values()));
</del><ins>+      var iteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));
</ins><span class="cx">       function checkIteratorProperties(iterator) {
</span><span class="cx">         var prototype = Object.getPrototypeOf(iterator);
</span><span class="cx">         assert_equals(Object.getPrototypeOf(prototype), iteratorPrototype);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiredirectredirectcountexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,12 +1,12 @@
</span><span class="cx"> 
</span><del>-PASS Redirect 301 20 times 
-PASS Redirect 301 21 times 
-PASS Redirect 302 20 times 
-PASS Redirect 302 21 times 
-PASS Redirect 303 20 times 
-PASS Redirect 303 21 times 
-PASS Redirect 307 20 times 
-PASS Redirect 307 21 times 
-PASS Redirect 308 20 times 
-PASS Redirect 308 21 times 
</del><ins>+FAIL Redirect 301 20 times promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL Redirect 301 21 times assert_equals: Redirected 21times expected (string) &quot;21&quot; but got (undefined) undefined
+FAIL Redirect 302 20 times promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL Redirect 302 21 times assert_equals: Redirected 21times expected (string) &quot;21&quot; but got (undefined) undefined
+FAIL Redirect 303 20 times promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL Redirect 303 21 times assert_equals: Redirected 21times expected (string) &quot;21&quot; but got (undefined) undefined
+FAIL Redirect 307 20 times promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL Redirect 307 21 times assert_equals: Redirected 21times expected (string) &quot;21&quot; but got (undefined) undefined
+FAIL Redirect 308 20 times promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL Redirect 308 21 times assert_equals: Redirected 21times expected (string) &quot;21&quot; but got (undefined) undefined
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiredirectredirectcountworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,12 +1,12 @@
</span><span class="cx"> 
</span><del>-PASS Redirect 301 20 times 
-PASS Redirect 301 21 times 
-PASS Redirect 302 20 times 
-PASS Redirect 302 21 times 
-PASS Redirect 303 20 times 
-PASS Redirect 303 21 times 
-PASS Redirect 307 20 times 
-PASS Redirect 307 21 times 
-PASS Redirect 308 20 times 
-PASS Redirect 308 21 times 
</del><ins>+FAIL Redirect 301 20 times promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL Redirect 301 21 times assert_equals: Redirected 21times expected (string) &quot;21&quot; but got (undefined) undefined
+FAIL Redirect 302 20 times promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL Redirect 302 21 times assert_equals: Redirected 21times expected (string) &quot;21&quot; but got (undefined) undefined
+FAIL Redirect 303 20 times promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL Redirect 303 21 times assert_equals: Redirected 21times expected (string) &quot;21&quot; but got (undefined) undefined
+FAIL Redirect 307 20 times promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL Redirect 307 21 times assert_equals: Redirected 21times expected (string) &quot;21&quot; but got (undefined) undefined
+FAIL Redirect 308 20 times promise_test: Unhandled rejection with value: object &quot;TypeError: Type error&quot;
+FAIL Redirect 308 21 times assert_equals: Redirected 21times expected (string) &quot;21&quot; but got (undefined) undefined
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiredirectredirectcountjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -17,7 +17,7 @@
</span><span class="cx">   var requestInit = {&quot;redirect&quot;: &quot;follow&quot;};
</span><span class="cx"> 
</span><span class="cx">   promise_test(function(test) {
</span><del>-    fetch(RESOURCES_DIR + &quot;clean-stash.py?token=&quot; + uuid_token).then(function(resp) {
</del><ins>+    return fetch(RESOURCES_DIR + &quot;clean-stash.py?token=&quot; + uuid_token).then(function(resp) {
</ins><span class="cx">       assert_equals(resp.status, 200, &quot;Clean stash response's status is 200&quot;);
</span><span class="cx"> 
</span><span class="cx">       if (!shouldPass)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalscurrentcurrenthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/current/current.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/current/current.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/current/current.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,2 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Current page used as a test helper&lt;/title&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalscurrentw3cimportlogfromrev207938trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindoww3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/current/w3c-import.log (from rev 207938, trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log) (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/current/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/current/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/current/current.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalsincumbentincumbenthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Incumbent page used as a test helper&lt;/title&gt;
+
+&lt;iframe src=&quot;../current/current.html&quot; id=&quot;c&quot;&gt;&lt;/iframe&gt;
+
+&lt;script&gt;
+'use strict';
+
+const current = document.querySelector('#c').contentWindow;
+
+window.createRequest = (...args) =&gt; {
+    return new current.Request(...args);
+};
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalsincumbentw3cimportlogfromrev207938trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindoww3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/incumbent/w3c-import.log (from rev 207938, trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log) (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/incumbent/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/incumbent/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalsurlparsingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/url-parsing-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/url-parsing-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/url-parsing-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+
+PASS should parse the URL relative to the current settings object 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalsurlparsinghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/url-parsing.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/url-parsing.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/url-parsing.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,27 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Request constructor URL parsing, with multiple globals in play&lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#dom-request&quot;&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Domenic Denicola&quot; href=&quot;mailto:d@domenic.me&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;!--  This is the entry global  --&gt;
+
+&lt;iframe src=&quot;incumbent/incumbent.html&quot;&gt;&lt;/iframe&gt;
+
+&lt;script&gt;
+'use strict';
+
+const loadPromise = new Promise(resolve =&gt; {
+    window.addEventListener(&quot;load&quot;, () =&gt; resolve());
+});
+
+promise_test(() =&gt; {
+    return loadPromise.then(() =&gt; {
+        const req = frames[0].createRequest(&quot;url&quot;);
+
+        assert_equals(req.url, new URL(&quot;current/url&quot;, location.href).href);
+    });
+}, &quot;should parse the URL relative to the current settings object&quot;);
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestmultiglobalsw3cimportlogfromrev207938trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindoww3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/w3c-import.log (from rev 207938, trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log) (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/multi-globals/url-parsing.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestrequestconsumeemptyhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-consume-empty.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-consume-empty.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-consume-empty.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -99,6 +99,7 @@
</span><span class="cx">     checkRequestWithEmptyBody(&quot;blob&quot;, new Blob([], { &quot;type&quot; : &quot;text/plain&quot; }), true);
</span><span class="cx">     checkRequestWithEmptyBody(&quot;text&quot;, &quot;&quot;, true);
</span><span class="cx">     checkRequestWithEmptyBody(&quot;URLSearchParams&quot;, new URLSearchParams(&quot;&quot;), true);
</span><ins>+    // FIXME: This test assumes that the empty string be returned but it is not clear whether that is right. See https://github.com/w3c/web-platform-tests/pull/3950.
</ins><span class="cx">     checkRequestWithEmptyBody(&quot;FormData&quot;, new FormData(), true);
</span><span class="cx">     checkRequestWithEmptyBody(&quot;ArrayBuffer&quot;, new ArrayBuffer(), true);
</span><span class="cx">     &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapirequestw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -15,7 +15,14 @@
</span><span class="cx"> None
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache.html
</del><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-conditional.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-default.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-force-cache.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-cache.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-store.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache.js
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-clone.sub.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-consume-empty.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-consume.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesbadchunkencodingpy"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/bad-chunk-encoding.py (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/bad-chunk-encoding.py        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/bad-chunk-encoding.py        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -11,4 +11,3 @@
</span><span class="cx">         response.writer.write_content(&quot;a\r\nTEST_CHUNK\r\n&quot;)
</span><span class="cx">         time.sleep(delay)
</span><span class="cx">     response.writer.write_content(&quot;garbage&quot;)
</span><del>-
</del></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesutilsjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/utils.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/utils.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/utils.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -44,11 +44,6 @@
</span><span class="cx">   }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function encode_utf8(str)
-{
-    return unescape(encodeURIComponent(str));
-}
-
</del><span class="cx"> function stringToArray(str) {
</span><span class="cx">   var array = new Uint8Array(str.length);
</span><span class="cx">   for (var i=0, strLen = str.length; i &lt; strLen; i++)
</span><span class="lines">@@ -56,6 +51,13 @@
</span><span class="cx">   return array;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+function encode_utf8(str)
+{
+    if (self.TextEncoder)
+        return (new TextEncoder).encode(str);
+    return stringToArray(unescape(encodeURIComponent(str)));
+}
+
</ins><span class="cx"> function validateBufferFromString(buffer, expectedValue, message)
</span><span class="cx"> {
</span><span class="cx">   return assert_array_equals(new Uint8Array(buffer !== undefined ? buffer : []), stringToArray(expectedValue), message);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresourcesw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -16,8 +16,11 @@
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/authentication.py
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/bad-chunk-encoding.py
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/cache.py
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/clean-stash.py
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/data.json
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/echo-content.py
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/inspect-headers.py
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/method.py
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/preflight.py
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalscurrentcurrenthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/current/current.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/current/current.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/current/current.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,2 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Current page used as a test helper&lt;/title&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalscurrentw3cimportlogfromrev207938trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindoww3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/current/w3c-import.log (from rev 207938, trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log) (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/current/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/current/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/current/current.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsincumbentincumbenthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Incumbent page used as a test helper&lt;/title&gt;
+
+&lt;iframe src=&quot;../current/current.html&quot; id=&quot;c&quot;&gt;&lt;/iframe&gt;
+&lt;iframe src=&quot;../relevant/relevant.html&quot; id=&quot;r&quot;&gt;&lt;/iframe&gt;
+
+&lt;script&gt;
+'use strict';
+
+const current = document.querySelector('#c').contentWindow;
+const relevant = document.querySelector('#r').contentWindow;
+
+window.createRedirectResponse = (...args) =&gt; {
+    return current.Response.redirect.call(relevant.Response, ...args);
+};
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsincumbentw3cimportlogfromrev207938trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindoww3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/incumbent/w3c-import.log (from rev 207938, trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log) (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/incumbent/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/incumbent/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsrelevantrelevanthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,2 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Relevant page used as a test helper&lt;/title&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsrelevantw3cimportlogfromrev207938trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindoww3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/relevant/w3c-import.log (from rev 207938, trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log) (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/relevant/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/relevant/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsurlparsingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/url-parsing-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/url-parsing-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/url-parsing-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+
+PASS should parse the redirect Location URL relative to the current settings object 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsurlparsinghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/url-parsing.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/url-parsing.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/url-parsing.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,27 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;Response.redirect URL parsing, with multiple globals in play&lt;/title&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://fetch.spec.whatwg.org/#dom-response-redirect&quot;&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Domenic Denicola&quot; href=&quot;mailto:d@domenic.me&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;!--  This is the entry global  --&gt;
+
+&lt;iframe src=&quot;incumbent/incumbent.html&quot;&gt;&lt;/iframe&gt;
+
+&lt;script&gt;
+'use strict';
+
+const loadPromise = new Promise(resolve =&gt; {
+    window.addEventListener(&quot;load&quot;, () =&gt; resolve());
+});
+
+promise_test(() =&gt; {
+    return loadPromise.then(() =&gt; {
+        const res = frames[0].createRedirectResponse(&quot;url&quot;);
+
+        assert_equals(res.headers.get(&quot;Location&quot;), new URL(&quot;current/url&quot;, location.href).href);
+    });
+}, &quot;should parse the redirect Location URL relative to the current settings object&quot;);
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponsemultiglobalsw3cimportlogfromrev207938trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindoww3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/w3c-import.log (from rev 207938, trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log) (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/multi-globals/url-parsing.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponsecloneexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-clone-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-clone-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-clone-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -6,15 +6,15 @@
</span><span class="cx"> PASS Cannot clone a disturbed response 
</span><span class="cx"> PASS Cloned responses should provide the same data 
</span><span class="cx"> PASS Cancelling stream should not affect cloned one 
</span><del>-PASS Check response clone use structureClone for teed ReadableStreams (Int8Arraychunk) 
-PASS Check response clone use structureClone for teed ReadableStreams (Int16Arraychunk) 
-PASS Check response clone use structureClone for teed ReadableStreams (Int32Arraychunk) 
-PASS Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk) 
-PASS Check response clone use structureClone for teed ReadableStreams (Uint8Arraychunk) 
-PASS Check response clone use structureClone for teed ReadableStreams (Uint8ClampedArraychunk) 
-PASS Check response clone use structureClone for teed ReadableStreams (Uint16Arraychunk) 
-PASS Check response clone use structureClone for teed ReadableStreams (Uint32Arraychunk) 
-PASS Check response clone use structureClone for teed ReadableStreams (Float32Arraychunk) 
-PASS Check response clone use structureClone for teed ReadableStreams (Float64Arraychunk) 
-PASS Check response clone use structureClone for teed ReadableStreams (DataViewchunk) 
</del><ins>+FAIL Check response clone use structureClone for teed ReadableStreams (Int8Arraychunk) assert_true: Buffer of being-cloned response stream is the same as the original buffer expected true got false
+FAIL Check response clone use structureClone for teed ReadableStreams (Int16Arraychunk) assert_true: Buffer of being-cloned response stream is the same as the original buffer expected true got false
+FAIL Check response clone use structureClone for teed ReadableStreams (Int32Arraychunk) assert_true: Buffer of being-cloned response stream is the same as the original buffer expected true got false
+FAIL Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk) assert_true: Buffer of being-cloned response stream is the same as the original buffer expected true got false
+FAIL Check response clone use structureClone for teed ReadableStreams (Uint8Arraychunk) assert_true: Buffer of being-cloned response stream is the same as the original buffer expected true got false
+FAIL Check response clone use structureClone for teed ReadableStreams (Uint8ClampedArraychunk) assert_true: Buffer of being-cloned response stream is the same as the original buffer expected true got false
+FAIL Check response clone use structureClone for teed ReadableStreams (Uint16Arraychunk) assert_true: Buffer of being-cloned response stream is the same as the original buffer expected true got false
+FAIL Check response clone use structureClone for teed ReadableStreams (Uint32Arraychunk) assert_true: Buffer of being-cloned response stream is the same as the original buffer expected true got false
+FAIL Check response clone use structureClone for teed ReadableStreams (Float32Arraychunk) assert_true: Buffer of being-cloned response stream is the same as the original buffer expected true got false
+FAIL Check response clone use structureClone for teed ReadableStreams (Float64Arraychunk) assert_true: Buffer of being-cloned response stream is the same as the original buffer expected true got false
+FAIL Check response clone use structureClone for teed ReadableStreams (DataViewchunk) assert_true: Buffer of being-cloned response stream is the same as the original buffer expected true got false
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponseclonehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-clone.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-clone.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-clone.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -108,15 +108,13 @@
</span><span class="cx">         var buffer;
</span><span class="cx">         return stream1.getReader().read().then(function(data) {
</span><span class="cx">             assert_false(data.done);
</span><del>-            assert_array_equals(data.value, initialBuffer, &quot;Cloned buffer chunks have the same content&quot;);
-            assert_equals(Object.getPrototypeOf(data.value), Object.getPrototypeOf(initialBuffer), &quot;Cloned buffers have the same type&quot;);
-            assert_true(data.value !== initialBuffer, &quot;Cloned buffers are different objects&quot;);
</del><ins>+            assert_true(data.value === initialBuffer, &quot;Buffer of being-cloned response stream is the same as the original buffer&quot;);
</ins><span class="cx">             return stream2.getReader().read();
</span><span class="cx">         }).then(function(data) {
</span><span class="cx">             assert_false(data.done);
</span><span class="cx">             assert_array_equals(data.value, initialBuffer, &quot;Cloned buffer chunks have the same content&quot;);
</span><span class="cx">             assert_equals(Object.getPrototypeOf(data.value), Object.getPrototypeOf(initialBuffer), &quot;Cloned buffers have the same type&quot;);
</span><del>-            assert_true(data.value !== initialBuffer, &quot;Cloned buffers are different objects&quot;);
</del><ins>+            assert_true(data.value !== initialBuffer, &quot;Buffer of cloned response stream is a clone of the original buffer&quot;);
</ins><span class="cx">         });
</span><span class="cx">     }, &quot;Check response clone use structureClone for teed ReadableStreams (&quot; + bufferType  + &quot;chunk)&quot;);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponseconsumestreamexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-consume-stream-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-consume-stream-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-consume-stream-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> PASS Read empty blob response's body as readableStream 
</span><span class="cx"> PASS Read blob response's body as readableStream 
</span><span class="cx"> PASS Read text response's body as readableStream 
</span><del>-PASS Read text response's body as readableStream 
</del><ins>+PASS Read URLSearchParams response's body as readableStream 
</ins><span class="cx"> PASS Read array buffer response's body as readableStream 
</span><span class="cx"> FAIL Read form data response's body as readableStream promise_test: Unhandled rejection with value: object &quot;TypeError: not implemented&quot;
</span><span class="cx"> PASS Getting an error Response stream 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponseconsumestreamhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-consume-stream.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-consume-stream.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-consume-stream.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> promise_test(function(test) {
</span><span class="cx">     var response = new Response(urlSearchParams);
</span><span class="cx">     return validateStreamFromString(response.body.getReader(), urlSearchParamsData);
</span><del>-}, &quot;Read text response's body as readableStream&quot;);
</del><ins>+}, &quot;Read URLSearchParams response's body as readableStream&quot;);
</ins><span class="cx"> 
</span><span class="cx"> promise_test(function(test) {
</span><span class="cx">     var arrayBuffer = new ArrayBuffer(textData.length);
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfetchapiresponseresponseconsumehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-consume.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-consume.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-consume.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -79,13 +79,13 @@
</span><span class="cx">     var urlSearchParams = new URLSearchParams(urlSearchParamsData);
</span><span class="cx"> 
</span><span class="cx">     checkResponseBody(textData, &quot;text&quot;, &quot;text&quot;, checkBodyText);
</span><del>-    checkResponseBody(textData, &quot;text&quot;, &quot;blob&quot;, function(response, body) { checkBodyBlob(response, body, true); });
</del><ins>+    checkResponseBody(textData, &quot;text&quot;, &quot;blob&quot;, function(response, body) { return checkBodyBlob(response, body, true); });
</ins><span class="cx">     checkResponseBody(textData, &quot;text&quot;, &quot;arrayBuffer&quot;, checkBodyArrayBuffer);
</span><span class="cx">     checkResponseBody(textData, &quot;text&quot;, &quot;json&quot;, checkBodyJSON);
</span><span class="cx">     checkResponseBody(formData, &quot;formdata&quot;, &quot;formData&quot;, checkBodyFormData);
</span><del>-    checkResponseBody(urlSearchParams, &quot;URLSearchParams&quot;, &quot;text&quot;, function(response) { checkBodyText(response, urlSearchParams); });
-    checkResponseBody(urlSearchParams, &quot;URLSearchParams&quot;, &quot;blob&quot;, function(response, body) { checkBodyBlob(response, urlSearchParamsData, false); });
-    checkResponseBody(urlSearchParams, &quot;URLSearchParams&quot;, &quot;arrayBuffer&quot;, function(response) { checkBodyArrayBuffer(response, urlSearchParamsData); });
</del><ins>+    checkResponseBody(urlSearchParams, &quot;URLSearchParams&quot;, &quot;text&quot;, function(response) { return checkBodyText(response, urlSearchParamsData); });
+    checkResponseBody(urlSearchParams, &quot;URLSearchParams&quot;, &quot;blob&quot;, function(response, body) { return checkBodyBlob(response, urlSearchParamsData, false); });
+    checkResponseBody(urlSearchParams, &quot;URLSearchParams&quot;, &quot;arrayBuffer&quot;, function(response) { return checkBodyArrayBuffer(response, urlSearchParamsData); });
</ins><span class="cx"> 
</span><span class="cx">     function checkBlobResponseBody(blobBody, blobData, bodyType, checkFunction) {
</span><span class="cx">       promise_test(function(test) {
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathaxisheight5000verticalarrow14000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+wOFFOTTO8         \xC0CFF P*\xA2S(\xEEKFFTM|{kA\xD6MATH\x98\x8D\x82XQ&amp;#OS/2\@`\xF81\x92cmap\xF8@JCB\xE2Phead.6 ]\xA5\x83hhea8$=\xEBhmtx(\xD0maxpTPname\x9C\{\xC0\xD9\xC5Apost8 \xFF\x863x\x9Cc`d``ⅹ\xBB\xC7\xF3\xDB|e\xE0f~a\xB8\xA2\xDDk\x8CL3\xBF\xF0\xB2R L Bj
+8x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4
+ Ƞ\x81AAq\xF3  +I+(!#\x81\xA3\xC9x\x9C\xBD\x91\xCBj1\x86\xFF\x8CZ覴&gt;A\x84t1\x92\x88\x8A\xB8(\xA8\xE0\xA2\xE8\xD6}\x86\x99\x80I\x82\xE8;\xF4A
+]\xF61\xBA\xEEӔ\x9E\x89iW\x85
+N\xF9r\xE6?\xD7\xB8\xC2 N\xDF\x91Zx\x8D\x9C\xA0\x89\x8F\xC85ܳ\xA7\xC8u\xB4\x92f\xE4\xAE\x93U\xE4 \xB2?\x93\x92\xD5/\xE9\xF6\xBC*f\x98\xC2FNp\x8B\xF7\xC85&lt;\xB2\x9B\xC8uL\xD9[\xE4xҏ|\x81iR`\x83-\x8EE\xA3@        \x8E62t\xE8\xECA@bH\xB4\x84\xA2?%\x9D \xBAM\xE0hR\xE9`\xD7\xC4`f\xB6G\xAB\x8B\xD2\xF3v\xD6\xE1=!\x87|\xA9|\xB9\\xF0\x89s&amp;\xD3\xCAkC2\x85y8\x8A\x96\xE7P\xA6j\xA5ؑՆ\x98)״--\x83=Uҏ*\xA8\x83ve^\xA5!\xD2]n\xBD\xCE\xD4ZYk\xF6\xB2O&amp;\xFC-\xCEO\x8E\xF3Ќ\xA7\xA5\xF2\xF20\x88.\xC99ƴ\xFF_\xFE)\x8EĈ\xF42x}+s\xB3\xF1sc\x8B\x9C\x{1FA08F}\xF9\xAF\x8D\x92F\x8ER)\xD2j\xDC\xE7\x9A\xED*\xC4q\xF1\xDDy\xF0\x93aD\xA7\xF6\xB0ʭ\xA3\xB7\xE6B\xC8nU\xE4\x99
+\xFB\xF9\xA4 x\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98W\xFC\xFF\xE4\x83\xE9\xFF\xEFEA\xD5#\x82\x83\x92\xEA\x98n        \xB1x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`ddTJ\xAC\xC8,\xCEH\xCDL\xCF(1500\xD0-K-*\xC9LN\xCCI,*\xCA/74
+102102\xE8\xFD\xE0g\xF8\xA1\xC0\xF8C\x91\xE9\x87\xF3        \x96\xC6\xEE\xEE_52^\xAC2 ?\xF8edYe\xC4d{\x848@zx\x84\xC4\xA4d\x9C\x92Z\xC0F\x96\xA4\xE4%\xA7gV\xA5\x82\xA3\xA4\xFC\x92Ԋ\xE7\xFC\x82\xCA&quot;\x90#4\x925\x8C \xCD|K2|}\x8B\x8B\xF3\x933K2\xF3\xF3:\x95\xB0_\x80\x80\x91\xB1\x9D\xB1\x83\xB1\x93\xB1\x8B\xB1\x9B\x81ʦ\xEE\x91ٵ\xDD{\x9C\xDA˸w\xEF\xCF-{\x99\xF7\x8A\xFD\x92\xF8\xA9\xF7O\x82m\xEF\x9F?\xA2?N\xFD\xDC\xF2\xE7;з\x8C@\xCC\xDC\xCD\xF2\xAB\xE6WͿ6\xBEep\xE9t\xB3+\xE8&quot;^ Ls~Ոt\x8Bv\xF3p\xFD\xAA&quot;\x9E_5\xDC@\x8A\xCCL\x92Kx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8Av\xAF1\x8C4~\xFDx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87 \x84;\x88'\xA0\xB4&amp;j\xA7100\xC6\xA1\xCE\xA2L\xC3\xD8Hf\xA0\x88anj\xA2 \xAF\xD96  b@ZH3\x82M`CT\x9E
+\xF301H0\xC8\xE1tD\xA5\x83\x83\x90%T\xAD\x82$\xCE\xC4\xC0,\xC9\xC0b\xB6.L \xAC \x8A\xF9\x90`\x83\xB2@rLP \x84\\xE3x\x9Cc~\xC1\xC0\xC0 \xC4\xA2\xD7
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractionaxisheight7000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-axisheight7000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-axisheight7000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-axisheight7000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+wOFFOTTO\xB4         \x84CFF P\xCE\xFBN4$FFTM {^\xB1\xBAMATH&lt;oX+\xE1OS/2X&lt;`\xD8
+cmap7B+\xC6head*6h\xCB/hhea4$U\xEBhmtx\xAC\xD0maxpPPname\x94l\x9C\xF6V&gt;post8 \xFF\x863x\x9Cc`d``\xE2;W\xE7\xC6\xF3\xDB|e\xE0f~a\xB8\xA2ꪊLC\x88#\xBEx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9CőMj\xC30\x85\x9F\x9D\xE8\xA6\xF4\xDA⅃\xE4@Y5\xBC(\xC9&amp;\x85\xEC\x8Dqb\x91فz\x84\x9E\xA3\xCB\xA3\xF4
+]\xF6=B\x9Fe\xA5\xDBZ\x88\x85\xD1'i޼\xD1\xC05^\xE0\xA1\xF9n1s\xEC!\xC0\xABc‹\xB7{\x8E\xDB\xFCG\xC7\xDC\xF8o\x8E\xBBZ!#\xBD\xF6W\xF7VU\xB3\x87\x8Ccw\xF8t\xDC“\xF7ญ\x85\xDFs܁\xF0\x9Fw\xB9\xFF\x8E)
+\xECqb\x8D5rT\xE8!e\xAD$\x86\xA49\x9E\xE4\x9Cg\MPr\x8C\xD2v_\x93w\xC0\xB4؟\x8C^\xE7\x95襁\x88\xA4\x8AyR\xE5󙘔e\x91\xEA\xA4\xD2\xC3V\xF4J\xA8=\xEBB\xAE\x8E\xE4\x92\xF9\xB3\xEF*F\xF4\xAEG\xC8\xE8\xB6&lt;\xA9\xFD5uj2[\x81r1X\x99$\xAD\x93\x87\xC9Q\x97yV\xD70\x92R\x86\xE6\xB0ͪ\\xA7\x9B]V\x96\x8A;\xF8\xBB\xD7\xCF\xB1\xBDVegC\x8B̶\xB2O\xB1\xC0\x98\xFF\xFF7\xA0ɫ0`\xB4\xB2\x9A\xF3\xD3!.vU\\x98u&amp;\xA2\xBEc\xF1\xEBV1V+B%\xC3\xFA!/\xFDjKj+\xB5\x8D\xB7\xB0ze[\xDA\\xCB̔L%\xA4T\xFD\xBA\xF8 \xFCZjɉx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xD4J+JL.\xC9\xCC\xCF\xD3M\xAC\xC8,\xCEH\xCDL\xCF(1700\xD0-*\xCDI-\xC9\xC8L\xCE\xCEK-.6\x8A002102h\xFF\xE0g\xF8!\xCD\xF8C\x86\xE9\x87,\xF3        \x96\xC6n `\x95ax\xCE/\xC3\xC0  \xC3\xF0JP\x86\x81C\x86QH\x88\x81\xA4A\x8D\xC1\x9F\xA1\xC29\xBF\xA0\xB2d\xB4\x82F\xB2\xA6\x82\x91\x81\xA1\x99\x82obI\x86\xAF\x8F\x82
 cqq~rf&quot;\xC8D\xBB\x84x'##\xA3\x92r\xF7\xDE\xA7\xF62\xEE\xDD\xFBs\xCB^\xE6\xBDb\xBF$~\xEA\xFD\x93`\xDB\xFB\xE7\x8F\xE8\x8FS?\xB7\xFC9\xC5\xCE\xC7\xF7\xABF\xA4[\xB4\x9B\x87 p\xE1\\x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0&gt;Ex\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87 \xA4#\x88'\xA0\xB4&amp;j\xA7100\xC6i.0\xBF\xC0n\x83#\xB3\xD10\xA3(\xC3߫@\xB6+\x83\x90VҌ`\xC1\x95\xA7\xC4&lt; B  r8\x9DQ)T\xA1f\xF1\x81ͅ\x88\xC2h$\x82\xB3
+\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractiondenominatordisplaystylegapmin5000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+wOFFOTTO\xF0
+\xD8CFF |\xE2S\x88G\xFFFFTM`{^\xB1\xBAMATH|lX$OS/2X&lt;`\xD8
+cmap,7B+\xC6head*6h\xCB/hhea4$U\xEBhmtx\xE8\xD0maxpPPname\x94\x95&quot;\xD56postd \xFF\x863x\x9Cc`d``\xE2W\xFBu&gt;\xC6\xF3\xDB|e\xE0f~a\xB8\xA2ꪊLC\x88$\xE2.x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xD5RAj\xDC0}O݄A\x9B@f\xE1A\x9A!)\x84ل\xC0,\xCA\xCC6\x90\xA5\xF1hl\xC72\x92\xE3+d\xD7{\x94.\xBA\xEF\xB2'\xE85z\x88&gt;k\x94 $\xD0 \xFB\xBF\xFF\xF5\xFEӳ$g\xF8\x81 \xC7\xE7\x9B\x843\xAC\xF07\xE1        \x96ٷ\x84s\xDCO\x86\x84\xA7X\xE5ۄO\xF09\xFF\x9E\xF0)V\xD3/df\xD3O̾Ʈg8\xC0%&lt;\xC1&gt;\x9B%\x9C\xE3g\xF6;\xE1)\x93?        \x9F@\xE4\xCF        \x9F\xE2\x90\xFF\xC2-,z T1\xA8\xD1 @\xE0f\x8C H(\mQr\xA6a\xDC0\xBB\x81\xE7\xB0d\x99X7\xC4pk\xFB\xC1\x99\xBA        ⢚\x89\x85TWb[\x86f\xBB7\xDE\xDBʔ\xC1X\xD2\xF6\\xABd\xEFK_\x814\xA3\xC5#+]T\xB4\xE4\xEC\x9
 8yzkY\x88\xBF-\x995\xF3&gt;q/\xE9p\xF9Oqvti\xA8\xFE\xC0Y}\xAA\xC4\xC1ޕ\xD5h\xA1\xD8\xE9\xCE&gt;\x9A\xAE \xD6\xED\x8C\xEF\xDBr\xF0ahu]\xF6\xAC^J) \xF7\xD4\xEAИ\xEA\xA1\xD3\xDE+V\xF0\xBFL\xBE\xCA\xDB:nd\x88\xD1qmoN=\x81k\xBE\xEF\xB5\xE5\xC7\xD5\x96d\xAB\xD8\xF3r\xA5\xB0\xB6]X[Wk\xB1\x98Kq-\xDEr8lW\xCBB\xC9b\xBCs\xF6\x82\xDDQ\xCEQ\xEEhZDI񸕸\xD3\xCES]H\xA9\xE6\xE3_\xD4?\xFDA=tx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xB4M+JL.\xC9\xCC\xCF\xD3MI\xCD\xCB\xCF\xCD\xCCK,\xC9/J\xC9,.\xC8I\xAC,.\xA9\xCCIMO,\x8A\x9A\xE8\x95椖dd&amp;g\xE7\xA5E\x99\xB4\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kc7\xB0\xCA0*\xF0\xCB00\xC80* \xCA0p\xC80z 10\x834\xA81$1\xCCs\xCE/\xA8,\xCAL\xCF(Q\xD0H\xD6T0204S\xF0M,\xC9\xF0\xF5Qp,.\xCEO\xCEL9\x8A\xC7Q\xE41 `d`bdTR\xEE\xDE\xFB\xE3\xD4^ƽ{n\xD9˼W\xEC\x97\xC4O\xBDl{\xFF\xFC\xFDq\xEA\xE7\x96?\xA7\x
 D8\xF9\xF8~Ոt\x8Bv\xF3p\xFB\xB9s\x8Ex\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0&gt;Ex\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\xF1F3\xBF\x80\xD0\xC2\xA8f0A12+3\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81 Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD39\x95&quot;@*`\xD8\\x88(\x8CF\x82` 2\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractiondenominatordisplaystyleshiftdown6000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+wOFFOTTO\xFC CFF \x84\xE6\2\xE2FFTMl{^\xB1\xBAMATH\x88lX'\xF9OS/2X&lt;`\xD8
+cmap47B+\xC6head*6h\xCB/hhea4$U\xEBhmtx\xF4\xD0maxpPPname\x94\x9EO\x91\x92\xE8postl \xFF\x863x\x9Cc`d``\xE2\xDB\\xC6\xF3\xDB|e\xE0f~a\xB8\xA2ꪊLC\x88 \x9F\x9Ex\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xD5R1n\xDB0}\xB2\x9C]\x8A\x81K\x81d\x90A:\x80\x86,F\xC0Ca\xAF\x99\xB2mQD\x83dh\xF1z\x83\x9E s\x8F\xD1-s.\x90!'\xC8\xCD\ ZX\x84\xF4?\xDF|\xE2'\x80\xAFxB\x86\xC3\xF3\xAB\x843,\xF0\x96\xF0e\xF6+\xE1\xB7\x93\x9F        O\xB1\xC8\xFB\x84O\xF0-\xFF\x93\xF0)ӊ\xCCl\xFA\x85\xB3\xB1j\xC4\xF6p        O\xD0e\xF3\x84s\xFCΞ\x9Eb?yM\xF8&quot;J\xF8\xFB\xFCװ\xD8a\xA0\x8A\xC1-\xCEP\xE3\x9Cq        \x85\x92h\x8D\x8A+-㊳+xK\x96\x89yC\xDC\xD7v78\xB3m\x838\xAB\xCF\xC5\\xAAR\xAC\xABЮW\xE2\xCA{[\x9B*Kچ{U\xAC\xFD\xA8+\xD0@3Z\xDC3\xD3GEKNÙ\xA7\xB7\
 x8E\x99\x81(\xF0ۑ\xE9\xE9\xC3P%\x90a\xF1Ȋ\x92&gt;\xC7Q\xB0\xEA!rB\xE4Ը㪎nU\xE2`\xE3\xAAz4R4\xBA\xB7\x{1E6BC2}u\x8D\xF1\xBB\xAE|:\xED[\xB3        \x8D}\xECK)e\xE1:ZS\xDF\xF5\xDA{\xC5 \xFE\xAD\xDBϚ\ƣ+1:6V\xC7v\xCE()p\xC9\xF7\xFF6\xE1\xE0A\xE1\x82lk&gt;\xAE\x96\xB6K\xEB\xB6Z\xCCgR\\x8A\xBFl\xD4E\xA1d1^\xC7\xE3\xBF{7TtT&lt;\xB8QUŶ\x8E7\xDAyn \xA4T\xB3\xF1\xF7\x8F\xFE\x97\xDF*Ix\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`ddtH+JL.\xC9\xCC\xCF\xD3MI\xCD\xCB\xCF\xCD\xCCK,\xC9/J\xC9,.\xC8I\xAC,.\xA9\xCCI-\xCE\xC8L+I\xC9/\xCF3300\xD0-*\xCDI-\xC9\xC8L\xCE\xCEK-.6\x8A002102h\xFF\xE0g\xF8!\xCD\xF8C\x86\xE9\x87,\xF3        \x96\xC6n `\x95a\xD4\xE4\x97a`\x90a\xD4\x94a\xE0\x90a b`iPcHeX\xE2\x9C_PY\x94\x99\x9EQ\xA2\xA0\x91\xAC\xA9`d`h\xA6\xE0\x9BX\x92\xE1\xEB\xA3\xE0X\\x9C\x9F\x9C\x99r\x85\xEE\xA3\xD4{@\xC0\xC8\xC0\xC4Ȩ\xA4ܽ\xF7ǩ\xBD\x8C{\xF7\xFEܲ\x97y\
 xAF\xD8/\x89\x9Fz\xFF$\xD8\xF6\xFE\xF9#\xFA\xE3\xD4\xCF-N\xB1\xF3\xF1\xFD\xAA\xE9\xED\xE6\xE1\xC9+w\xC6x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0&gt;Ex\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc~%\xE26\xF3 \xECf0A12+3\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81 Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3i\x95&quot;@*`\xD8\\x88(\x8CF\x82\{ \xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractiondenominatorgapmin4000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+wOFFOTTO\xC8
+CFF \\xD6/A\xF4m FFTM4{^\xB1\xBAMATHPmX )OS/2X&lt;`\xD8
+cmap 7B+\xC6head)6h\xCB/hhea4$U\xEBhmtx\xC0\xD0maxpPPname\x94xn+9e\x90postD \xFF\x863x\x9Cc`d``b#\xB3H\xF7x~\x9B\xAF \xDC\xCC/\x80&quot; WT]U\x91i(\xE0``Q\xD6\xDCpx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C͒\xB1n\xC20\x86\xFF$\x80ԥ\xEAZ\xA9\x83\x97\xAA0ـ\xD8C\xDD\xCALBb1J\xC2\xC0\xD0g\xE8އ\xE8{t\xEF\xD3t\xEAc\xF6Vj%bE\xF7\xF9|\xF7\xDF\xE5\xD7x\x87\x87\xD3s\x8F\x99c\x9F\x8E}&lt;xώ\xCC\xFD[\xC7+H\xFF\xC3q7\xC1\x9D\xE3d\xF0\xCAH\xAFq\xC5ݣͪ\xD9\xC3\x85cO^\xD3q\x807\xEF\xC5qK?u܄\xF0\xBF\xB7\xB0 BL`\xB0Ǒ*)2Th#F\x87\xB6ǎ\x86\xA49&quot;\x9Ed\xB43\xEE\xC6(\xB9 \xA3\xB4\xF5krL\xCC\xFEX\xE84\xABD;TC1\x8F\xAAl&gt;\xE3\xB24\xB1\x8E*m\xB6f\xAD\x88\xB9\xE7\xBC+$\xB4;zr\xABh\x93\x92\xF6\xCE7`'\xF5
+\xE9?`\xCB\xF8\xBAM\x95+Oۏr1XQ\\x97
+WInv:\x8F*S\xA4ў4\x90R\x86\xC5a\x9BT\x99\x8E7yR\x96\x8A\xFCu?\xAE;\xB5\xA8\xAC\xAD\xEB%v\xE8]j\x8C\xF8\xFE\xF7\xA8NU\xFA\x8CV6\xE7|嘚\xBC\x9A\xB2\xFFD\xF4\xBAR\x8C\xC4o\x87\xCA\xD5\x95 \xEB\xFF\xE0&quot;/}A\x89\x82\xA7\x86\x84\x95Qv\xF8\xA7\xD1`\x91%\x85\x94\xAA[\xD1%~\xC57\xF3\xE5\xB6x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd4L+JL.\xC9\xCC\xCF\xD3MI\xCD\xCB\xCF\xCD\xCCK,\xC9/JO,\xB2L t\x8BJsRK22\x93\xB3\xF3R\x8B\x8B+\x81&quot; \x8CL \x8C \xDA?\xF8~H3\xFE\x90a\xFA!\xCB\xFCC\x82\xA5\x87\x87\xB1Xe\xFE\xF0\xCB00\xC80\xFC\x94a\xE0\x90aTb`iPcchs\xCE/\xA8,\xCAL\xCF(Q\xD0H\xD6T0204S\xF0M,\xC9\xF0\xF5Qp,.\xCEO\xCEL9\x84T\x91\xEC `d`bdTR\xEE\xDE\xFB\xE3\xD4^ƽ{n\xD9˼W\xEC\x97\xC4O\xBDl{\xFF\xFC\xFDq\xEA\xE7\x96?\xA7\xD8\xF9\xF8~Ոt\x8Bv\xF3pa\xF1exx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0&gt;Ex\x9Cc`d``\xE0
 bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\xF1F3\xBF``\xE0_\x80i\x83#\xB3\xD10\xA3(\xC3߫@\xB6+\x83\x90VҌ`\xC1\x95\xA7\xC4&lt; B  r8\x9DQ)T\xA1f\xF1\x81ͅ\x88\xC2h$p\xEB F\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractiondenominatorshiftdown3000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+wOFFOTTO\xD4
+4CFF h\xDA8\xD4T \xAEFFTMD{^\xB1\xBAMATH`lXAOS/2X&lt;`\xD8
+cmap7B+\xC6head)6h\xCB/hhea4$U\xEBhmtx\xCC\xD0maxpPPname\x94\x82\x9B\xD7\xD4 postP \xFF\x863x\x9Cc`d``\xE2+\xE9\xB5\xF1\xFC6_\xB8\x99_E\xAE\xA8\xBA\xAA&quot;\xD3P\xC0\xC1\xC0\xA2\xE7\xCEx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C͒\xCFj\xC20ǿmU\xD8E\xF6#\x97\x81*\x89\x9E&amp;\x82\x87\xA1\xB0\xC1\xF0^jj\x83\xDAH\xAF{\x81\xBDž`\xF7\xBD\xCAaO\xB1_\xD3l\xF7+6l(\xBFO~\xFF\xF3Kt\xF1\x8A\xCDw\x8D\xB9\xE7        \xDE=\x87\xB8        V\x9E#܇\xC2s I\xF8ṍ\xCB\xE8\xD6sI\xF4F\x9EA\xEB\x82vw.\xAA\xE69*\xCF!\x83\xAE\xE7/\xC1\xB3\xE7\xF2\xF0\xC9s,\xBA\xF2\xDCA=`
+\x8D=N\x94Ea\x8D =d\xE8\x93\x82C`D\xB4@J\x96\x82\xE4\x9CvZ\x9A\xBC\x94\xD3+\xE2\x98\xEA\xFD\xA9R\xEB²^\xD6gC.Fl\x91\xDAb1gct\xA6R\xAB4\xB9\xD5\xA7\xFBcIRcG\x9A\xD2e\xD4\xE4c\xA8\x9E&quot;oKv\x8D#Y\xEA\xA7^1Y\xD8R\x94u&gt;6d\x95\xAE+\xE1}\x90WiV\x8CW\xB2\xD4;U\xA6VW\xA6P\xB9]\xE9c\x99p\xCE\xE3강\xB6P٦\x94\xC6\xD2\xE0o:\xF9I37\xEBdE&quot;\xDD5 (+Ø\xFE\xFF^SKPL\xECt\xF1\xF7S\xC0L\x97v\xA6\xAB\xB5d\xC3gc\xF6\x8B1S\x94Hb\xC1\xE3\xFA\x89\x9C\xF7{XR\x96\xBAr\xD3s\x99\x84\xBB\x8EfLX\xCA\xCAPRƹ\xD4G;\xEB\xE3|l\xF3xx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd4I+JL.\xC9\xCC\xCF\xD3MI\xCD\xCB\xCF\xCD\xCCK,\xC9/*\xCE\xC8L+I\xC9/\xCF3600\xD0-*\xCDI-\xC9\xC8L\xCE\xCEK-.6\x8A002102h\xFF\xE0g\xF8!\xCD\xF8C\x86\xE9\x87,\xF3        \x96\xC6n `\x95ad\xE5\x97a`\x90a\xE4\x94a\xE0\x90a4b`iPc\x88d\xE8q\xCE/\xA8,\xCAL\xCF(Q\xD0H\xD6T0204S\xF0M,\xC9
 \xF0\xF5Qp,.\xCEO\xCEL\xB9\x85 7\x91\xE3+ `d`bdTR\xEE\xDE\xFB\xE3\xD4^ƽ{n\xD9˼W\xEC\x97\xC4O\xBDl{\xFF\xFC\xFDq\xEA\xE7\x96?\xA7\xD8\xF9\xF8~Ոt\x8Bv\xF3p\xF3\xFBg\xACx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0&gt;Ex\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vcni\xEE\xA8|\xE6\xD8\xCD`0\x82bd6fe`\xF8{ȶa\xE0`\xD2*@\x9Al#\xA2\xF2T\x80\x98\x87A\x88A\x82A\xA7\xF3 *E\x80*T\xC0,&gt;\xB0\xB9Q\x8D\x8E\x97 Z\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractionnumeratordisplaystylegapmin8000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+wOFFOTTO\xE8
+\xB4CFF p\xE1M\xB9\xB4\xE74FFTMT{^\xB1\xBAMATHpmX/\xC9OS/2X&lt;`\xD8
+cmap 7B+\xC6head*6h\xCB/hhea4$U\xEBhmtx\xE0\xD0maxpPPname\x94\x8A\xCE\xC8p\xC8postX \xFF\x863x\x9Cc`d``\xE2\xDFӵ\xC7\xF3\xDB|e\xE0f~a\xB8\xA2ꪊLC\x886x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xD5R1N\xC30}i
+ bg\xB1\x84\x90`He        P7\x84\xD4\xB5k\x99C0\x89E\x9AD\xB6;\xE4\\x80+\xB0\xB23r\x8E\xC1\x8B\xEB^\x80D\xAC\xD8\xCF\xFF\xBF\xFF\xFF\xB3\xFD\xE2        \xB6\xDF)'\x98\xE1+\xE2T\xF2q\x8A\xFB\x91\x89x\x8CYz\xF1\x8E\xD2׈\xF71\x93\x99\x8C\xB8\xBB QN\xE0a#\xE1!9\x898\xC5{\xF2\xF1~\xF4\xF1D\xBA\xE3\xEFço\xB8E\x8B=\xB3\x94\xA8\x98O\xE0 ιN!\xA1pI\xB4DNO\xC5u\xC1\xDD+GK\x96        vC\xDC\xB7m\xD7[SV^\x9C\xE7b*եX\xE6\xBEZ.čsmaroZҞX+g\xEC..\xE3\xBF\xC1:\xD8=m\x8F\xF49\xEA\xAAi\xE9\x89&lt;皌\x92\xFB\x8E\Øk\xAAFF\xFE&amp;x\x85\x86\x99\x9F\xE9\xD5A\xA3\x8A&lt;ټ\xCAg\xCDf\xADm\xEE[\xFBh\W\xE7\xBD\xF3}\xAD˼[\x9B\xE6ZJ\x99\xD9M\xAD}e\x8A\xE7F;\xA7h\xC1o\xC8\xFB\x81\xAAy\xB8&lt;V\xCB\xCA:&lt;؄\xD9M\xFC\xC95o++\\x90\xADB̮\x850o?om\xA9\xC5t&quot;\xC5L\xFC\xFCA\xAC.2%\xB3\xA1\xC3\xFEa;\xAD\x824劐P\x85\x87\xDB^!V\xDA:\xE6R\xAA\xC9p\xDE\xFFw\xC6o\xB0x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9C
 c`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xB4N+JL.\xC9\xCC\xCF\xD3\xCD+\xCDM-J,\xC9/J\xC9,.\xC8I\xAC,.\xA9\xCCIMO,\xC8\xCD̳000\xD0-*\xCDI-\xC9\xC8L\xCE\xCEK-.6\x8A002102h\xFF\xE0g\xF8!\xCD\xF8C\x86\xE9\x87,\xF3        \x96\xC6n `\x95a\x94\xE2\x97a`\x90a\x94\x94a\xE0\x90atb`iPcH`\x98\xE5\x9C_PY\x94\x99\x9EQ\xA2\xA0\x91\xAC\xA9`d`h\xA6\xE0\x9BX\x92\xE1\xEB\xA3\xE0X\\x9C\x9F\x9C\x99r\xF9N\xA3\xC0S@\xC0\xC8\xC0\xC4Ȩ\xA4ܽ\xF7ǩ\xBD\x8C{\xF7\xFEܲ\x97y\xAF\xD8/\x89\x9Fz\xFF$\xD8\xF6\xFE\xF9#\xFA\xE3\xD4\xCF-N\xB1\xF3\xF1\xFD\xAA\xE9\xED\xE6\xE119q4x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0&gt;Ex\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vcq\xC6\xCA;000\xBF\xC0n\x83#\xB3\xD10\xA3(\xC3߫@\xB6+\x83\x90VҌ`\xC1\x95\xA7\xC4&lt; B  r8\x9DQ)T\xA1f\xF1\x81ͅ\x88\xC2h$:# \xF6\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractionnumeratordisplaystyleshiftup2000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+wOFFOTTO\xEC
+\xC4CFF t\xE2P\x9B \xEB\x84FFTMX{^\xB1\xBAMATHtmXYOS/2X&lt;`\xD8
+cmap$7B+\xC6head*6h\xCB/hhea4$U\xEBhmtx\xE4\xD0maxpPPname\x94\x90\x8E\xBF\xE00post\ \xFF\x863x\x9Cc`d``\xE2?
+\xC6\xF3\xDB|e\xE0f~a\xB8\xA2ꪊLC\x88/jx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9CՒMN\xE30\xC5_\x9A\x824\xC4\xBC\x99]\xA4\xB2\x83Ă\xAE\xA9 \xD4n\xDB(u\x8B\xD0dl\xA7R6\x9C`1'\xC1        \xD8sN\xC1\x8Bk.\xC0H b9\xFE\xF9\xFF\xE5\xE7G\xF8\x87\xFB\xEF'\x91\xCC\xF0y\x84&lt;\xF99\xC5\xED\xE8w\xE41f\xE9e\xE4\xA7#b6\x9E02\xFF\xE0\xEC:d+\x9C`y\x84U\xF2+r\x8A\xC7\xE49\xF2\xBB\xD1K\xE4\x88\xF4!\xF2!v\xE9\xAEРE\xCF*T\xF08A\x89        \xC7
+g\xA4%
+z*\x8E \xCE.\xE0\xD8F\x99`7\xE4-pմ\xBD5\x9Bʋ\x93r&quot;r\xA9\xCEIJ\xF0\xD5r!.\x9CkJSx\xD30l͵
+\xE6\xBE\xE7e\xEC\xDD\xD3f\xB1\xA2\xCFQWMKO\xF2\xFC׌p\xD4`X\xC13\xA3+\xFA\x86\x961\xA3 ~\xFC%\xEEXS\x95*\xC6`m\x8Br\x90m\xBB{m \xDFؕqm]\xF4\xCE\xF7\xB5v\x95Y\xFB\xAEͥ\x94\x99\xEDj\xED+S\xDEm\xB5s\x8A|\x8E\x9B\x87#\xF4a\xB4\xBC@\xAEm\xCAr\xE7\xEC_s\xD8\xFB\xB5N\xADB\xCE\xFBS¼\xD9\xFAyc7Z\xE4S)\xCE\xC5\ \xB3\xD5i\xA6d6&lt;\xB5\xEF\xF9\xAEn\x82:\x8BPQ\x85\xEB\xDB#n\xB4u,.\xA4T\xD3a\xCB\xDFr\x9Bot\xDB\x91x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xB4I+JL.\xC9\xCC\xCF\xD3\xCD+\xCDM-J,\xC9/J\xC9,.\xC8I\xAC,.\xA9\xCCI-\xCE\xC8L+)-0200\xD0-*\xCDI-\xC9\xC8L\xCE\xCEK-.6\x8A002102h\xFF\xE0g\xF8!\xCD\xF8C\x86\xE9\x87,\xF3        \x96\xC6n `\x95a\x94\xE5\x97a`\x90aT\x94a\xE0\x90a\xF4b`iPcHd\x98\xE3\x9C_PY\x94\x99\x9EQ\xA2\xA0\x91\xAC\xA9`d`h\xA6\xE0\x9BX\x92\xE1\xEB\xA3\xE0X\\x9C\x9F\x9C\x99rn\xA3\xC4[@\xC0\xC8\xC0\xC4Ȩ\xA4ܽ\xF7ǩ\xBD\x8C
 {\xF7\xFEܲ\x97y\xAF\xD8/\x89\x9Fz\xFF$\xD8\xF6\xFE\xF9#\xFA\xE3\xD4\xCF-N\xB1\xF3\xF1\xFD\xAA\xE9\xED\xE6\xE1\xD9\xFFr\xC4x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0&gt;Ex\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vcv)\xF6 \x98b\xCC/\xB0\x9B\xC1`\xC5\xC8l4\xCC(\xCA\xC0\xF0\xF7*\x90m\xC3\xC0\xC1 \xA4U\x804#\xD8F0D\xE5\xA91\x83\x83\x83N\xD7CT\x8AU\xA8\x80Y|`s!\xA20        \xA1\xF3 n\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractionnumeratorgapmin9000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+wOFFOTTO\xC0         \xDCCFF X\xD5)\xBF\xCE\xC4FFTM0{^\xB1\xBAMATHLlX3\xB1OS/2X&lt;`\xD8
+cmap7B+\xC6head*6h\xCB/hhea4$U\xEBhmtx\xB8\xD0maxpPPname\x94sP\xEC7\xCDpost@ \xFF\x863x\x9Cc`d``\xE2--\xDB\xF8\xE3\xF9m\xBE2p3\xBF\x8A0\QuUE\xA6\xA1\x80\x83\x81        D\x91ex\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xCDQ\xBBn\xC20=yP\x89\xA5\xEA\xD2\xDD  \x89l\x90\x90`CH \xC62\xB1D\x91!$\xA1\xB63\xF0#\xFD\x8C.\xFD\x91~C\xA4\xBD1fo\xA5V–\xE5\xE3\xEBs\xEF9\xBEp\x8F7\xB8\x8CVH\xF1\xE1q\x88^\xB0\xF48\xC22\xECz#+\xDF=\xEE\xE0!\x8A=\xBECbq\x97NO.\xAB\xC5\xB6\xD0\x87\xFF\xF28\xC2k\xF0\xE2q\x8Cm\xF8\xECq,\xFC\xF4\xF8\xDB\xE8s\xD48\xE1LU\xF6(`\xC1\xD0G\x8E\xEDCp\x8C        \xAD\x91\xD1MA\xFB\x8AN3\x9A5\xB1\x94\x8B+\xC20\xAFOg\xAD\xF6\x85e\xFD|\xC0\x86\\x8C\xD9:\xB3\xC5z\xC5f\xC6Թʬ\xAA\x89\xB6#\xAD\x8Cr\xAFy        \xAD%\xA4\x8B[\x8Air\x92\x9
 1\xAB\x92&amp;䢝        \xC5\x89\xD7:QT\xE1@\xB7\xD2y\x9E\x83\x9D\xCE\xF2V&amp;\xA9\x9AR\xEA\xCC\xD6z\x9F\x9DJUM8\xE7\x89n\x8E\xD2*?T\xD2A\xFC\xA5\xF4\xEE\xD1\xD6\x{DB5A}t\x8DN\xA9Ô\xD6\xB6\xE7\xA2 0&quot;\xB6p9\xD7/Ƣ\xAE삼K6L9\x9B\xB2\xDF5\x92\xC4(&lt;i\xFDƾx\xE3d\x8D\xB7\xC2\\xE1~i        6R\xAA\xC78i\xFB\x96\xDB\xF2\xFF+\x9B~\xDEox\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xD4O+JL.\xC9\xCC\xCF\xD3\xCD+\xCDM-J,\xC9/JO,\xC8\xCD̳400\xD0-*\xCDI-\xC9\xC8L\xCE\xCEK-.6\x8A002102h\xFF\xE0g\xF8!\xCD\xF8C\x86\xE9\x87,\xF3        \x96\xC6n `\x95a\xF8\xC6/\xC3\xC0  \xC3\xF0SP\x86\x81C\x86QQ\x88\x81\xA4A\x8D!\x84\xA1\xC99\xBF\xA0\xB2(3=\xA3DA#YS\xC1\xC8\xC0\xD0L\xC17\xB1$\xC3\xD7G\xC1\xB1\xB88?93\xE4 ҜC\xA2぀\x91\x81\x89\x91QI\xB9{\xEF\x8FS{\xF7\xEE\xFD\xB9e/\xF3^\xB1_?\xF5\xFEI\xB0\xED\xFD\xF3G\xF4ǩ\x9F[\xFE\x9Cb\xE7\xE3\xFBU#\xD2-\xDA\xCD\xC3\xE
 Dnc$x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0&gt;Ex\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vcae\xCA\x9A\xF9v3\x8C\xA0\x99\x8D\x86E\xFE^\xB2m8Ā\xB4
+\x90f\x9B\xC0\x86\xA8&lt; \xE6ab\x90`\x90\xC3\xE9,\x88J\xA0
+0\x8Bl.DF#A,? \xE2\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractionnumeratorshiftup11000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+wOFFOTTO\xC8
+CFF \\xD6/_[\xD7FFTM4{^\xB1\xBAMATHPmX;\x81OS/2X&lt;`\xD8
+cmap 7B+\xC6head*6h\xCB/hhea4$U\xEBhmtx\xC0\xD0maxpPPname\x94wnր&gt;9postD \xFF\x863x\x9Cc`d``\xE2\x85M\x93\xAF\xC7\xF3\xDB|e\xE0f~a\xB8\xA2ꪊLC\x88a\xF5x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C͒\xBDn\xC20\x85O@\xEARu\xAD\xD4\xC1KU\x82l\x90\xD8C\xDD\xCAL9\x89\xC4\xC8v\x86&gt;C\xF7&gt;Dߣ{\x9F\xA6So\x8C\xD9[\xA9\x95\x88e\xF9\xF3\xF5\xB9?\xBE\x80k\xBC#\xC2\xE9\xBB\xC72p\x8E\xCF\xC01\xA2\xE7\xC0        V\xF1m\xE0x\xFC\xB8\x8B\x9B\xE4.p&lt;y%eԹ\xA2ݣ\xF7j9\xC2&amp;p\x8C\xA7\xA88\xC1[\xF4\xB8\x83M\\xEE\x82\xC5_\x81{\xD8$)\xE6\xD08\xE0HQJTp`\xE8#ǀ\xD6U,0!Z!\xA3\x93\x8A\xD6%\xEDf\xB044\xA9\x94\xB7+\xE2\x98\xEB\xC3Ѩ\xB2r\xAC\x9F؈\x8B        [e\xAEZ-\xD9\xCCZ\x9D\xAB\xCC)M\xB2\x82re\xE4{\xF6Ki6\xD8Cz\xBB#\x9B\xA1\xE8\x9D\xB4k\xA
 8:A\x83\xFB\x91\xD2Y\x83i\x9DW\xE4ؒ\xB7\xF4\xF5\x9C5(L\x96\xB7\xA9Һ\xD9K\x939ml\xA5
+\xD7\x84\xE0\x9C\xA7\xA6\xD9IW\xA9|[Kk[ \xFE\xBA\x80\xE7]\xF88\xBFj\xBF\xF4MR \x86)\xCD\xFFn\xD5)\x8B\xC0\x98\xD4\xC2\xFB\x9C\x9F ]\xBB\x856\xA5d\xA3!gS\xF6ۦ\x92\x8B\xA7\x82\xA7\xEDp\x91\x8F\xBE\xF6\xC9m(\x88\xF90\xC27\xFF\xD4\xAC\xA5\xB1\x91q.\x86\xED\x8D.\xF1\xDF!&gt;\xE5*x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd4L+JL.\xC9\xCC\xCF\xD3\xCD+\xCDM-J,\xC9/*\xCE\xC8L+)-04400\xD0-*\xCDI-\xC9\xC8L\xCE\xCEK-.\x89002102h\xFF\xE0g\xF8!\xCD\xF8C\x86\xE9\x87,\xF3        \x96\xC6n `\x95a\xF8\xC3/\xC3\xC0  \xC3\xF0_P\x86\x81C\x86Q]\x88\x81\xA4A\x8D!\x8C\xA1\xCD9\xBF\xA0\xB2(3=\xA3DA#YS\xC1\xC8\xC0\xD0L\xC17\xB1$\xC3\xD7G\xC1\xB1\xB88?93\xE4RD\xB2\x80\x80\x91\x81\x89\x91QI\xB9{\xEF\x8FS{\xF7\xEE\xFD\xB9e/\xF3^\xB1_?\xF5\xFEI\xB0\xED\xFD\xF3G\xF4ǩ\x9F[\xFE\x9Cb\xE7\xE3\xFBU#\xD2-\xDA\xCD\xC3MaeNx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xAA\xAB*\x
 8C0&gt;Ex\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\xA6\xB0\xD6\xECʙ_`7\x83\xC1\x8A\x91\xD9h\x98Q\x94\x81\xE1\xEFU ۆ\x81\x83A H\xABiF\xB0        \x8C`\x88\xCASb!        9\x9C\xAE\x87\xA8\xAAP\xB3\xF8\xC0\xE6BDa4\xE3\xD9 \xB9\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathfractionrulethickness10000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-rulethickness10000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-rulethickness10000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-rulethickness10000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+wOFFOTTO\x88 \x84CFF 4\xC1\xF0\x{1E5EED}FFTM\xF8{^\xB1\xBAMATHiX3\xB1OS/2X&lt;`\xD8
+cmap\xE47B+\xC6head*6h\xCB/hhea4$U\xEBhmtx\x80\xD0maxpPPname\x94N3B\x9D\xA7
+post \xFF\x863x\x9Cc`d``\xE2\xDCҧ\xE3\xF9m\xBE2p3\xBF\x8A0\QuUE\xA6\xA1\x80\x83\x81        D\xED%\xF1x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xB5\x90\xBDj\xC30\x85\x8F\x9C\xE8RJ\xD7,wh!\xA4L\xC9J\xB2f7F\x89EB\x94\xCAʐW\xCA\xD0\xC7\xE8\x83t\xEE3\xB4\xBD\x96\xD5N\xA5\x94B,\x8C&gt;I\xE7\xDC?\xD7x\x86@\xF3\xDDcY\xA0\x87s\xE4\xB7x\x8B\xDCƒx\x8A\xDCFO\xBCF\xEE\xE0&amp;\xA1\xC8]\xF4\xC3JѾ\xE2\xD3cp\xD5,\x90\xC1ENp\x87\x97\xC8-\xF0\xB9\x8DL\x9C#w@\xE2=rY\xA20\x83e퉣lPƒ\xD0G\x81\xEF#H(\xCE@X&quot;痒\xF7\x9F\xA6\xA8xYV\x99po\x98\xF7\xC0\xCCN\xCElJO\xFDb@#\xA92Z\xE6\xBE\.hZU\xB60\xB97\x96ekΕ\xB3\xF7˗\xF2\xF9\x88t\xC8`\xF8e˷:\xE4P\A\xB3\xB0vyQH\xDDq\xA7}i\x8A\xED^W\x95\x92\xFC\xE1o~2\xCEC        &gt;\xEC\x8E\xA0C\xDBC\x96&amp;\xFC\xFF\xAF\xD8ƫ0f}}\x9B~\x8Fs\xBB\xF7s\xEB6\x9AFCI\xFA\xA5-~U\xE3Tɴ\xE5e
 \xE6\xB6b\xBDc}\x91\x82C\x85\xF6\x9B6\xB0Үb3I\xA9\x86uI)\xE3\x98x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94I+JL.\xC9\xCC\xCF\xD3-*\xCDI-\xC9\xC8L\xCE\xCEK-.64F&amp;F\xED\xFC ?\xA4\xC80\xFD\x90e\xFE!\xC1\xD2\xC3\xC3\xD8+\xAC2 {\xF9ed\xCA0p\xC80\xBCb`iPcpd\x88q\xCE/\xA8,\xCAL\xCF(Q\xD0H\xD6T0204S\xF0M,\xC9\xF0\xF5Qp,.\xCEO\xCELى\xC7n|\xCEF&amp;FF%\xE5\xEE\xBD?N\xEDeܻ\xF7疽\xCC{\xC5~I\xFC\xD4\xFB'\xC1\xB6\xF7\xCF\xD1\xA7~n\xF9s\x8A\x9D\x8F\xEFW\x8DH\xB7h7\xDC\xFBM\xCFx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0&gt;Ex\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\xF1F\xAB `7\x83\xC1\x8A\x91\xD9h\x98Q\x94\x81\xE1\xEFU ۆ\x81\x83A H\xABiF\xB0        \x8C`\x88\xCASb!        9\x9C΁\xA8\xAAP\xB3\xF8\xC0\xE6BDa4m\x96
+\xE3\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathlargeopdisplayoperatorminheight5000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/largeop-displayoperatorminheight5000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/largeop-displayoperatorminheight5000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/largeop-displayoperatorminheight5000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+wOFFOTTO         \x9CCFF \
+`\xF2Ű1FFTMh{k\xE9|MATH\x84h-;yOS/2\@`:\xE9cmap@JU\xF0\xD8\xF9head.6 ^yhhea8$=\xEBhmtx \xD0maxpTPname\x9Cf\xBD\xF9DjpostD \xFF\x863x\x9Cc`d``b\xA6N\xB3\xC0x~\x9B\xAF \xDC\xCC/\x80&quot; W\xB4\xB2!\xD3\xCC/\x84;\x80\x88        x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4 Ƞ\x81AA\xEB?\xF3  +I+(!#\x92lIx\x9C\xBD\x92\xB1j\xC30\x869I\xA1K\xE9\xDERH9\x90\xB2\x85@0%Y\xB3\x9B\xC4Ă\xC42\xB6\xAF}\x81\xBEB\x9F\xA0OЗ\xE9ڇ(\xFD%+K)%\xD6}:ݝNwp\x83W\xB4\xDF֞\xFAx\xF3\xE0^\xDCy\xEE`!\xCE\xFA.\xFAA칇\xDB\xE0\xD9\xF3\xF5\xB4\xDDk\xAE\x9D\x97e\x81\xA5\xE73\xBC{\xEE\xE0I\xCC&lt;w\x8BO\xCF=\xC8\xE0\xE4\xF9
+q\xF0\x82%
+4\x8C\xA2q@\x86\xEC0\xA4C!”\xB4A\x8Cr\xCD\xD5\x87\xA1\x95vzM΁\xA5)\x9AR\xB2ZvC9V\xD1Tn\x92:۬墪\xCCN'\xB564;ҧ\xE4Y\xA9;9Ğ\xFE\xC9\xEA\xA7K\xB9o\xE3\xCAws\x9E\x9C~\xE77aVv\xE0\x98\x94\x87\xD4\xE1^W\xC51iL\x91\x96ImʓγԦ1Q\x8AV\xFFsؕ\xBBs\xEDd{[\xAF%\xE6\xFC\xFF\xEB\x96m\xB4\x88\xBD+9+\xCE\xE7\xAE`e\xF2zeX9)9\x97\xBF\xA9͢Y\xA9ж\xE7\xE2\xBDغp\x950ҹF\xAEh\xEDU\xB1Mˊ\x8FD*\x8Dl\xB6\x97\xCE\xF0 ,{\xC1x\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\xB4\xFE\xFF\xFF\xE4\x83\xE9\xFF\xAF2C\xD5#\x82\x83\x92\xEA\xA6
+x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`ddT\xCDI,JO\xCD/\xD0M\xC9,.\xC8I\xAC\xCC/H-J,\xC9/\xCA\xCD\xCC\xCBH\xCDL\xCF(1500``db`d\xD0\xFB\xC1\xCF\xF0C\x96\xF1\x87\xD3y\xE6,=&lt;\x8C\xDDݿjd\x84;Xe\xBE\xF2\xCB00\xC80\xFC\x94a\x93a\xF4b`\xE9\xE1`g\xB0aH`h)\xCD\xCB4rts\x83RzPۜ\xF3 *\x8B@\xB6(h$k*\x9A)\xF8&amp;\x96d\xF8\xFA(8\xE7'g&amp;\x96d\xE6\xE7\xE3B\xA2|\x8C\x8C\xED\x8C ,\x8C\x8CJʦ\xEE\xDD{\x9C\xDA˸w\xEF\xCF-{\x99\xF7\x8A\xFD\x92\xF8\xA9\xF7O\x82m\xEF\x9F?\xA2?N\xFD\xDC\xF2\xE7;\xD0{\x8C@\xCC\xDC\xCD\xF2\xAB\xE6WͿ6\xBEep\xA0\xC7A&quot;\xBFjD\xBAE\xBBy\xB8~\xD5ϯn \xC5 \x87R{?x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6C6+6\xACKx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3zG\xB8\x83\x81pJk\xA1vc\xEA\x8C j\xC14\x8C\x8Dd\x8A\xB8v\xCC(\xCA\xC0\xF0\xF7*\x90m\xC3\xC0\xC1 \xA4U\x804#\xD8F0D\xE5\xA91\x83\x83\x83NWAT\x8A0\xE80\x9800Y@\xD5*pq\xA0\xF3Kf\xE1N\xB8#X\x84+Z\xE4\xE2\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathlimitslowerlimitbaselinedropmin3000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-lowerlimitbaselinedropmin3000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-lowerlimitbaselinedropmin3000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-lowerlimitbaselinedropmin3000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,21 @@
</span><ins>+wOFFOTTO\xE8         hCFF \\xF3;?\xA2\xDCFFTMP{lNMATHlnX\x8BOS/2X@`1\xFBcmapCJD\xE1\xE7head,6 ^;\xABhhea4$=\xEBhmtx\xDC
+
+\xD0maxpPPname\x98g\xC0%\xA3\x95xpostD \xFF\x863x\x9Cc`d``\xE2\xF1ϓ\xE3\xF9m\xBE2p3\xBF\x8A0\\xD1\xFE\x9D\x8FL3\xBF\x8Bs00\x81xev \xEBx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4 Ƞ\x81AAI\x90\xF9\x90\x95\x83\xA4\x80\x90v\x86Sx\x9C\xBD\x92\xCDj1\xC7\xFFY?\xA0\x97\xD2r\xB0\xA0\x87\x95DAĞDi\xF5\xEA}\xD5\xC5+\xECn\x96M@\xBC\xF6\xFA
+\xBD\xF7        
+}\x96&gt;@ߡ\x93\xDA[)\xB4\xB8a\x99\xDFLf&amp;\x93\x99\xB8\xC6 \xCE\xDF-V\x81\xBAx+\xA1\xC3:\x81\x98\xB1\xB7\xC0Mt\xA3\x87\xC0-\xDCDO\x81\xDBd\xFF Oּ&quot;\xED\xDEG9fX\xA2a\x8A\xF7\xC0+&lt;\xB2\xBB\xC0M,#\xB8U\x81\xDBd\xC6N\x94E\xE1\x80 =\xEC\xD0'9\x84\x80Ęh\x8D\x84v2\x92+\xD2f0\xB44y)oW\xC4%0\xD7թV\x87\xCC\xF2ޮχB\x8E\xF9:\xB1\xD9z\xC5g\xC6\xE8\x9DJ\xAC\xD2䖓A\xBF\xA51iG\xA4t\xFE\xB7}KY+ٜ\xA5$\xB9\xA7]We\xE1\xF5U\xE5rU(k\xE2\\xD3\xDA\xF361i\xAE\xCAt_\xEB\xAAP\xE5H\xE7\xF5\x87~μ\xF0׶^\xD6ԼԷl@\x91\x9CF\xC1\xFF\xED\xA2\xE7l\xCA&quot;I\x8F\xBF\x83\x85.\xEDBׇ\x94\x82O\xF9oZBnrK\xBB        ]|\x9F܄7\xC3}\xA8\xF4M;_\x9B\xB46\xF4N\xB8rઽt\x85\x9FC$\xC1Kx\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\x94\xFF\xFF\xF2\xC1\xF4\xFF\x87w?B\xD5#\x82\x83\x92 \xC0D-\x83\xEEp        x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`ddT\xCD\xC9\xCC\xCD,)\xD6\xCD\xC9/O-\xB3\x93\x8BSs2\xF3RS\x8A\xF2 r3\xF3\x8C+ \x99t\xF03
 \xFC\x90a\xFC!\xCB\xF4C\x8E\xF9\x87Kcw\xF7\xAF\x9A_5\xAC2 O\xF9ed^        \xCA0\x88\xC90\xAA
+1\xB0\x80\xB4p1\xE833\x94\x97\xE6\xE6&amp;\x96d\xE6\xE79\xE7Te\xA6g\x94(h$k*\x9A)\xF8&amp;\x96d\xF8\xFA(8\xE7'g\x82\xE3&quot;\xA2\+\x8C\x8C\xED ̌\x8CJʦ\xDD{\x9C\xDA˸w\xEF\xCF-{\x99\xF7\x8A\xFD\x92\xF8\xA9\xF7O\x82m\xEF\x9F?\xA2?N\xFD\xDC\xF2\xE7;\xD0/\x8C@\xCC\xDC\xCD\xF2Կ6\xBE_5&quot;ݢ\xDD&lt;\\xBFj\x80\x88\x87\xE7W+7\x90\xE2O\xCBo\x84x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6o8+;\xFEQx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA2
+s\xEF\xC0\xA2vcfAԂi]\x9Dm\x84\x8AE\xFE^\xB2m8Ā\xB4
+\x90f\xABdCT\x9E
+\xF301H0\xC8\xE1tD\xA5P\x85
+\x98\xC56&quot;
+\xA3\x91 W\xCB \xA1\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathlimitslowerlimitgapmin11000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-lowerlimitgapmin11000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-lowerlimitgapmin11000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-lowerlimitgapmin11000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+wOFFOTTO\xCC \xD8CFF H\xEA#B\xC1w8FFTM4{lNMATHPnX7\xCBOS/2X@`1\xFBcmap\xECCJD\xE1\xE7head,6 ^;\xABhhea4$=\xEBhmtx\xC0
+
+\xD0maxpPPname\x98SH\xA3S\xADpost0 \xFF\x863x\x9Cc`d``\xE2\xC71\xED\x99\xF1\xFC6_\xB8\x99_E\xAEh\xFF\xCEG\xA6\x99_\x80\xC59\x98@&lt;Q\xAB yx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4 Ƞ\x81AAI\x90\xF9\x90\x95\x83\xA4\x80\x90v\x86Sx\x9C\xB5\x91\xBDj\xC30\xC7\xFFr\x9C@)\x94,\xDD&lt;h)$\xC9Cp\xB3\x85@\x86\x92\xACٍ1\xB6\xC0\xB1\x8C,J_\xA8t\xEF#\xF4yJ\xF7\x9E\x91.\xA5\xD0B$\xC4\xFDN\xF7\xA1\xD3\x80\xBC\x82\xE1\xB4\xEE\xB0\xF1\xCC\xE1\xC5s\x80[|z\xE0\x81={\xB1\xCFC\x8C\x83\xC4\xF3Q\xF0D\x9E,\xBC&quot;\xED\xD1E\xF5̐\xC2xp\x8Fw\xCFv\xED9D\xCA\xDE&lt;\xC1\x83\xB1\xE7\xD2`\x854Z)\x8BB\x89
+䘒L  1'\xDA&quot;#KErC\xDAmM^\xCA\xDD+\xE2X\xE9\xF6hTYY&gt;ɧ&lt;rη\x99\xAD\xB6\xBE\xEC:\x9D\xAB\xCC*Mn5\xF9\xEF\xE9X\xCA\x93\xA6q@A\xEFߗ\x94\xB5u\xDC\xD0\xFB\x92\xAA\xE87j\xB5W\xB6\x8Bk}(\x8C\xE32k\xF7\xAA\x91R\x88\xDE\xFA\x87D?gX\xBBoX'+\xC5\xAE3\x8A\xE0X\xD0\xF9o\xE1\xA7hI\xA3\x8A\xDD]|n,ֺ\xB1kmʂ'3\xC1\xFC\xB7/\x92Y\xA6\xB1q\xDFً\xB5q\xE7\x92t~\xA6܅Hׄ\xD3W\xB0+LGs\xE4B\xC8Y_ե*\xF9e$\x9D6x\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\x94\xFF\xFF\xF2\xC1\xF4\xFF\x87w?B\xD5#\x82\x83\x92 \xC0D-\x83\xEEp        x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94\xCD\xC9\xCC\xCD,)\xD6\xCD\xC9/O-\xB3\xD3 r3\xF3 ++ \x99t\xF03\xFC\x90a\xFC!\xCB\xF4C\x8E\xF9\x87Kcw\xF7\xAF\x9A_5\xAC2 g\xF9ed.        \xCA0\x88\xC90\xF2
+1\xB0\x80\xB4p1\xE83x3\xA4\x97\xE6\xE6&amp;\x96d\xE6\xE79\xE7Te\xA6g\x94(h$k*\x9A)\xF8&amp;\x96d\xF8\xFA(8\xE7'g\x82\xE1s        ^W#c;3#\xA3\x92\xB2i\xF7\xDE\xA7\xF62\xEE\xDD\xFBs\xCB^\xE6\xBDb\xBF$~\xEA\xFD\x93`\xDB\xFB\xE7\x8F\xE8\x8FS?\xB7\xFC9\xC5\xCE\xC7t;#3w\xB3\x80&lt;񯆍\xEFW\x8DH\xB7h7ׯ \xE2\xE1\xF9U\xC3+\xA4x&quot;dix\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6o8+;\xFEQx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk&quot;\x84\xB4~\xE0P;\x8D\x81\x811\x8E3\x8D j\xC14\x8C\x8D.\x8F\xCE6BŌ\xA2 \xAF\xD96  b@ZH3\x82U2\x82!*O\x88y\x84$\xE4p\xBA
+\xA2R\xA8B\xCC\xE2\x9B \x85\xD1H\xBB\xD1 \xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathlimitsupperlimitbaselinerisemin5000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-upperlimitbaselinerisemin5000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-upperlimitbaselinerisemin5000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-upperlimitbaselinerisemin5000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+wOFFOTTO\xE8         hCFF \\xF3;3%\xC3\xC3FFTMP{lNMATHlnX [OS/2X@`1\xFBcmapCJD\xE1\xE7head,6 ^;\xABhhea4$=\xEBhmtx\xDC
+
+\xD0maxpPPname\x98e\xC0`\x8D\x80\x86postD \xFF\x863x\x9Cc`d``b\x9F\xFD\xFBo\xC6\xF3\xDB|e\xE0f~a\xB8\xA2\xFD;\x99f~\xE7``\xF1d` \xEDx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4 Ƞ\x81AAI\x90\xF9\x90\x95\x83\xA4\x80\x90v\x86Sx\x9C\xBD\x92\xCFj1ƿ\xAC\xA0\x97\xD2r\xB0\xA0\x87\x95DPĞDi\xF5\xEA}\x95\xE0\xDC͒ă\xD7&gt;B_\xA1\xF7&gt;A\xA1\xCF\xD2\xE8;t6\x86\xF6\xD8B\x8B\x96\xFCf2\xF3%\x99        \x80k\xBC\x80\xE1\xFC\xDDb\x99\xA1\x8B\xD7\xC8        :\xAC\xB9\x81{\x8B\xDCD7y\x88\xDC\xC2M\xF2\xB9M\xFE\x8Ad\xCD+\xB2\xEECV\xCD K\xD8\xC8        \xA6x\x8F\xDC\xC0#\xBB\x8B\xDC\xC42a\x91[\xE0I\xB9M\xFEg\xCCaP\xE1D*{\xE4\xF0\xE0\xE8a\x87&gt;\xCDCH\x8C\x89\xD6\xC8h%\xA7yE\xD6 \x8E\x86\xA1(\xFC\x9A\xB8\xE6\xA6:Y\xBD\xCF=\xEF\xED\xFA|(䘯3\x9F\xAFW|\xE6\x9C\xD9\xE9\xCCkCa\x8A/\xE8\xF7\xA4\x91\xE2H\xBBWP\xB4\xFF\xB7K\xAA\x8E|\xB5\xA
 7 k:\xD8E\xB0Gt\xAAz\xE0\xA0 \xED]z\xAC*eo3\xA7\xBATV;U\xE8r$E\xFDa\x83\x94\xE1\xDA&gt;̖\x8A\xA7B\xC9\x94ɩ\xFC\xDF.zV\x93\x98\x90\x8A$;\xFDj \xA6\xF4 c\xF7\x8A\x82O\xF9oJBar\x92J\x91\xD6\xBAx;6A\xC0\xC57\xC3C\xAA E;_e\xBD.\x84ԧ\xBD\xF4        ?o\x8E\xC1ix\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\x94\xFF\xFF\xF2\xC1\xF4\xFF\x87w?B\xD5#\x82\x83\x92 \xC0D-\x83\xEEp        x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`ddT\xCD\xC9\xCC\xCD,)\xD6--(H-\xB3\x93\x8BSs2\xF3R\x8B2\x8BSs3\xF3L+ \x99t\xF03\xFC\x90a\xFC!\xCB\xF4C\x8E\xF9\x87Kcw\xF7\xAF\x9A_5\xAC2 O\xF9ed^        \xCA0\x88\xC90\xAA
+1\xB0\x80\xB4p1\xE833\x94\x97\xE6\xE6&amp;\x96d\xE6\xE79\xE7Te\xA6g\x94(h$k*\x9A)\xF8&amp;\x96d\xF8\xFA(8\xE7'g\x82\xE3&quot;\xA2\+\x8C\x8C\xED ̌\x8CJʦ\xDD{\x9C\xDA˸w\xEF\xCF-{\x99\xF7\x8A\xFD\x92\xF8\xA9\xF7O\x82m\xEF\x9F?\xA2?N\xFD\xDC\xF2\xE7;\xD0/\x8C@\xCC\xDC\xCD\xF2Կ6\xBE_5&quot;ݢ\xDD&lt;\\xBFj\x80\x88\x87\xE7W+7\x90\xE2V\xD9o\x8Dx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6o8+;\xFEQx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJkB(\xE1&lt;j\xA7100\xC6a\xA6D-\x98\x86\xB1\xD1\xE5\xD1\xD9F\xA8\x98Q\x94\x81\xE1\xEFU ۆ\x81\x83A H\xABiF\xB0JF0D\xE5\xA91\x83\x83\x83NWAT\x8AU\xA8\x80Y|`s!\xA20        4\x83 y\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathlimitsupperlimitgapmin7000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-upperlimitgapmin7000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-upperlimitgapmin7000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-upperlimitgapmin7000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+wOFFOTTO\xC8 \xC8CFF D\xE9 \xE5\xE1fFFTM0{lNMATHLnX(+OS/2X@`1\xFBcmap\xE8CJD\xE1\xE7head,6 ^;\xABhhea4$=\xEBhmtx\xBC
+
+\xD0maxpPPname\x98P9\xBB\xDEpost, \xFF\x863x\x9Cc`d``\xE2?e\x81\xF1\xFC6_\xB8\x99_E\xAEh\xFF\xCEG\xA6\x99_\x80\xC59\x98@&lt;F 5x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4 Ƞ\x81AAI\x90\xF9\x90\x95\x83\xA4\x80\x90v\x86Sx\x9C\xB5\x91\xBDj\xC30\x85\x8F\xA7Хt\xE8\x96EKK28\xC8\x9C\x90-2\x94d\xCDn\x82\xB1\x89%l\x85\x92W\xEAP\xFA}\x96\x8E}\x84+\xA2]J)\x85H\x88\xFBI\xBA\xE7\xFEHn\xF0\x81\xF3\xB8\xC7:\xB0\xC0ρ#\xDC\xE1#p3\xF18\xC6@\xBC\xEE\xE36z|\x85Ad\xE8)\xE2k\xEE\xBD\xAAc\x81 M\xE0C\xBC\xEE\xC1\x8A~\xE0\x99x+܇\x8C\xE2\xC0WȢ)\x960\xB081\x8AF\x89
+\x92qv\xD1N\xA0\x902\x83\xC49o*\xDA5w \xB4\x9C\x86^ڟkr+,\x8D=5\xBA\xAC\x9C\xEEFr\xA2\xD2LnrWm\xD6rѶf\xA7s\xA7+\xDD\xF6\xF4?p9\xC6Hpdv\x8B\x82\xF9\xBF\xCFKF\xB5\x9EkLYC7\xB1\xD7\xED\xDA\xE4hm\xD1x.s{\xD0\xF5T)^\xFE9\xCA\xCF\xF2\x95o\xC0y\xDBPX\xF8\xE6\xC7H̹\xFEW\xF2Y\x9BbFM\xCA}\xF2\xF5\xA0X\x99ڭLSr2Vr.i\x8E\xB7\xE9,IU\xD2=\xE8e^o\xEB#\xB4\xE1\xA5W\xA4\xBE\xFDs\xD8M˿\x93J\xA5㮤\x8B\x94\xF1        S\x9B9x\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\x94\xFF\xFF\xF2\xC1\xF4\xFF\x87w?B\xD5#\x82\x83\x92 \xC0D-\x83\xEEp        x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94\xC9\xC9\xCC\xCD,)\xD6--(H-\xB3\xD3 r3\xF3\xCC+ \x99t\xF03\xFC\x90a\xFC!\xCB\xF4C\x8E\xF9\x87Kcw\xF7\xAF\x9A_5\xAC2 \xA7\xF8ed\xCE \xCA0\x88\xC90r        1\xB0\x80\xB4p1\xE83x1\xA4\x97\xE6\xE6&amp;\x96d\xE6\xE79\xE7Te\xA6g\x94(h$k*\x9A)\xF8&amp;\x96d\xF8\xFA(8\xE7'g\x82\xE1q&gt;7#c;3#\xA3\x92\xB2i\xF7\xDE\xA7\xF62\xEE\xDD\xFBs\xCB^\xE6\xBDb\xBF$~\
 xEA\xFD\x93`\xDB\xFB\xE7\x8F\xE8\x8FS?\xB7\xFC9\xC5\xCE\xC7t9#3w\xB3\x80\xBC𯆍\xEFW\x8DH\xB7h7ׯ \xE2\xE1\xF9U\xC3+\xA4xLUc\xE4x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6o8+;\xFEQx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk20HGP;\x8D\x81\x811\x8E3\x8D j\xC14\x8C\x8D.\x8F\xCE6BŌ\xA2 \xAF\xD96  b@ZH3\x82U2\x82!*O\x88y\x84$\xE4p\xBA
+\xA2R\xA8B\xCC\xE2\x9B \x85\xD1H \xEF Q\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathlineheight5000typolineheight2300woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/lineheight5000-typolineheight2300.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/lineheight5000-typolineheight2300.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/lineheight5000-typolineheight2300.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+wOFFOTTOT
+CFF L\xDF(\x88\xC9 7FFTM,{i\x94VOS/2HD`!\xD5'cmap\xECEJ\x93\xA9head\xF406 \\xB0#hhea$$+\xAD\xFA'hmtxH
+
+\xD0maxp@Pname\x8C]\xE4샫\xE1post4 \xFF\x863x\x9Cc`d``b\xCB\xFE\xBA5\xF1\xFC6_\xB8\x99_E\xAEhm+F\xD0\xFF-\x98_0+\xB9 L QD 'x\x9Cc`d`\xE0&lt;\xF2͆\x81\x81\xF9\x98dd@Le@\xDAPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\xA9\x8BiC\x84f|\xC0`\xC8\xC8e`\xE5d\x80Ft\xD0\xC0\xA0\xC0\xE0Ϭ\xF0߂U\x84\xF3\xE7\x84fd:\xFD
+-x\x9CŒ1N\xC30\x85_\xD2\x89X\xD9\xCC@\xD5
+\xA5\xB2S\xB5\x95\xBA\x95JP\xB2v\xAF\xAA4\x89T\xC5U\xE2%`\xE4(\x88#\xC0!8\xD7\xE0\xC51\xB00t\xA8\xD4X\x91?\xDB\xEF\xFD\xBF\xFD\xDB\xAE\xF0
+\xEDw\x8Fȱ\x87&gt;\xDE\xFB\xB8\xF3w\xB0\xF4&gt;w\xD1\xF7S\xC7=\xDC\xF8o\x8E/\xD0\xEF\S\xE9u/9z\xB2\xAE\x86=F/\xFBxė\xE3\x9E\xBD\xD8q\x91\xEB\xB8\xE1\xBF8\xBE\xE0\xFC\x96\xD08\xA0f\x94)2 \xB0Ő}        \x85))Ɔ+\xFB\x88\xA3*6MUn\xE7sr,\xF5\xA1.\xF343b\xB0\x8AP\xAA\xA9\x887&amp;\x8B#\xB1\xA8*\xBD\xCD7&amp;ה\xED\xAC\xDA \xC0\x9E\xCE        \xE3&amp;\xBF\xD9'\xCCٴ\x80\sg\xFA_U\x88\xB1Ua\xA7 \xEC\xF3&quot;ɒ&amp;\xF3DJ\x98\xFA\xA0\xFF\xA6±\xA4\xEE\xA9\x8EȲrGk\xFA\x92\xFE\xC4qD\xB7\xC0\x9C\xFF)\x8F\xDEFT\x98Q\xAF\xAC\xEB纰bQV\xBAL\x8E\xA4\x98\x8B\xE3\x8AD\xA1\x9AJ\xCD͝\xE9\x9A\xD64\x97|[\xED\x8B֬l\xDB#c\x9D\x94_\x91\x90R\x8DD\x9Cg\x9F\xDF#V\xBFrx\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\xFC\xFF\xFF\xF2\xC1\xF4\xFF\x87\xFF7C\xD5#\x82\x83\x92GL\xA4)x        9x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`ddTO\xCB\xCF+\xD1\xCD\xC9\xCCK\xCDH\xCDL\xCF(1500\xD0-\xA9,\xC8G002102\xE8\xFD\xE0g\xF8!\xCD\xF8C\x86\xE9\x87,\xF3
         \x96\xC6\xEE\xDF1\xBFj~na\x95ax\xC8/\xC3\xC0  \xC3\xF0LP\x86\x81O\x86QJ\x88\x81\xA4G\x8D\xC1\x87\xA1\xC89\xBF\xA0\xB2d\x96\x82F\xB2\xA6\x82\x91\x81\xA1\x99\x82obI\x86\xAF\x8F\x82cqq~rfbIf~q.!ҽ@\xC0\xC8`\xC0\xC0\xCCȨ\xA4\xAC׽\xF7\x87\xEB^ƽ{n\xD9˼W\xEC\x97ď\x95\xFF$\xD8\xF6\xFE)\xFD\xE1\xFAs\xCBWv&gt;\xBE\xDF1,\xBFj~\xD5\xFC\xABa\xE3\xFBU#\xD2-Z&gt;\xFF\xE7\x96n\xB6n.\x8Fc[x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8Aֶb+8\xDC\xCD\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicaldegreebottomraisepercent25rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-degreebottomraisepercent25-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-degreebottomraisepercent25-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-degreebottomraisepercent25-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+wOFFOTTOx CFF \x88/\xBEQ\x913\x80FFTM\xB8{kBbMATH\xD4\x94\x8A9#&quot;zOS/2\@`2cmap,CJD(\xE1\xDEhead.6 ]kwhhea8$=\xEBhmtxh\xD0maxpTPname\x9C\x8E\xAD\x9A&amp;\x91epostp \xFF\x863x\x9Cc`d``b\xBD0\xCE\xD9\xF1\xFC6_\xB8\x99_E\xAEh\xF7V&quot;\xD3\xCC/\xF8)&amp;+y        nx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4 Ƞ\x81AAI\x8A\xF9\x90\x95\x83\xA4\x80\x90w\x8B\x\x9C͒Oj1ƿ\x99q ٔ\xE6\xDA\xE8\x98\xD1`\x9B\xB2        /\x8AM\xC8&amp;t\xD9\xF1\xF8\xE1\xB6GF\xA3,r\x89\xAE\xBB\xEEz\x90\x9E\xA1ɲ\xDF\xC8&quot;\xFBZ&lt;b\xF4~\x92\xDE?==\xF0        \x8E\xDF%\x91\x8C\xF1;r\x8AO\xC96r\x86\xC7\xF4.\xF2\xE3\xF45\xF2&gt;f\x91\x87g\xBF\xA8\x99 ι\xFA\xACzN\xD0\xC0EN\xF1%\xB9\x88\x9C\xE1G\xF2=\xF2M\xFA
 -\xF2T\x96G\xA2ɾb\x8B^\xE8\xC5`Co
+W\xA8qMY\xA2\x80Ɣ\xB4Dœ\x86r\xC1\xD5=:K-\xF6+\xB9f\xF6\xF0\xE2̦\xF1ꪾVe\xA1\xA7jY\xF9f\xB9P\xF7]gkSyc\xA9\xE6h\xB3\xA6MM\xB9CNFv\x9C+z\xF2\xFB\xA0gG\x98\x9FpUsnyVbB+\x87gZKȪ\xF7\xB5噄\xBC4\xB3\xEE\\xB56u\xB5\xCBײq&quot;+\xEB\xBDݻ\xCAtrWK\xEB\xCBI\xEE\x9Ew\xE2So[\xE9:]\xB4\xFAg\xE9\xBC/\x8Dy\xA8\xA9\xD21!        \xEF1\xA2#\x85[\xFE\xFF\xAB\x8A\xC7h7\xD4\xEE\xF7\xF2\xB7\xAE\xC0ܶ~n\xDDFT9*ԭ\xFA\x9Bz\xD3L\xDF\xE4\xBA\xC8\xFBv9\xF9\xDEx
+\xC1\xBA\xD8\xF0*\xB8\xD2\xE1Q\x8E\xA5“\xB8\x8EM\xAE\x8AB\x8F\xFA۝\xFA\x8D\xFET\xBE\xFB\xE4x\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\x94\xA4\xFE\xFF\xF2\xC1\xF4\xFF\x87w_@\xD5#\x82\x83\x92\x80\x89\xCD\xF8\x93        &amp;x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9C\x9D\x90\xBFNA\xC6g\xE0#\xA7D\x90bOm\xA4\x80\xE8Y\xD9 y\xCB\xF3\xD8\xC0\xE4\xC8\xDDb\xA2\xD9\xDE?\xE7CPX\xF86\xFBT&gt;β!Ļ\xC4XP2\x99\xF9&amp;\xF9%\x93of \xD1+\xBD.\xF3\xBDa\xA3K{!\xA5\xF7\xE7\xC1C豈\x8Ei\xE8\xD3o\xBB\x8Dp2\xA4\xBC\xCF\xFC\xC1\x88FQ\xCBq\xC0  4\x95\xEA\x95\x9DQGYU3&gt;L\x8Cc-\x885\xDD&quot;X\xB7\xC0.\xC1\xF3=U\x82_eȧ3\xDBP\x842\xC0%\x8C\xE1\xF3\xCF:bϴ\x95J;\x95\xB3\xEB`\xFC\xB2^\x9Fۧ~\xDDn;\xAD \xBB\xE3\xF1~\xE7־\x8A\xA2\xC0gg\xC1h\x93\xAD7\xBA4        \xC4|\xC57|\x87\xE2\xF1\x89{s7\x88\xA5\x9AK\x94r1\x93YYյEsU\xCB\xC9岢\xE6\x8B\xD9r\x9E/\x95\x92G`R\xD9\xD8\xD0B\x8B\x95ȕ\xA6\x8F\xFF\x80\xE4\xD6I\xE1{\x9DXӔh\xB1WbsG\x8B$MS\x8BBҊ\xBFo(\
 x9E#x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8Avo%\x8C7:\x89x\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\xEA\x8C j\xC14\x8C\x8Dd\x8A8\x8C+\xCC/\xD0̒d\xE0`\xD2*@\x9A,\xC2\x86\xA8&lt; \xE6ab\x90`\x90\xC3\xE9*\x88J?\x860&amp; K\xA8Z..\xC3\xC0\xC2\xC0\xC4\xFC\x92\x81\x99\xFD&quot; \xF7NV\xFE\x85p9`\xCA]ǽ\xE4H\xE6\xCC/\xD8/\x80嘠\xFF\x8C\xE7\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicaldisplaystyleverticalgap7000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-displaystyleverticalgap7000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-displaystyleverticalgap7000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-displaystyleverticalgap7000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+wOFFOTTOp $CFF |-\xC1Y`\xF23FFTM\xAC{kBbMATH\xC8\x97\x8A9#=\xB9OS/2\@`2cmap CJD(\xE1\xDEhead.6 ]kwhhea8$=\xEBhmtx`\xD0maxpTPname\x9C\x84\xBC K\xF6\x93postd \xFF\x863x\x9Cc`d``b\xAB쮯\xF1\xFC6_\xB8\x99_E\xAEh\xF7V&quot;\xD3\xCC/\xF8)&amp;8\x9C
+jx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4 Ƞ\x81AAI\x8A\xF9\x90\x95\x83\xA4\x80\x90w\x8B\x\x9CՒ\xBDN\xC30\xC7\xFFI\xDAJ,\x88\x81\xF0\x82T\x86Tv\xA5~Э*\xEA\x80څ\xA1LQj%n\xA3&amp;\xB2\xDDJy6&amp;f\x9E\x87\x89g\xE1\xE2\x98        \xA4Ɗ\xEF\xE7\xF3\xDD\xF9|&gt;\x97xG\x80\xF6\xBB\xC1\xCAs\x80&gt;=\x87\x88\x83\xCAs\x84\xC7\xF0\xDEs\xA3(\xF2\xDC\xC5U\xF4\xEC\xB9G\xFA\xB2 :\xB4zp^+\xD8A{\xF1\{\x8E\xF0\xBCz\xEE`\xBEx\xEE\x82Ew\x9E{\xD8E(Q\xA1\xA6(
+rX0\xF4\x91\xE2\x96\xE4c\xA25\xDA\xC9I\xAEh5\x87\xA1Q\x92\x95rzE|eUk\x95\xE5\x96\xF5\xD3[6\xE4b\xCC։\xCD\xD7+67\xA6LUbUIf\x9A|\xB6䓒,;6\x94CA\xEB\x9A\xC8\xD2\@\xE2D\xBFv\xD1[ˌ\xE6
+ʩ1\xED\x9D]\x93Wc\xB3\xA7\xA4\xCBLx\xE8d\xABҤ\x88\xB7\xCATER[\xF2$\xB5m\x94YRM8\xE7\xB1&gt;\xD2\xE6*\xDD\xA41\x824\xF8ˌ~\x98\xC9\xD2U\xD6:\xA9\xE9&lt;\xE9^e@\x91f\xF4\xFF_-\xDB\xF3\xA6d-\x9C\xCFww`Y\xEC\xB2ԙd\xC3g3\x{1ABA93}\x9F\x98Ƃ\xC7MߜC\x93l\xDC\xC9\xC67?s\xB1\x84{\x9A\xB6\\xD8Hm\xA8\xE1\xE7b\xD0\\xF0 .\xF5j\x85\xFCx\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\x94\xA4\xFE\xFF\xF2\xC1\xF4\xFF\x87w_@\xD5#\x82\x83\x92\x80\x89\xCD\xF8\x93        &amp;x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd4+JL\xC9LN\xCC\xD1M\xC9,.\xC8I\xAC,.\xA9\xCCI-K-*        \xA6'\x98\xE8\x95椖dd&amp;g\xE7\xA5E\x99\xF4~\xF03\xFC\x90g\xFC\xA1\xC0\xF4C\x91\xF9\x87Kcw\xF7\xAF\xFE\xAC2\x8C:\xFC2 2\x8C\xE6\x822 b2\x8C\xAB\x85\xD8Az8x\x84\xC4l
+\x96A\xED.άJ5F \xC2\xD89\xBF\xA0\xB2(3=\xA3DA#YS\xC1\xC8\xC0\xD0L\xC17\xB1$\xC3\xD7G\xC1\xB1\xB88?93\xB1$3?\x8F,g\x93\xE7W `dlg\xEC`\xECd\xECb`cdTR6u\x8F\xCC\xEE\xDE\xFB\xE3\xD4^ƽ{n\xD9˼W\xEC\x97\xC4O\xBDl{\xFF\xFC\xFDq\xEA\xE7\x96?\xA7\xD8\xF9\xF8\x80A\xC1\xC4\xCC\xDD,\xBFj~\xD5\xFC\xABa\xE3[P\x90a\xBF\x80.½]\x84H\xE4W\x8DH\xB7h7ׯ \xE2\xE1\xF9U\xC3+\xA4xm\x96\x9Eix\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8Avo%\x8C7:\x89x\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\xEA\x8C j\xC14\x8C\x8Dd\x8A8\x8C+\xD2 \xCC/0L\xE3`\x92*@\x9A\xCCgCT\x9E
+\xF301H0\xC8\xE1tD\xA5\x83C\x90%T\xAD\x97a`a`b~\xC9\xC0\xCC~\x91\x81\x85{'+\xFFB\xB80偮\xE3\xDEd33\xBF`~\xC1~,\xC7\xC5@D\xD0A\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicalextraascender3000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-extraascender3000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-extraascender3000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-extraascender3000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+wOFFOTTO\
+pCFF p%\xA3\x8BPsFFTM\x98{kBbMATH\xB4\x95\x8A9#.OS/2\@`P0cmapCJD(\xE1\xDEhead.6 ]kwhhea8$=\xEBhmtxL\xD0maxpTPname\x9Cu&amp;\x85e%postX \xFF\x863x\x9Cc`d``\xE2ͫV\xCA\xC6\xF3\xDB|e\xE0f~a\xB8\xA2\xDD[\x89L3\xBF\xE0_\xA48\x98@&lt;:y
+ix\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC1p\x82\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 ̜ 0\xC0\xC4 Ƞ\x81AAI
+hC\x92PBF\x8A\x9B\x91x\x9C͒\xDFJ\xC30ƿv\xC0\xF1&quot;LFG\xB2\xC1\x851(&quot;\xDDm\xEFcֲю$\x83\xED-\xBC\xF15|o}+_ax\xEDi\xEF\xD6R\xCE/'\xDF9I\xBF\xC0%^\xE1\xF4\xDC  \xA1\x8F\xF7\xC01\xAE\xA3\xFB\xC0-&lt;D\xC7\xC0m\xF4\xE3\x97\xC0\\xC5\x81\xBB\xE8\xB72RF\xED =\xFA\xAA\x86#\xE40\x81c\xA4\xF8 \xDC\xC2s\xF4\xB8\x8D&lt;\xBE \xDC\x8B\xDFw)\xC45\xB68P\x97+p`\xE8A\xE1\x96\xE2c\xA2$\xCD3\xCD`\xE9\xADIU\xFA|I\\xF3z{0\xE5\xAAp\xAC\xA7nِ\x8B1[HW,26\xB3\xB6V\xA5teM2C5K\xAAQ7H\xA0\xB1\xA7MVRWE\xE3\x8A\xE65eF\xB4~\xF3&amp;\xC4;\xD2j\xBF\x87\xA6rM\xEDw!\x82F.K%7\x89\xDE;#\xA5U\xBAZj3\xE2\x9C'f\xB7Ѯ(պ\xD2\xD6
+\xCA\xE0\xAF\xD6\xFC\xD1Z\xA9w\xC7\xF9h\xC8c\xED\x9DP=Ô\xBE\xFF\xF1\xE3\xD4[`Bj\xE1k\xBEOi]\xB9\xB46+͆Φ\xECΑZL\xC1\x93\xE6t\xCF\xE3(s\xDF߆K\xC8|\xE1\xED=ـ\K\x8Fq.\xCD/\x9CŶ\xBF,)Ҁx\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\x94\xA4\xFE\xFF\xF2\xC1\xF4\xFF\x87w_@\xD5#\x82\x83\x92\x80\x89\xCD\xF8\x93        &amp;x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xD4)JL\xC9LN\xCC\xD1M\xAD()JL,NN\xCDKI-2600\xD0-*\xCDI-\xC9\xC8L\xCE\xCEK-.6\x8A002102\xE8\xFD\xE0g\xF8!\xCF\xF8C\x81\xE9\x87&quot;\xF3        \x96\xC6\xEE\xEE_52\xFC Xe\xF9\xF8ed%e\xC4d{\x85\xD8Az8x\x84\xC4l\xD2&amp;Am,άJ5F \xC2\xD89\xBF\xA0\xB2(3=\xA3DA#YS\xC1\xC8\xC0\xD0L\xC17\xB1$\xC3\xD7G\xC1\xB1\xB88?93\xB1$3?\x8Fǒ\xE2/ `dlg\xEC`\xECd\xECb`cdTR6u\x8F\xCC\xEE\xDE\xFB\xE3\xD4^ƽ{n\xD9˼W\xEC\x97\xC4O\xBDl{\xFF\xFC\xFDq\xEA\xE7\x96?\xA7\xD8\xF9\xF8\x80\xDEfb\xE6n\x96_5\xBFj\xFEհ\xF1-(\x83 Ȱ_@\xE1ށ.¿$\xF2\xABF\xA4[\xB4\x9B\x87\xEBW+\xF1\xF0\xF
 C\xAA\xE1R\xBCQ\x90\xEBx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8Avo%\x8C7:\x89x\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\xEA\x8C j\xC14\x8C\x8Dd\x8A8\x8C+\xCC/\xB8w\xA0\x98\xC6\xC1 $U\x804#\x98\xCF\x86\xA8&lt; \xE6ab\x90`\x90\xC3\xE9*\x88J?\x860&amp; K\xA8Z..\xC3\xC0\xC2\xC0\xC4\xFC\x92\x81\x99\xFD&quot; \xF7NV\xFE\x85p9`\xCA]v3\xF3 \xE6\xEC\xC0rLP \x84zX\x91\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicalkernafterdegreeminus5000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-kernafterdegreeminus5000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-kernafterdegreeminus5000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-kernafterdegreeminus5000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+wOFFOTTOl
+\xECCFF |,\xB8\xA6\xE2R\xB9FFTM\xA8{kBbMATH\xC4\x96\x8A9$\xD9OS/2\@`2cmap CJD(\xE1\xDEhead.6 ]kwhhea8$=\xEBhmtx\\xD0maxpTPname\x9C\x81\x8F,P\xEB\postd \xFF\x863x\x9Cc`d``\xE2\xF8X\xFB\xCAx~\x9B\xAF \xDC\xCC/\x80&quot; W\xB4{+\x91i\xE6\xFC \x80\x88        \xBAx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4 Ƞ\x81AAI\x8A\xF9\x90\x95\x83\xA4\x80\x90w\x8B\x\x9C͒\xCFJ\xC30ǿm\xB7\x81\xE2\xC5{.\xC2;\x92\xC2t\xEC6\x84!\xB2\xE1E\xBC\x976\xB6a[;\xD2\xEE0\xF0|\xC1\xE7\xF1\xEC\x93\xF8m\xC0\x83bC\xF3\xFB$\xF9\xFD\xCB/?'xG\x80\xC3w\x8E\x85\xE7        &gt;&lt;\x87\xB8 R\xCF\xC2+\xCF=$\xE1\xA7\xE7&gt;N\xA3\xCF$\xD1;5\x83\xDEW\xF7Ϊ\xE39\xAC\xE7\x8F\xC1\xB1\xE7o\xC1\xAB\xE7\xF2\xF0\xC5s&quot;:\xF3&lt;@\xDD\xE15\xB6\
 xD8ӋA\x81-\x86\xC8pA\x99@BᚴDʓ\x92r\xC1\xD5 +GM-\xE3\xF6+\xB9n\xEB\xEDޚ\xA2l\xC50\xBB\x89T\xD7b\x99\xB6\xE5r!fMSg&amp;mMM5K\x9B\x9C6\xE51V\xD0ܫ\xB8z\xA6\xAF\x8Es\xCE\xA5\xE6\xD8P\xB3Ž\xF1\xC6̦1Ov\xB4\xD4.\xA3\xCEϊ\xDA夼l\x9A\x9B,]\xC7+m\xAB\xF4\xB9\xD56ׅ\xD5zc\xAA]3\x96R\xC6v\xB7\xD6mi\xB2U\xA5\x9BFq\xBF\x93\xC8O\x98\xBB:\xB6NZ\xD6\xEE+Ft#0\xE5\xFF\x95;DR\x98P[9\x9B\xEF.\xC0\xBC\xAE\xDAym -\x92\x91S\xF1\xF3\xD3HMb%\xE3\xAE9\xFEq'&lt;\xB9\xE0\x8Dol\xE1)\xF7\x87\xE1Iۆ\xCD,\xA4T\xA3\xEE^\xFF\xF7._\xED\xFEx\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\x94\xA4\xFE\xFF\xF2\xC1\xF4\xFF\x87w_@\xD5#\x82\x83\x92\x80\x89\xCD\xF8\x93        &amp;x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9C\x9D\x90\xCFN\xC2@\xC6g\xA0\x82\x91\xD2*䰉U.z\xA0)&lt;y1\xBC\xC8xl\xCA
+\xB0\x98\xB6\x98h\xF6\xEE\x9F\xFA\x8D\xCF\xC0\xC1˾'g\xBB!\xC461\xB8\xE9d\xE6\x9B\xE4\x97L\xBE\x99A\xD04@\xC4^\xE0\x99\xE7N\xDB\xF8\xEEmD\x83!\x94\xDE1\xF6\xC7i\xF3)\x8D\xC6̛\xF84 ;,\x82-M\x90\x87(\xAD\x82&lt;*ʦ\xF6\xAEc+N\xCCd\x8B`\xCB$\xBB\xED=+\x825(\xE73\xDBP\x85\xC09\xF8\x90\xFC\x87\xEC\x89vr\xE9\xE6һ\x9C\xDD?l4\x8E\xAC\xEF\xD4\xEA:\x9D3k\xE0F\xE3\xC1\xB5u\x863\x8F\xB9\x9B\xF9\xDF\xF9Wf\x81\xF8\x8C/\xF8\x8AoPB&lt;n\xF5\xAFn&amp;\xB1\x90K\x81B\xA4 Q+\xD5L\xEDu\xB3$V\xAB\xBA\\xA6\x8Bղl\xD90\xABb\xAC)\xAE\xF8\x9A\x97\x8C\xE4\xE1\x90\xF2\xD7&amp;\xA9|n3ɉ\xE2\xFBq=\xD6w\xCFR\xD7\xAFd\xAD\xFA+\xF2\xAC\x9Ax\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8Avo%\x8C7:\x89x\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\xEA\x8C j\xC14\x8C\x8Dd\x8A8\x8C+\xCC/\xEC7`\x8A\x83A H\xAAiF0\x9F Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95&quot; ~ a L@\x96P\xB5\\\x86\x81\x85\x81\x89\xF9%3\xFBE\xEE\x9D \xAC\xFC \xE1r \xC0\x94\
 xBA\x8E{ȑ\xCC/\x98_\xB0_\xCB1A1\xE302\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicalkernbeforedegree4000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-kernbeforedegree4000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-kernbeforedegree4000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-kernbeforedegree4000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+wOFFOTTO`
+\xA4CFF t(\xACZa9FFTM\x9C{kBbMATH\xB8\x96\x8A9#2OS/2\@`2cmapCJD(\xE1\xDEhead.6 ]kwhhea8$=\xEBhmtxP\xD0maxpTPname\x9CyS5\x8AHpost\ \xFF\x863x\x9Cc`d``\xE2\x80Q\xAA\xF1\xFC6_\xB8\x99_E\xAEh\xF7V&quot;\xD3\xCC/\xF8)&amp;I        \xADx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4 Ƞ\x81AAI\x8A\xF9\x90\x95\x83\xA4\x80\x90w\x8B\x\x9C͒\xB1j\xC30\x86\xDBIJ\xA1\x94\x8E\xB5\xB4$\x83\x8DB\xD9B C\xAF\xA1C\xC7Vl\xE1`\xD9)\xE4E\xFA\xFB}\x89&gt;G{VԽ\x85b!\xEE\x93t\xFF\xDD\xF9$\xD7x\x85\x87\xD3w\x87\xA5c\xDE\xFB\xB8\xF7b\xC7\xFD+\xC7D\xFE\x9B\xE3.n\x82 \xC7=D\xC13yz\x9DKZ=XU\xCB\xD60\x8E}\xCA\xF4\xE98\xC0\x8B\xD78\xEE`\xED?9\xEE\x82\xF9\x8E{X\xB7\x98Cc\x8F#EQ\xC8Q\xA0C)d\x87\xE0\xC5H\xE8\xA4 \xB
 B\xA4\xD5 5+M^\xCA\xEE+\xE2
+\x98\xEB\xFDѨ\xBChX?\xB0!c'M/٬\xAEu\xAA\x92Fir3\xA4\xC9H\x93\x92\xDD!D        I{6d\xB7ɐ\xCDh\xE6\x96$FTE;BZH!m%\xAD\xBE$\x95\xB4\xB5\xE7\x93d*Mva)M\xB5\x91[md&amp;s#\xE5\x88s\x9A\xC3N6\x85J\xCBJֵ\xA0\xFCm\xF2\x9F&amp;]\xD8~5\xD6J%m\xAF#
+\xC10\xA5\xF9\x9F:e\x98\x90\xB7\xB0\x9A\xEF[\xC6BW\xCDB\x9B\\xB2a\xC4ٔ\xFD\xAE\x97$\x93P\xF0\xB0\xBD\xF83\xBB\xE5\x95M^\xBB\x87\xCAla~j        V\xD2\xD4\xF48\xE7&quot;j\xFF\xE5\xBC\xEA\xFF\xF6\xE8\xDCPx\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\x94\xA4\xFE\xFF\xF2\xC1\xF4\xFF\x87w_@\xD5#\x82\x83\x92\x80\x89\xCD\xF8\x93        &amp;x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xD4/JL\xC9LN\xCC\xD1\xCDN-\xCAKJM\xCB/JMIM/JM5100\xD0-*\xCDI-\xC9\xC8L\xCE\xCEK-.6\x8A002102\xE8\xFD\xE0g\xF8!\xCF\xF8C\x81\xE9\x87&quot;\xF3        \x96\xC6\xEE\xEE_52\xFC Xe\xC5\xF9ed\x95e\xC4d\xA7        1\xB0\x83\xF4p0\xF021\x883\xD80d1̀ZZ\x9CY\x95j&quot;\x8C@\x84\xB1s~AeQfzF\x89\x82F\xB2\xA6\x82\x91\x81\xA1\x99\x82obI\x86\xAF\x8F\x82cqq~rfbIf~i\xEE%\xD1w@\xC0\xC8\xD8\xCE\xD8\xC1\xD8\xC9\xD8\xC5\xC0\xC6Ȩ\xA4l\xEA\x99ݽ\xF7ǩ\xBD\x8C{\xF7\xFEܲ\x97y\xAF\xD8/\x89\x9Fz\xFF$\xD8\xF6\xFE\xF9#\xFA\xE3\xD4\xCF-N\xB1\xF3\xF1=\xCF\xC4\xCC\xDD,\xBFj~\xD5\xFC\xABa\xE3[P
 \x90a\xBF\x80.½]\x84H\xE4W\x8DH\xB7h7ׯ \xE2\xE1\xF9U\xC3+\xA4x\xB7
+\x94\x87x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8Avo%\x8C7:\x89x\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\xEA\x8C j\xC14\x8C\x8Dd\x8A8\x8C+\xCC/ 4\xFF\xB8\x83\x90TҌ`&gt;#\xA2\xF2T\x80\x98\x87A\x88A\x82A\xA7\xAB *E\xFC\xC2\x98\x80,\xA0j\xB8\xB8  \xF3Kf\xF6\x8B ,\xDC;X\xF9\xC2\xE5@\x80        (t\xF7\x90#\x99_0\xBF`\xBF\x96c\x82b iT}\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicalrulethickness8000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-rulethickness8000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-rulethickness8000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-rulethickness8000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+wOFFOTTO$         ,CFF Pm֧\xD9FFTMd{kBbMATH\x80\x94\x8A9#=\xB9OS/2\@`2cmap\xF4CJD(\xE1\xDEhead.6 ]kwhhea8$=\xEBhmtx\xD0maxpTPname\x9CX\xB1\xBF\x8Dpost8 \xFF\x863x\x9Cc`d``bM! \xC1x~\x9B\xAF \xDC\xCC/\x80&quot; W\xB4{+\x91i\xE6\xFC \x80\x88\xF1v\xCAx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4 Ƞ\x81AAI\x8A\xF9\x90\x95\x83\xA4\x80\x90w\x8B\x\x9C\xAD\x91\xBFj\xC30\xC6?9\xA0J;:\x88B!d!d \x81 ŁNٍcbY\xF2,\xDD;\xF6\xFA}\x89.}\x81\xCE\xFD,\xABS)\xB4 \xEB~\xA7\xFBN\xBA\x93\\xE1\xEDw\x8Fij\xC0Ϟ\xDC\xE0\xDDs\xB1\xF1\xDC\xC5@\xBCy\xEE\xE1:\xB8\xF4\xDC\xC7 x\xA4Rt/\xE8=\xB8\xAC\x86b\xCF\xEE\xF0깃\x9F\x9E\xBB\x88œ\xE7\xA4\xF8\xF0\xDCG\xDCb\x81
+\x9C\xB8\x8B\xC6,$\x86\xC80\xA2\x8D\xA1aBZ!e\xA4\xA0M\xE8\xCDQsTTi\xB7\xAE\xC9{`QNFo +\x87\xD9H\xC6*\x9A\xC8Uj\x8BU&quot;\xE7u]e:\xB5\xBA\xA2\xCC0gÜ\x8C\xB6DH\xFFH\x9B\xBB\xFD\x9B\xD5\xF7\xCA\xDD        S\x9E\xDF \x98t\xA3\xB3\xB4 ͱ\xCCm\xA1\xB3\xDD&gt;\xAF\xEB\xA9RM\xE8\xD9?\xB3\x96\xAEb\xEB\xACa߹\xEBvL\xB5Č\xFF\xFFkl\xF3&quot;\xFA!g\xC5\xF9\xFB\xF6\xB0\xAC\xF6vY\x99m.㱒3\xF9k7\x8CE\xD30Rasw羨5\xB5\x86\xDA\xF6\xB1\xA4\xD3G\xAE\xE5\xB6|\xACsS\xF3\x81\xA4RѸ)\xE6\xCC|\xD8\\x91\x9Cx\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\x94\xA4\xFE\xFF\xF2\xC1\xF4\xFF\x87w_@\xD5#\x82\x83\x92\x80\x89\xCD\xF8\x93        &amp;x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94*JL\xC9LN\xCC\xD1-*\xCDI-\xC9\xC8L\xCE\xCEK-.\xB6000``db`d\xD0\xFB\xC1\xCF\xF0C\x9E\xF1\x87\xD3E\xE6,=&lt;\x8C\xDDݿjd\xF8\xB0\xCA0\xDC\xE0\x97a`\x90ax,(\xC3 &amp;\xC3.\xC4\xC0\xD2\xC3\xC1\xC0\xCB \xC4 \xCE`\xC3ʐ5\xBF8\xB3*\xD5D\x81c\xE7\xFC\x82ʢ\xCC\xF4\x8C\x8DdM#C3
 \xDFĒ _\xC7\xE2\xE2\xFC\xE4\xCCĒ\xCC\xFC&lt;\x9CN\xC3\xEDf `dlg\xEC`\xECd\xECb`cdTR6u\x8F\xCC\xEE\xDE\xFB\xE3\xD4^ƽ{n\xD9˼W\xEC\x97\xC4O\xBDl{\xFF\xFC\xFDq\xEA\xE7\x96?\xA7\xD8\xF9\xF8\x80^bb\xE6n\x96_5\xBFj\xFEհ\xF1-(\x83 Ȱ_@\xE1ށ.¿$\xF2\xABF\xA4[\xB4\x9B\x87\xEBW+\xF1\xF0\xFC\xAA\xE1R\xBC\x8F        x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8Avo%\x8C7:\x89x\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\xEA\x8C j\xC14\x8C\x8Dd\x8A8\x8C+\xF2\xA6q0\x88I \xCD\xE63\x82!*O\x88y\x84$\xE4p\xBA
+\xA2R\x84\xC1\x8F!\x8C\x81        \xC8\xAAց\x8B\xCB0\xB0001\xBFd`f\xBF\xC8\xC0½\x93\x81\x95!\\x98\x80\xF2 \xCC/\xB8w\xD9\xCC\xCC/\x98_\xB0_\xCB1A1\x88\xB1B\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathradicalverticalgap6000rulethickness1000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-verticalgap6000-rulethickness1000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-verticalgap6000-rulethickness1000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-verticalgap6000-rulethickness1000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+wOFFOTTOP
+LCFF h!\x9D7J:FFTM\x8C{kBbMATH\xA8\x95\x8A9#9\xD1OS/2\@`2cmap CJD(\xE1\xDEhead.6 ]kwhhea8$=\xEBhmtx@\xD0maxpTPname\x9Co\xD6(\xE2%postP \xFF\x863x\x9Cc`d``\xE2W\xF7\xE7\xF2\xC7\xF3\xDB|e\xE0f~a\xB8\xA2\xDD[\x89L3\xBF\xE0_\xA48\x98@&lt;IB
+\xBBx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4 Ƞ\x81AAI\x8A\xF9\x90\x95\x83\xA4\x80\x90w\x8B\x\x9CŒ\xBFj\xC30\xC6?;\xA0K\xE9#\xA8C!&amp;8H\xA1\x84\x90-+x(ɒ!\xBBq\x84-&quot;#)\x81L}\x81\xBEH\x97&gt;F\x97\xBEB\xC7&gt;@\xA1gE\xED\x9C! [?\x9D\xEE\xF4\x9D\xEF\xE0\xEF\x88pz0!\xC1G\xE0\xF7\xD1c\xE0\xB2\xE8;pI\xFC\xB8\x83\xBB\xF83pI\x8B\x93gԾ\xA1ճ\x8Fj8\xC2&amp;p\x8C'\xFCn\xE15Znc\xF7w\xC0\xE2\xB7\xC0]\xB2a\x8DG:E\xA1D\x86
+ʕa\x81\xD19\xEDT4\xCFi5\x85\xA5\xA1\xC9Ky\xBB&quot;\xDE3]\x8D*+\xC7zE†\\x8C\xD8&quot;w\xD5bΦ\xD6\xEAB\xE5Nir3\xB3\xA6\x98\x82\xE6-R \xC9\xE6\xFE-%}kR\xE5~\xA4\xB4\xB7'\xAB\xF4\xFA\x8Dφ\xB4\xA4\xCF@\x98|\xAD\x8A|\x9B\xA4q+\x94y=✧f\xBF\x95\xAER\xC5f'\xADd\xC1%\xD4\xCEP\xC9|E\x9C\x9F+iH_\xCDE3L\xE8\xBD|+N\xE7
+\x8C\xC9[\xF8\x98\xBF\xEE!\xD3;\x97iSJ6p6agW\x8B|\xC58&lt;mzy\xEDƭ\xBC\x9A+\x97\x8D\xF9x\xE1Kz\xFA}\xAC\xA4\xB1t\xC1\xE7b\xD0$\xE5\x84\xE5R\xC9^x\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98\x94\xA4\xFE\xFF\xF2\xC1\xF4\xFF\x87w_@\xD5#\x82\x83\x92\x80\x89\xCD\xF8\x93        &amp;x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xD4*JL\xC9LN\xCC\xD1-K-*1\xD2 \xCC t\x8BJsRK22\x93\xB3\xF3R\x8B\x8B+\x81&quot; \x8CL \x8C z?\xF8~\xC83\xFEP`\xFA\xA1\xC8\xFCC\x82\xA5\x87\x87\xB1\xBB\xFBW\x8D \xFFVF~FaA1\xC6v!v\x90^!q\x86T\x86&gt;\xA8}řU\xA9\x86 \xC2D;\xE7Te\xA6g\x94(h$k*\x9A)\xF8&amp;\x96d\xF8\xFA(8\xE7'g&amp;\x96d\xE6\xE7\xEDT\xE2\xFD\x8C\x8C\xED\x8C\x8C\x9D\x8C] l\x8C\x8CJʦ\xEE\x91\xD9\xDD{\x9C\xDA˸w\xEF\xCF-{\x99\xF7\x8A\xFD\x92\xF8\xA9\xF7O\x82m\xEF\x9F?\xA2?N\xFD\xDC\xF2\xE7;\xD0ˌ@\xCC\xDC\xCD\xF2\xAB\xE6WͿ6\xBEep\xF6 \xE8&quot;\xDC;\xD0E\xF8\x80D~Ոt\x8Bv\xF3p\xFD\xAA&quot;\x9E_5\xDC@\x8A\x9
 A\xA8\x8EUx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8Avo%\x8C7:\x89x\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\xEA\x8C j\xC14\x8C\x8Dd\x8A8\x94-^\x91f~\x81a\x83\x90TҌ`&gt;#\xA2\xF2T\x80\x98\x87A\x88A\x82A\xA7\xAB *E\xFC\xC2\x98\x80,\xA0j\xB8\xB8  \xF3Kf\xF6\x8B ,\xDC;X\xF9\xC2\xE5@\x80        (t\xF7\x90#\x99_0\xBF`\xBF\x96c\x82b U\xD4U\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptsspaceafterscript3000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-spaceafterscript3000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-spaceafterscript3000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-spaceafterscript3000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+wOFFOTTO\x8C \x9CCFF 8\xC1\xF3sqa\xE9FFTM\xFC{i\xB5\xB6MATHiX*OS/2X&lt;`\xD8
+cmap\xE87B+\xC6head*6s\xCF+hhea4$U\xEBhmtx\x84\xD0maxpPPname\x94RE\xB4H\x8AEpost  \xFF\x863x\x9Cc`d``\xE2=\x9Ft\x93\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1:\xAE\x8CLC\x88&amp;\xBA\xAFx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xB5\x91\xBFN\xC30\xC6?\xA7\x88\x81\xB1\x83\xA4vH\xB1[\xA9-\x9D\xA8*u@\xED\xDA=\x8A\xD2\xC6K\xC5^\x8Ax$\xC4\xC8;\xF06H\xBC_ 1 \x84\x90\xCB\xF6Ͼ\xFB.wg\x97x\x81@\xF3\xDD`X\xA0\x87\xE7\xC0\xAE\xF1\xB8\x85;\xF1\xB8\x8D\x9Ex\xDC\xC1Ut\xB8\x8B^\xF4HO\xD1&gt;\xE7\xE9\xC1\xABj\x98\xA1
+\xA1\x8F\xB7\xC0-T\xE2,p3\xF1\xB8]\xEEb\xDDc\x89%\x8E\x8Cb\xB0G\xC98)\xDCGPИ\x906Hhɹ\xAFyZ\xC0r\xF42\xFEސ\xC0\xB2(\x8F\x95\xD9\xE7N\xF6Ӂ)=\x91\x9B\xC4囵\X[\xA4&amp;q\xA6\xA0\x9B\xA5\xAE\xFE[I\xA5E\xCCY2J\x8A\x8C\xEB\x8Ew\xAD\xDF}\xC6̢\xB0ieJgc[&amp;i\x96\xEC\V57c\xA5j\xEB\x9F\xC3\xFC(_\xF9\x9C\xDF+v&quot;\xF3\xF5)\x90\x98s\xFE7\xEBF\xAD1\xA5F\xF3u\xAB\xE2\xE0VE\xB5\xCF\xE4h\xA8\xE4\\xFEV\xCDzk\xD7m=Y\xB7A\xD8&lt;\xA8\xF4\xED\x9BД\x82-\xFD\xF9\x88R)=\xAC\xB3:U&amp;\x9F\x9EGx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94-N.\xCA,()\xD6-.HLNML+I-\x82\x88002102h\xFF\xE0g\xF8!\xCD\xF8C\x86\xE9\x87,\xF3        \x96\xC6n `\x95a8\xC0/\xC3\xC0  \xC3pXP\x86\x81C\x86\xE1\xB53H\x83\x83C\x9Cs~AeQfzF\x89\x82F\xB2\xA6\x82\x91\x81\xA1\x99\x82obI\x86\xAF\x8F\x82cqq~rfbIf~&gt;\xCB\xF1: \x98\x95\x94\xBB\xF7\xFE8\xB5\x97q\xEFޟ[\xF
 62\xEF\xFB%\xF1S\xEF\x9F\xDB\xDE?D\x9C\xFA\xB9\xE5\xCF)v&gt;\xBE_5&quot;ݢ\xDD&lt;\L O\xF5x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6qe+6\x88Ox\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x81,\xC0\xBD\x83E\xD3\xE3\x88PgQ \xA6al$3Pč\xB0cFQ\x86\xBFW\x81l1 \xAD\xA4\xC1&amp;0\x82!*O\x88y\x84$\xE4p\xBA
+\xA2R\xA8B\xCC\xE2\x9B \x85\xD1HXJ @\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssubscriptbaselinedropmin9000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscriptbaselinedropmin9000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscriptbaselinedropmin9000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscriptbaselinedropmin9000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+wOFFOTTO\xA8         ,CFF L\xC9 %d\xFCdFFTM{i\xB5\xB6MATH4jX0\x9AOS/2X&lt;`\xD8
+cmap\xFC7B+\xC6head*6s\xCF+hhea4$U\xEBhmtx\xA0\xD0maxpPPname\x94h\xBD\x83\xA8\x93\xE0post4 \xFF\x863x\x9Cc`d``\xE2]^\x9B\xD6\xC5\xF3\xDB|e\xE0f~a\xB8\xA2u\\x99\x86&amp;,v\xD6x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xBD\x92\xBFj\xC30\xC6?9I\xA1K\xE9\xDERH)C\xFEm!LI\xD6\xEC\xB6cbAb\xC9\xB2\xF6\xFA
+}\x82&gt;A_\xA6k\xA2\xF4,\xAB\x85.\xA5\x94 q\xBF;\xDD}\x96Np\x85g04\xDFV\x9E\xBAx\xF1\xE0\x96\xDDxna\xCE&gt;\xE3mt\x83\xC8s\xD7\xC1\xA3\xE7 \x8A\xBFQ&amp;k_\x92w\xEF\xAAjf\x88`&lt;\x98\xE0\xD5s l⹍\x88\xBD{\xEE\x80\xCF\x88\x82',\xA0Q\xE2D*
+;\xE4\xA8\xC0\xD1C\x8A&gt;\xD9!$FDkĴ\x92\x93]\x917\x87\xA5\xA1)K\xB9\xB8&quot;.\x80\x85.OF\xED\xF2\x8A\xF7\xD2&gt;
+9\xE2\xEB\xB8\xCA\xD7+&gt;\xB7V\xA7*\xAE\x94\xA64Ku\xF5\xDFJ\xAA\xB4i\x91|\x8B&amp;\xA4j\x91aO~AvK+\xF5.ΟҮ\xEA\x9BUV6\xB4Ǥ\xC1$\xB6\xD9^\xD9\xD6\xE8򠊩u֟\xE5\x94]\xBA3W\xCE\xEA\\xE6\xFA5\xA0B\x8E\xCD\xFF:e\xA3&amp;1&amp;+I~\xF8u+X\xEA\xA2Zj\xB3\xCB\xF8p \xF8\x8C\xFF\xA6\x94&amp;ǡa}=g\xBF\x8B+        \x92k w\xA5\xD25\xAD9*6\x99\xB1\xF4H\xB8rP\xEF\xF6\xDC;\xFCYQ\xC1\xFDx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`ddT-N.\xCA,()\xD6-.M\x820\x93\x8BSs2\xF3RS\x8A\xF2 r3\xF3,+ \x99\xB4\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kc7\xB0\xCA0\xDC\xE0\x97a`\x90a\xB8-(\xC3\xC0!\xC3\xC8,\xC4\xC0 Ҡ\xC6\xE0Ő\xE7\x9C_PY\x94\x99\x9EQ\xA2\xA0\x91\xAC\xA9`d`h\xA6\xE0\x9BX\x92\xE1\xEB\xA3\xE0X\\x9C\x9F\x9C\x99X\x92\x99\x9FG\x8C#\x88r(02012*)w\xEF\xFDqj/\xE3޽?\xB7\xECe\xDE+\xF6K\xE2\xA7\xDE?        \xB6\xBD\xFE\x88\xFE8\xF5s˟S\xEC||\xBFjD\xBAE\xBBy\xB8\x
 A2CY\xA8x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6qe+6\x88Ox\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87'P\xD6\xC0-G\x98\xC6\xC0\xC0G\x84:#\x88Z0+c#\x99\x81&quot;n\x843\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81 Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95&quot;@*`\xD8\\x88(\x8CF\x82\xE0\x8F \xC8\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssubscriptshiftdown6000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscriptshiftdown6000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscriptshiftdown6000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscriptshiftdown6000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+wOFFOTTO\x94 \xC0CFF @\xC2\xF9\xAFӢ8FFTM{i\xB5\xB6MATH jX$\xE2OS/2X&lt;`\xD8
+cmap\xF07B+\xC6head*6s\xCF+hhea4$U\xEBhmtx\x8C\xD0maxpPPname\x94Yc\xF0R\x98post( \xFF\x863x\x9Cc`d``\xE23\x92\xEF\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1:\xAE\x8CLC\x88'\xDD\xBDx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xB5\x91\xCDJ1\x85\xCFL\xC0\x8D\xB8\x97%\xA1\xA7$]L\xA1vS
+\xA4\xDD\xB7\xED\xF4g\xB2i\x86Ij\xE9;\xB8\xF61\xC4\xC7p\xE7        \x9E\x99        .\x91N\xF9nr\xEF\x99\xDC\xE7xA\x80\xEA\xBB\xC6\xD4s\x80^=\x87\xB8‡\xE7n\x83'\xCFu\xB4¦\xE7.\xC2;\xCFM\xEE?33\xA8\x9F1\xBA/\xAB
+0D\xEE9\xC4+\xDE=\xD7\xF0\z\xAEc\xBCyn@\x84מ\x9B\x86\xC3 Ñ*[\xA4ph#A\x87k
+1i\x86OR\xAESF#X\xC3,]\xEEk\xF2\x9B\xEC\x98\xEBm\xEAD;鈞T\xB1\x98-\:\x9B\x8A\x91\xB5&amp;\xD1 \xA7+\xD3,늿e\xAC\xB4\x888\xF7X~\xDBMIҊ\xCAjǼI1`\x93\g\xCEFv\xBF\xF4\x98\xEA\x8D[\x99\xC3.\x96\xB28\xFF\x93\xD8&quot;\x93\xB2W\xAE9]Y\x97^tY&quot;0\xE0\xFCO\x95\x82B\x9Fu\x8Aq\xF4\xE52&amp;f\xE7&amp;&amp;߮E\xAF+\xC5@\xFC\xDE+T?R2*\x8C&gt;\xB1\xABsZ\x90S\xA0zhQ\xA9Ґ\xAA%\xCC׹\xE5\xE3
+)U\xB7\xB8\xDBi\xEF\xF3        $\xEA\xA8Tx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94/N.\xCA,()\xD6-.M\x82232\xD3JR\xF2\xCB\xF3\xCC \x99\xB4\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kc7\xB0\xCA0\xE3\x97a`\x90a8)(\xC3\xC0!\xC3\xF0Q\x88\x81\xA4A\x8D\xC1\x85!\xC99\xBF\xA0\xB2(3=\xA3DA#YS\xC1\xC8\xC0\xD0L\xC17\xB1$\xC3\xD7G\xC1\xB1\xB88?93\xB1$3?\xBF\xF5\x8C L\x8C\x8CJ\xCA\xDD{\x9C\xDA˸w\xEF\xCF-{\x99\xF7\x8A\xFD\x92\xF8\xA9\xF7O\x82m\xEF\x9F?\xA2?N\xFD\xDC\xF2\xE7;߯\x91n\xD1n.\xB4\x91Sx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6qe+6\x88Ox\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x88`\x8A\x91\xA6100\xC6\xA1\xCE\xA2L\xC3\xD8Hf\xA0\x88anj\xA2 \xAF\xD96  b@ZH3\x82M`CT\x9E
+\xF301H0\xC8\xE1tD\xA5P\x85
+\x98\xC56&quot;
+\xA3\x91 +V \xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssubscripttopmax4000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscripttopmax4000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscripttopmax4000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscripttopmax4000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+wOFFOTTO\x88 \x88CFF 8\xC0\xF0I\xEF%FFTM\xF8{i\xB5\xB6MATHjXOS/2X&lt;`\xD8
+cmap\xE87B+\xC6head*6s\xCF+hhea4$U\xEBhmtx\x80\xD0maxpPPname\x94Q6\xBAl\xFB\xF3post  \xFF\x863x\x9Cc`d``\xE2\xBC6\xF1\xFC6_\xB8\x99_E\xAEhWF\xA6\xA1\x80\x83\x81        D\x86&lt;x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xB5\x91\xCFj1ƿ\xC4?\xD0K)\xF4\xE8%PZ\x{130488}\xACśD\xAF\xDE\xD7eq\xD5,I}\xA5B\xFB}\x93^\xFB \x9D͆B\xA1\x94R0!\xCC/\xC9|\x93\x99        \x80k\xBC\x82\xA1\xF7XEf\xE8\xE192\xC7-&gt;&quot;\xB7\xF0\xC8|\xE46z\xEC=r7\xFC.r=\xFED\x9E\xAC}E\xBBeP\xD5̐\xC2F\xE6x\xC0[\xE4*\xC6#\xB7\x91\xB2\x97\xC8\xCE&quot;w\x91\xF21\xE60\xA8p\xA6(;\x94\xF0\xE8#ǀ\xEC\x8A^X#\xA3\x9B\x92\xEC\x8Av38\x9A\x86\xBCt8\xD7\xC4`n\xAA\xB3ջҋ~&gt;#\xA9R\xB1\xCE|\xB9^\x89\x99s&amp;י׆\xDC\xE9\xEA\xD7*R:$\xB4\x8E\xD8~;\xF5!\xA7=\xC5&gt;aL9\xD4.\xB7
 \xBA\xF2.q\xC7m\x83\xDET\xFB\xEC4\x96\xB2\xBE\xFCc\x8C\x9F\xB4\x8B\x90\xBD\xD6R\x8AP\xF9\x90\xFC\xA6\xB4\xFE\x97o\xA3U\x98\x90B\xD1&gt;\xF9\xEA&amp;\xE6\xE0\xC6\xEE
+1J1\xBFTF\xB7j\x92(\x99\xD4ݼL\xEB6T\xB0\xA5\xCD'\x8A\xA0P\xA1\xFC\xA6 l
+\xEB\xE8ㄔjX\xA7t\x914&gt;!\x9B\x96x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94)N.\xCA,()\xD6-.M\x820K\xF2 r+L \x99\xB4\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kc7\xB0\xCA0\xEC\xE5\x97a`\x90a8 (\xC3\xC0!\xC3\xF0B\x88\x81\xA4A\x8D\xC1\x91!\xC69\xBF\xA0\xB2(3=\xA3DA#YS\xC1\xC8\xC0\xD0L\xC17\xB1$\xC3\xD7G\xC1\xB1\xB88?93\xB1$3?\x8F\xDD\xF8\x9C\x8C L\x8C\x8CJ\xCA\xDD{\x9C\xDA˸w\xEF\xCF-{\x99\xF7\x8A\xFD\x92\xF8\xA9\xF7O\x82m\xEF\x9F?\xA2?N\xFD\xDC\xF2\xE7;߯\x91n\xD1n.\x8B8O:x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6qe+6\x88Ox\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87+\xE0_\x80]\x9C$0\x8D\x81\x811\x8EuF\xB5`\xC6F2E\xDC;fe`\xF8{ȶa\xE0`\xD2*@\x9Al#\xA2\xF2T\x80\x98\x87A\x88A\x82A\xA7\xAB *E\x80*T\xC0,&gt;\xB0\xB9Q\x8DX\xDA ,\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssubsuperscriptgapmin11000superscriptbottommaxwithsubscript3000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+wOFFOTTO\xE4 \xA0CFF p\xDDt\x998\xDBiFFTMP{i\xB5\xB6MATHlmXD&quot;OS/2X&lt;`\xD8
+cmap 7B+\xC6head)6s\xCF+hhea4$U\xEBhmtx\xDC\xD0maxpPPname\x94\x8B\xCAOc\xD5postX \xFF\x863x\x9Cc`d``bkk\x9Bx~\x9B\xAF \xDC\xCC/\x80&quot; W\xB4\x8E+#\xD3P\xC0\xC1\xC0\xA2\xE8\xB5Px\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xDDS1N\xC30}I n\xE0        \x86Tv+\x81\xE8\x82*P+\xA1v힖*\xF1\x90:\x8A]Q\x8EУp`\xE6@\xBC8F\xB00\x81&quot;\x96\xED\xF7\xFD\xFF~\xB1\xBF\xE0\xDA\xEF\x93\x80#\x8C\xA38\xE0\x97\xD1K\xC0\xDCƯ'w\x9E\xDE\xC1a\xD2x\xE3䕑Q\xB2G\xEB\xC6g58\xC2u\xC01\xA2\x9B\x80;x\x8A\xF7N\xB0\xED\\xBC\x91\xBC\x8Bmr\x8D+T\xB8'\x8BF\x8E'X\xE0\x94s
+gDSd\xF4\x9C'\xB4\x86\xB0l\x86Qگk\xE2pe\xAA\xFBZ\xE7\x85'\x8BSѓ\xEALL3WL'bh\xADY\xE8\xCCi\xC30˼f\xB7\x8A\x99)\xFBs?VX\xD2\xF3ٟ\x93\xBFBIkE%\x8Az\x9A\x96~=\xA7\xC7f\x98Q2s\x83;z\xDD\xEF{|\xC4\xF6\xEC\xA2֕\xB3\xA9]\xCF\xED\xBAZ֭\x9DgU\xA9WJI)\xD3O\xCBs\xE3\x9C)\xCBls\xA7]\xD1d\xF8\xD5&gt;\xA3\xF0\xEB\xFF\xF1]\xFD#\x8B\xCE\xCF5/}t\xC9-0`\xFF[\xF7\xD6jR8'\xAB\xF2\xDC\xEFՊ\x91Y\xB9\x91\xA9\xF3\xA5\xE8u\xA5\x88\xBAa2\xA9\xF3Tɴ\xA9\xEC\xFF[Ƴ\xA0\xA7}\xD4³+_\xED\xB1cF&gt;d!\xA5\xEA6\xC7\xF2o\x8F\xE2+\xA1K\x96x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xF4(N.\xCA,()\xD6-.M*.-H-\x82\xF0\xD3 r3\xF3 ++ t\x91\x84\x93\xF2KJ\xF2ss+\xCA3K2@:\xC0\xA2\xC6@U \x8CL \x8C \xDA?\xF8~H3\xFE\x90a\xFA!\xCB\xFCC\x82\xA5\x87\x87\xB1Xe\xF9ed]e8ds\x84\x98A\xD4r\xB68\xE7Te\xA6g\x94(h$k*\x9A)\xF8&amp;\x96d\xF8\xFA(8\xE7'g&amp;\x96d
 \xE6\xE7Qɝ\xD4\xF2.02012*)w\xEF\xFDqj/\xE3޽?\xB7\xECe\xDE+\xF6K\xE2\xA7\xDE?        \xB6\xBD\xFE\x88\xFE8\xF5s˟S\xEC||\xBFjD\xBAE\xBBy\xB8\xD9Ⴗx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6qe+6\x88Ox\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x81$\xA0\x{143041}{\x91\x8A\xA7100\xC6\xA1\xCE\xA2L\xC3\xD8Hf\xA0\x88anj\xA2 \xAF\xD96  b@ZH3\x82M`CT\x9E
+\xF301H0\xC8\xE1tD\xA5P\x85
+\x98\xC56&quot;
+\xA3\x91 \x99\xE1+b\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssubsuperscriptgapmin11000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+wOFFOTTO\x9C \xF4CFF D\xC6UzOjFFTM {i\xB5\xB6MATH(iX8jOS/2X&lt;`\xD8
+cmap\xF47B+\xC6head*6s\xCF+hhea4$U\xEBhmtx\x94\xD0maxpPPname\x94]\x90&quot;\xAAI%post, \xFF\x863x\x9Cc`d``b\x99\xC9\xCF\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1:\xAE\x8CLC\x88 #x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xBD\x92\xBFj\xC30\xC6?9\xA0PJ\xD7n\xCA\xD06$        d($\x81@K\xB2fw\x8C\xB1E\x89%,g\xE4q:w\xEC\xDC\xC7\xE8\xDE\xE9I\xA5K)\xB4P Y\xBF\x93\xEE;ߝ\xE0\xCF`h\x9Fk\xAC3 \xF08\xC2;\xDC\xC1{
+\xDC\xC5 \xBA+\xDC\xC3e\xF4\xB8O\xFB\xAF\xE4ɺgd=x\x95c\x86\xEA\xC0\xBC\xEE\xE0\xC4nw\xB1`\xEF\x81{\xE0\xD1}\xE0&gt;\xD1        Kh)\x8AB\x81+8\x86\xC80\xA25\x81\x80Ąh\x83\x94NJZ\xD7d\xCDaih\xF2R~_W\xC0R\x9Bc\xAD\x8A\xB2\xE1\xC3l\xC4!'|\x936\xE5f\xCD\xE7\xD6\xEAL\xA5\x8D\xD2\xE4fI\xE7\xBEfHi\xD3&lt;`\xE7\xDF9\x9D|=/(\xBE\xC1\x9E\xAC\x8A2\x91\x94\x8F\xB0Y\xADLcc{\xD8ك\xC9\xEB\xD6.R\xB3W\x95\x94B8\x97_D\xFD&gt;\xDA\xCAW\xD8\xF8\xB5&amp;}\xEE\xBB3&amp;nj\xE6\xDFkj\xE3HLI\xED\xF6\xE2\xCF\xEEc\xA5\xABf\xA5\xEB&quot;\xE7\xC9X\xF0\xFF\xB1z\xF2\x91\xD3X\x8A\xD8\xFD\x83\xFFj\xF86\xC4j/\xF7:\xE9[Ԗ\x87-\xC9\xE8p!\xE4\xD8%\xF9O\x89}\x8E \xB2\xA6x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`ddT*N.\xCA,()\xD6-.M*.-H-\x82\xF0\xD3 r3\xF3 ++ \x99\xB4\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kc7\xB0\xCA0\x9C\xE7\x97a`\x90a\xB8$(\xC3\xC0!\xC3\xF0K\
 x88\x81\xA4A\x8D\xC1\x9D!\xC39\xBF\xA0\xB2(3=\xA3DA#YS\xC1\xC8\xC0\xD0L\xC17\xB1$\xC3\xD7G\xC1\xB1\xB88?93\xB1$3?\x8F\xA0 ;\x98\x80\xBEQ\xEE\xDE\xFB\xE3\xD4^ƽ{n\xD9˼W\xEC\x97\xC4O\xBDl{\xFF\xFC\xFDq\xEA\xE7\x96?\xA7\xD8\xF9\xF8~Ոt\x8Bv\xF3p\xAA\x9AVHx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6qe+6\x88Ox\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x81$\xA0\xF5\x83\xC5\xD3\xE3\x88PgQ \xA6al$3Pč\xB0cFQ\x86\xBFW\x81l1 \xAD\xA4\xC1&amp;0\x82!*O\x88y\x84$\xE4p\xBA
+\xA2R\xA8B\xCC\xE2\x9B \x85\xD1H\xC6\xC8 \x9F\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssuperscriptbaselinedropmax10000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptbaselinedropmax10000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptbaselinedropmax10000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptbaselinedropmax10000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+wOFFOTTO\xAC         `CFF P\xCB\xDE%\xBA\x80FFTM{i\xB5\xB6MATH8jX4\x82OS/2X&lt;`\xD8
+cmap7B+\xC6head*6s\xCF+hhea4$U\xEBhmtx\xA4\xD0maxpPPname\x94k\xEA\xCE\x9Epost8 \xFF\x863x\x9Cc`d``\xE2-b\xEAW\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1:\xAE\x8CLC\x88\xBC7x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9CŒ\xC1j1\x86\xFF]\xB5\xD0K顗\x9E\x9AKQ +\x89\xB1x\xF5\xE8}]7\xA0f٬\xA0o\xD0k_\xA4\x97\xBEA\xE9#\xF4)\xFA\xFDw7\x94\xDEZh\xC1\x840\xDFLf&amp;\x93I\\xE0\xAAq\x8B\xA9cM\xBC:\xF6q\xE3\xDD9\xAE\xE1\xC1{w\G\xD3׎\xB8\xF4_\x9F\xA1Y\xBB\xA2\xA7W?\xA76)\xA3
+\xF60G\xE6\xD8\xC7=&gt;\xD7\xF0\xE8M\xD71\xF7\xAF7 \xFC'\xC7g\xB4\xBFa\x83Gf\xD1X#A\x81&quot;\xB4)\xBB\x90P\xE8\x91f\xB9\x93PN\xA9+a9+\xBDti\xD7\xE402\xE91\xD3\xEB$\xAD\xA8-\xBAR\xF5\xC4,̓\xD9T \xAD5\x91sm\xE8fW\x9C\x962\xD2&quot;\xE0ړcھ\xEF,\x99\xD9Һ\xA1\xBE\xA3\q\xA7\xA8tK\xFB\x81UI7a\xA3L\xA7\xB9+\xEC&gt;\x8D\xB3JY\x866\xDE\xE8]\xBC\xCAL\xBA+Jr\xE0\xCF\xE7\xFC\x94\v!/e\xC6^\xC6e;\x8Cp\xFDォ\x9C
+}f*\xAC\xC1\xD7kalv\xF9\xD8d\xEBXt;R \xC4/;DO\xD5\x94 \x8A\x97;\xDD3-\xDCէe\xB4*\xDBX] \xC6\xF3#        )U\xA7(\xFBd\xA5~\x91\xCD\xCB\xDCx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xD4(N.\xCA,()\xD6-.-H-\x82p\x92\x8BSs2\xF3RS\x8A\xF2 r+ +\x80\x80\x81\x91\x89\x81\x91A\xFB?\xC3i\xC62L?d\x99H\xB0\xF4\xF00v\xAB \xC3C~\x86'\x822 2\x8C&lt;B \xCC +j \xBE %\xCE\xF9\x95E\x99\xE9%
+ɚ
+F\x86f
+\xBE\x89%\xBE&gt;
+\x8E\xC5\xC5\xF9ə\x89%\x99\xF9yD\xBA\x83X\xE7##\xA3\x92r\xF7\xDE\xA7\xF62\xEE\xDD\xFBs\xCB^\xE6\xBDb\xBF$~\xEA\xFD\x93`\xDB\xFB\xE7\x8F\xE8\x8FS?\xB7\xFC9\xC5\xCE\xC7\xF7\xABF\xA4[\xB4\x9B\x87 \xEA\xF5\\xFCx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6qe+6\x88Ox\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x81h\xA0.@\xBCZ0\x98\xC6\xC0\xC0G\x84:#\x88Z0+c#\x99\x81&quot;n\x843\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81 Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95&quot;@*`\xD8\\x88(\x8CF\x82ş \xB4\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssuperscriptbottommin8000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptbottommin8000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptbottommin8000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptbottommin8000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+wOFFOTTO\x98 \xE4CFF @\xC5\xFF\xE8\xDA\xF4}FFTM{i\xB5\xB6MATH$jX,\xB2OS/2X&lt;`\xD8
+cmap\xF07B+\xC6head*6s\xCF+hhea4$U\xEBhmtx\x90\xD0maxpPPname\x94Y\x81 \xE7 \xE8post( \xFF\x863x\x9Cc`d``b\xA5\x87\xB7\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1:\xAE\x8CLC\x88_x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xBD\x92\xBFj\xC30\xC6?9J\x97ұC-\x85dp\x902$!Hdɚ\xB5$\xC6\xC4K\xD2g\xE93t(}\x95.}\x9A~\xB6E\xE9RJ)ć\xD0碌\xCFwg\xB8\xC1 \xEA\xE7\xAB\xC0o\x81#܉\xAB\xC0+L\xC4s\xE0&amp;dt\xB8\x85\xDB\xE81p\x9B篌\xCDkz\xCB*\xABd\x81)\x8A\xC0\xDE7\xF0$d\xE0&amp;\xA6\xE2#p\x8B:\x93\xC0mL\xA3sX\xE48S\xC5`\x8F \x9EUv\x90\xA0˽OE\x8Di\x8D-o2\xEE+z38\x9Ae\x94\xA9\xCE+\xF9\xCCm~.\xCC&gt;\xF3\xB2\x93te_\xE9\x81\o}\xB6^əs61[o,\xC3\xF3ʷ\xE5\xCCt\x88\xB9N\xE4\x94g\xDFov\xD4\xF44\x8B\xCDP\xC4jJ\x83K
+\x93{\xBBS\x9E\xB5\xB3\xB3\xDE\xDB\xC3\xC1GJ\x95\x96\xFCQjQ\xF5櫽\xE0\x84\xD2j.=&amp;I\x8C\xB9\xFE\xDBM\xAD\xA21d\xAE\xA6M {\xF4 [\xECS\xD9\xEF)9\x96\xBF\xF5\xCD=\x8C\xB5\x8A\xCB\xD1_dΛ W\xFF\xB2J\xD3\xD5p\xEAְa&quot;?\xBATJ\xF7\xCA
+/Q\xD5'\xFEıSx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`ddT,N.\xCA,()\xD6-.-H-\x82p\x92\xF2KJ\xF2ss3\xF3, \x99\xB4\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kc7\xB0\xCA0\x9C\xE1\x97a`\x90a8/(\xC3\xC0!\xC3\xF0]\x88\x81\xA4A\x8D\xC1\x8D!\xCD9\xBF\xA0\xB2(3=\xA3DA#YS\xC1\xC8\xC0\xD0L\xC17\xB1$\xC3\xD7G\xC1\xB1\xB88?93\xB1$3?\x8F\x90:\x98\x95\x94\xBB\xF7\xFE8\xB5\x97q\xEFޟ[\xF62\xEF\xFB%\xF1S\xEF\x9F\xDB\xDE?D\x9C\xFA\xB9\xE5\xCF)v&gt;\xBE_5&quot;ݢ\xDD&lt;\\xACU\xF6x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6qe+6\x88Ox\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x81( \xEF@\x9C:0\x8D\x81\x811\x8EuF\xB5`\xC6F2E\xDC;fe`\xF8{ȶa\xE0`\xD2*@\x9Al#\xA2\xF2T\x80\x98\x87A\x88A\x82A\xA7\xAB *E\x80*T\xC0,&gt;\xB0\xB9Q\x8D\xF3\x9B \xDC\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssuperscriptshiftup7000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptshiftup7000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptshiftup7000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptshiftup7000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+wOFFOTTO\x8C \xC0CFF 8\xC2\xF9\xCDϲGFFTM\xFC{i\xB5\xB6MATHjX(\xCAOS/2X&lt;`\xD8
+cmap\xE87B+\xC6head*6s\xCF+hhea4$U\xEBhmtx\x84\xD0maxpPPname\x94Rc\\xECCpost  \xFF\x863x\x9Cc`d``b/\x9Em\xF1\xFC6_\xB8\x99_E\xAEhWF\xA6\xA1\x80\x83\x81        D\xF6x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xB5\x91\xBBj\xC30\x86;\xE8R:\x94\x8EAK \x81:HH\xB3\x84@%YC\xD7`\x9CXKd,\xA5\x90w\xE8\xDC\xC7(}\x8Cn}\xA2B\xD9\xEAС\x85Rb!\x9D\xEF\\xADs\xE0/\x88P]\xACG\xE8\xE05p\x8C|n\xE0.z
+\xDCD'nn\xE1*^n\xD3\xFE\xCCȨyA\xED\xBE\xCA\xF2a\x8A2p\x8C[\xBCn\xE01\xBA\xDC\xC44z ܂\x88\xBB\x81ۘ\xC6\x98à\xC0\x89U4\xF6\xC8\xE1 \xD0C\x8A&gt;\xE5
+#\xD2[zr\xCA\xB5,\x97a\x94\xAE\xEC\x9A|\xE6\xA68\x95z\x9F;\xD1K\xFBb(\xD5H\xAC\xB7._\xAF\xC4\xCCZ\x93\xEA\xADӆa\x96y\xFEo3-\xEE#9\xA3\xED\xBB''\xEDH\xDE;\xE6M\xFC\x82MK]8\x9B\xD8c\x91\x95A\xC9\xF5\xCE\x8B\xB1\x94\xDE\xFF\xA7b?YT\xFD\xB8J\x96\x9CJV\xCDb\xC0\x81        \xF7:\xA8+(\xEA        O\xC9\xF3k\xCAX\x98\x83[\x98r\x9F\x89\xE1@\x8A\x89\xF8\xBDW\xA8q\xA2d\xE2}\xE6\xA9nB\xA1\xFA\xA1E\x95\xA4\xAA\x81\xD4-a\xC34&gt;\xAE\x90R+\xFC\xDD\xCE{\x9FO\xA9x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94/N.\xCA,()\xD6-.-H-\x82r22\xD3JJ \xCC+ \x99\xB4\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kc7\xB0\xCA0\xE3\x97a`\x90a8)(\xC3\xC0!\xC3\xF0Q\x88\x81\xA4A\x8D\xC1\x85!\xC99\xBF\xA0\xB2(3=\xA3DA#YS\xC1\xC8\xC0\xD0L\xC17\xB1$\xC3\xD7G\xC1\xB1\xB88?93\xB1$3?\xBF\xF5\x8C L\x8C\x8CJ\xCA\xDD{\x9C\xDA˸w\xEF\xCF-{\x99\xF7\x8A\xFD\x92\xF8\xA9\xF7O\x82m\xEF\
 x9F?\xA2?N\xFD\xDC\xF2\xE7;߯\x91n\xD1n.\xD1iSWx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6qe+6\x88Ox\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87/\x90\x8E\xC0/\x8FLc``\x8C#B\x9DD-\x98\x86\xB1\x91\xCC@7ŽE\xFE^\xB2m8Ā\xB4
+\x90f\x9B\xC0\x86\xA8&lt; \xE6ab\x90`\x90\xC3\xE9*\x88J\xA0
+0\x8Bl.DF#A+\xD2 \xF0\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathscriptssuperscriptshiftupcramped5000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptshiftupcramped5000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptshiftupcramped5000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptshiftupcramped5000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+wOFFOTTO\xA4         &lt;CFF H\xC9\xD0\xD0\xE1FFTM{i\xB5\xB6MATH0jX \xFAOS/2X&lt;`\xD8
+cmap\xF87B+\xC6head*6s\xCF+hhea4$U\xEBhmtx\x9C\xD0maxpPPname\x94b\xCC|bƓpost0 \xFF\x863x\x9Cc`d``\xE2\xE2\x875\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1:\xAE\x8CLC\x88\xD4hx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9CŒ\xBFj\xC30\xC6?;J\x97\xD2(h        $\x83\x83H
+i CH\xA6Bw\xE38\xB1\x86\xC4\xC6R\x86\xEC}\x8B\xBEB\xE9#t\xEA\xA3\xF4!:\xF6\x93&quot;
+]J\xA1\x85X\x98\xFB\xDD\xE9\xEEt\xBA\x80+\xBC \xC2\xE9\xEB`8&quot;\xBF\x8Eq\x89\xC0+\xDCEo\x81\x9B\xE8\xC4\xF7\x81[\xB8\x8E\x9F\xB7i\xFF\xA0gԼ\xA4\xB6\xF0Q\x8E#r8\xC6\xEF\x81x\x8Cn7\xB1\x88/\xB7 \xE2c\xE06\xEDϘ\xA1D\x85#\xB3hlQ\xC0B\xA0\x8B =\xCA$F\xA4R\xEE\x94KjS\xAE\x92^\xDA\xDB5y\xCC\xCA\xEAX\xEBmaE7뉁T#\xB1Jm\xB1Z\x8A\xA91e\xA6S\xABK\xBAƹ\xD3*F$\xFC䜶\xEF;iCr\xBBΞb\xE7\xFD\xD6\xB2.\xB7`\xB2ZW\xD6$\xE6P\xE5uP
+\xBD\xB1\x87*\xAB\xD3]\x95\xAF\x87R:\xB7?\x9C\xF0s湿\xB9\xF5\xB2f\xFFrߵ&gt;#\xA7!\xFE\xF1\xAE\xA7|
+cfQԓ\xAF\xE9`^\xEE\x{DF2C}\xB7\xB9\x{125608}_u\x85~j\x9C(\x99\xB89\x9Dc(!\xFB\xE9\xF1\xAB|\xEBN\xD7\xC5\xA3\xF9`\x84\x94\xAA\xEF
+&gt;C\x91\x9F*&gt;Ɠx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`ddT+N.\xCA,()\xD6-.-H-\x82r22\xD3JJ \x92\x8Bs RSL+ \x99\xB4\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kc7\xB0\xCA0\xDC\xE6\x97a`\x90a\xB8'(\xC3\xC0!\xC3\xC8&amp;\xC4\xC0 Ҡ\xC6\xE0\xCDP\xE0\x9C_PY\x94\x99\x9EQ\xA2\xA0\x91\xAC\xA9`d`h\xA6\xE0\x9BX\x92\xE1\xEB\xA3\xE0X\\x9C\x9F\x9C\x99X\x92\x99\x9FG\x94+\x88s*02012*)w\xEF\xFDqj/\xE3޽?\xB7\xECe\xDE+\xF6K\xE2\xA7\xDE?        \xB6\xBD\xFE\x88\xFE8\xF5s˟S\xEC||\xBFjD\xBAE\xBBy\xB8\xFB\xA7[Ax\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6qe+6\x88Ox\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x81 \xEE \xAC+\x98\xC6\xC0\xC0G\x84:#\x88Z0+c#\x99\x81&quot;n\x843\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81 Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95&quot;@*`\xD8\\x88(\x8CF\x829\xC6 \xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstackaxisheight7000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-axisheight7000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-axisheight7000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-axisheight7000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+wOFFOTTOx CFF ,\xBC۷@\x92\xDCFFTM\xE8{i\xBE^MATHiX'\xC7OS/2X&lt;`\xD8
+cmap\xDC7B+\xC6head*6s\xD7\xD3hhea4$U\xEBhmtxp\xD0maxpPPname\x94E\xD3\xE7\x9D&quot;?post \xFF\x863x\x9Cc`d``\xE2s\xAB\xE2-\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1:]\x8ELC\x88.\xB0        1x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xA5\x90\xBDj\xC30\x85\x8F\xF2]J\x86\x8C\xB4\x92\xC1Aʐ@\xB64\x90\xA1$kv\xD7[\xA2`iHޥ\xF4
+\xA5ҩk\xC7&gt;G\x8Fe5C)\xA5 \xEB~\xBA:\xF7G\xC05\x9E!\xD0|\xB7XG\xE01r\x8B\x9A\xB7\xC8mhq\xB9\x83\x81x\x8A\xDCE_\xBCG\xEEa\xD0\xEAS):W&lt;݇\xA8\x9A\x86\xA8&quot;\xB7p\x83\x97\xC8m&lt;\xE0#rC\xE1#w!\xC5k\xE4\xFD\x9FX\xC2\xE2\x80\xB3(\xE1!\x993Èv\x8D)i\x83\x947%횧\x97\xA5\xCA\xBF!=\x9C*S\x94^\xB3\x91\x9C(=\x95\x9Bԗ\x9B\xB5\8g3\x93zc)s\x8CH\xBBCB{d\xB4c\xE6\xFC\ƪ\xF5\x82\xF3i\xB6Kңqe^\xA7\x9D)E\xEF\x9F!?ūЙ\xB6\xA28\xAFS*1\xE7\xFF\xDF^\xB5\xE69᮸\xCF+\xBB\xF7+[\xB9\x9C\x8C\x95\x9C\xCBߺ\xA6[\xCF\xAD\x92z(O`KiŐf\xEC2HuxT\xD3*\xB6y\xE58j\xA9\x94\xD7\xD5/\xAD\xF8\x9C\xCA~{x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd-.IL\xCE\xD6M\xAC\xC8,\xCEH\xCDL\xCF(1700``db`d\xD0\xFE\xC1\xCF\xF0C\x9A\xF1\x87 \xD3Y\xE6,=&lt;\x8C\xDD@\xC0*ð\x82_\x86\x81A@\x86a\xB5\xA0 \x87 \xC3e!f\x905+?\xE7\xFC\x82\xCA&quot;\x90A
+ɚ
+F\x86f
+\xBE\x89%\xBE&gt;
+\x8E\xC5\xC5\xF9ə\x89%\x99\xF9y\xD8,\xC5\xEA `d`bdTR\xEE\xDE\xFB\xE3\xD4^ƽ{n\xD9˼W\xEC\x97\xC4O\xBDl{\xFF\xFC\xFDq\xEA\xE7\x96?\xA7\xD8\xF9\xF8~Ոt\x8Bv\xF3pE\x8AE4x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6\xE9r+:\xFFx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87 \xA4#\x88'\xA0\xB4&amp;\x91\xEA\x89F@&lt;+J\xC3\xD80\x80.n\x843\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81 Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95&quot;@*`\xD8\\x88(\x8CF\x82&gt;\x85 \xEC\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstackbottomdisplaystyleshiftdown5000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+wOFFOTTO\xB4         DCFF X\xCF\xCFǶ/FFTM({i\xBE^MATHDgX\xF7OS/2X&lt;`\xD8
+cmap7B+\xC6head*6s\xD7\xD3hhea4$U\xEBhmtx\xAC\xD0maxpPPname\x94tҩ_\\xD3post@ \xFF\x863x\x9Cc`d``b)\xF1\xD56\xF1\xFC6_\xB8\x99_E\xAEh\x9D.G\xA6\xA1\x80\x83\x81        D=:x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9CŒOJ\xC3@ƿ\xA4\xC0\x85\xE2+\x9C\x85\x85v\x91\x92\xDABB\xADtQڭ\xE02M\xD2f\xE8\x9F)\x99\x81\x92\x95/\xE2\x\xE09&lt;\x87\xF8%\xDC*(4Cx\xBF7\xF3\xBD7o\xDE \x80 \xBC\xC0A\xF5\xB50\xB7\xEC\x90\xDF,\xBB\xB8r\xAE-\xD7p\xEB\xBC[\xAE\xA3\xE5&gt;Xn\xE0\xD2}\xB6\xDC\xE4\xFC'\x95N\xFD\x8Cެ\x8C*\xD8!g\x96]\xDC\xE0\xC3r+OΝ\xE5:f\xEE\xB9\xE5\x84\xFBh\xB9\xC9\xF9WL\xA0p@\xCE,k\xA40h#B\x87\xB6\xA4B\xAE\xA4\xB4szchE\x95,\xE7%yL\xD4!\xCF\xE4:5\xA2uD\xCFb\x9At1c\xADU$C#e\x9A!c7\xF0\xB0d\xA4\xE1P\xD8!f\xCDZ\xB6\\xCDKUNNH)WV\xF4c\
 xEA\x8EܩϺ\x8Am\xC2h\xE3-\x951jK}؆\xB96\xF96ѩ\\x99X\xF7}ߧ쏻\xFC\x98Z\x9Eߔ6c\x93\xB2w]\xC6
+\x8C\xF8\xFF߉\xAB|\x86\xCC\xD0\xF7\xBE\xEFS\xB57S\x95\xAD\xD1\xEB\xFAb$~\xD5ꂡ\xF8^q[\xA7\xB8\x9A{fɘ\xA7zB\xA2\x8C+\xCA\xD6U\xC7\xC5}\x92i&gt;\xE1\xFBA\xB7(\xF8E~0\xE2ȓx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`ddT+.IL\xCE\xD6M\xCA/)\xC9\xCFM\xC9,.\xC8I\xAC,.\xA9\xCCI-\xCE\xC8L+I\xC9/\xCF3500``db`d\xD0\xFE\xC1\xCF\xF0C\x9A\xF1\x87 \xD3Y\xE6,=&lt;\x8C\xDD@\xC0*\xC3p\x9B_\x86\x81A@\x86ហ \x87 #\x9B3H\x83\x837C\x81s~AeQfzF\x89\x82F\xB2\xA6\x82\x91\x81\xA1\x99\x82obI\x86\xAF\x8F\x82cqq~rfbIf~Q\xAE Ω@\xC0\xC8\xC0\xC4Ȩ\xA4ܽ\xF7ǩ\xBD\x8C{\xF7\xFEܲ\x97y\xAF\xD8/\x89\x9Fz\xFF$\xD8\xF6\xFE\xF9#\xFA\xE3\xD4\xCF-N\xB1\xF3\xF1\xFD\xAA\xE9\xED\xE6\xE1\xEB\xD5[8x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6\xE9r+:\xFFx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xE2W&amp;\xDCA\x82\x99F@&lt;+J\xC3\xD80\x80.n\x843\x8A20\xFC\xB
 D
+d\xDB0p0\x88i \xCD6\x81 Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95&quot;@*`\xD8\\x88(\x8CF\x82@5 \xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstackbottomshiftdown6000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+wOFFOTTO\x90 lCFF @\xC2\xEA\xF1\xA9\x88?FFTM{i\xBE^MATH gX#\xDFOS/2X&lt;`\xD8
+cmap\xF07B+\xC6head*6s\xD7\xD3hhea4$U\xEBhmtx\x88\xD0maxpPPname\x94Z\xA6Bopost( \xFF\x863x\x9Cc`d``\xE2;}\xDD\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1:]\x8ELC\x88B\xA0        \xA7x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xAD\x91\xBFj\xC30\xC6?9I\xA1Ki\xE9\x94MZ\x92\xC1A\xF2\xE0@\xB6\xC8P\x925\xBB\xE3\xFC\xB1\x9B&amp;
+\xB6 \xE4q\xBAt\xEC3\xF4%\xFA\xDD\xFA\xFAY\x9DZh!F\xBF\xD3\xDDw\xBA;\xB8\xC0 \xEA\xEF\xCFm&lt;{p\x8Dw\xCF+\xC4\xE2\xC1sm\xF1湅\xCB\xE0\xCA\xF3\xDA\xC1\x8C\x91\xA2yN\xEBީ*\x88Pxp\x87W\xCF+&lt;\xE2\xD3s\x91x\xF2܂\x9E\xCF7\xC1`\x8F#\xB3\xE4X#\x83\x85D)\xBA\xDC#(hĤ)z2\xEEZC\x94\\x86Q\xB9;\xCF\xC9;`d\xF6\xC7&quot;_gVvҮ\x8C\x94\x8E\xE54\xB1\xD9t&quot;\x87ei\xD2&lt;\xB1\xB9aXIEB\xED!\xE6TZ.\x83-\xCF3fZ\xD1Z\xD0&gt;0c\xCC\xFB\xAB\x85\xD2&amp;\xE9&amp;\x9CkͶ\xCC\xF2\x95]\x98\xC3.V\x8A\xAE?f\xF8Q;vu[\xB7\xEC~\xE9z\xEE1^b\xC0\xFF\xFF\x95\xD6:\x8D&gt;\x9Av\xF8=C\x8C\xCDΎM\xB1^ʨ\xA7\xE4@\xFE\xDA}\xBAjV&lt;\xF5\xB8fl\xB2\xA0\xB6~2\xE9\xE2\xB5k\xB9.\xB3eQ\xF2\x99\xA4R\xBAWs\xE2\xBE\xE1Ɣ\xF6x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94*.IL\xCE\xD6M\xCA/)\xC9\xCF-\xCE\xC8L+I\xC9/\xCF3300``db`d\xD0\xFE\xC1\xCF\xF0C\x9A\xF1\x
 87 \xD3Y\xE6,=&lt;\x8C\xDD@\xC0*ð\x9D_\x86\x81A@\x86a\x97\xA0 \x87 \xC3#!f\x905{\x86\xE7\xFC\x82ʢ\xCC\xF4\x8C\x8DdM#C3\xDFĒ _\xC7\xE2\xE2\xFC\xE4\xCCĒ\xCC\xFC&lt;\x9C6\xE3v02012*)w\xEF\xFDqj/\xE3޽?\xB7\xECe\xDE+\xF6K\xE2\xA7\xDE?        \xB6\xBD\xFE\x88\xFE8\xF5s˟S\xEC||\xBFjD\xBAE\xBBy\xB8E\xADL)x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6\xE9r+:\xFFx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xE2V&quot;^@\xA2\x99F@&lt;+J\xC3\xD80\x80.n\x843\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81 Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95&quot;@*`\xD8\\x88(\x8CF\x82/\x81 \xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstackdisplaystylegapmin4000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-displaystylegapmin4000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-displaystylegapmin4000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-displaystylegapmin4000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+wOFFOTTO\x98 \xA0CFF D\xC5\xF3p\xE8^uFFTM {i\xBE^MATH(gXOS/2X&lt;`\xD8
+cmap\xF47B+\xC6head*6s\xD7\xD3hhea4$U\xEBhmtx\x90\xD0maxpPPname\x94]KR\xCC6\x8Cpost, \xFF\x863x\x9Cc`d``\xE2\x96?\x9BM\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1:]\x8ELC\x88=\x92        \x89x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xB5\x91\xBFj\xC30\xC6?9\xA0K(:e\xD0RH\xA0RH\x934[        x(ɚ]8\xC6Ilci\xF1V\xFA&lt;\xA5O\xD0\xE8 \xB5kϲ\xE8\xD6B \xB10\xF7;\xDD}\xA7\xD3        \xC0\xAF`h\xBFl&lt;3 \xF1\xE29\xC05&gt;=wpϞ=w1d\x9E{\xB8 \xEE&lt;\xF71 \x9E(\x93u/\xC8{t\xAA\x86\x96\xA8&lt;\xB8Ż\xE7*6\xF0\xDCŒ\xBDy\xEE\x81W\x9E\xFBX\xD6(P\xA2\xA6*)2Xp\x8CcLv
+\x899\xD1\x8A&quot;\xD9+y0\xB4
+\xCA\xD2n_\xE7\xC0\xBA(\xEBJ\xA7\x99\xE5\xA3x̧B\xCE\xF9V\xD9l\xBB\xE1\xC6\xB1VV\x94fH\xA1H{@\x88=i+\x9D\xA4\x9D\xDAEj\xE2\x84:Q\xB4{\xA2h\x8Eu\xD1,\xAB\xE2C\xB8צ&lt;\xAA\xDA\xD8\xFA\x98\xA4\xAA&lt;\xE9|&amp;E\xFFT\xEA\xA7&quot;\x91\xBB\x89u\xB6&quot;i\xE2\xA60!        NJ\xFE\xFF\xF6ު%\xA4\x93\xE4\x87߳ET\xE46*\xAA4\xE1Ӊ\xE0+\xFE\xDB-),\xA1a3ܳMrG\xB2\x8AJ\xB4\xCFʝD\xBA!\xB4W\xC1.\xA9 =%BN\x9A\xAE\xCE\xD5\xC9&lt;\x9E\xA0[x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94-.IL\xCE\xD6M\xC9,.\xC8I\xAC,.\xA9\xCCIMO,\xC8\xCD\xCC3100``db`d\xD0\xFE\xC1\xCF\xF0C\x9A\xF1\x87 \xD3Y\xE6,=&lt;\x8C\xDD@\xC0*\xC3p\x80_\x86\x81A@\x86ᰠ \x87 \xC3k!f\x905'\x868\xE7\xFC\x82ʢ\xCC\xF4\x8C\x8DdM#C3\xDFĒ _\xC7\xE2\xE2\xFC\xE4\xCCĒ\xCC\xFC&lt;|\x96\xE3u02012*)w\xEF\xFDqj/\xE3޽?\xB7\xECe\xDE+\xF6K\xE2\xA7\xDE?        \xB6\xBD\xFE\x88\xFE8\xF5s˟S\xEC||\xB
 FjD\xBAE\xBBy\xB8HrO\xF2x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6\xE9r+:\xFFx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA7\x9C\x8A\x8C\x80x\x94\x86\xB1a]\xDC;fe`\xF8{ȶa\xE0`\xD2*@\x9Al#\xA2\xF2T\x80\x98\x87A\x88A\x82A\xA7\xAB *E\x80*T\xC0,&gt;\xB0\xB9Q\x8DM\x8D (\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstackgapmin8000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-gapmin8000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-gapmin8000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-gapmin8000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+wOFFOTTOl \xC8CFF $\xB9\xCFY\xC2^\xA1FFTM\xE0{i\xBE^MATH\xFCgX+\xAFOS/2X&lt;`\xD8
+cmap\xD47B+\xC6head*6s\xD7\xD3hhea4$U\xEBhmtxd\xD0maxpPPname\x94@\x97-\xAE'5post  \xFF\x863x\x9Cc`d``\xE2\xBF-ۏ\xC5\xF3\xDB|e\xE0f~a\xB8\xA2u\xBA\x99\x86&amp;Wn
+ x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\x9D\x90\xBDj\xC30\x85\x8F\xF2\xEDP2\xF4D\xA1\x90 R\x86$d \x81 %\x81N\xBA        lbYK\xE6\xBEB_!k\xC7.\xDD\xFB }\x9Cˢ\x94R(\xC4\xC2\xDC\xEF^\x9D\xFB'7x\x85@\xF3\xDDcY\xA0\x8F\x97\xC8-\\xE3=r\x89\xB8\x8B\xDCA_\xB8\xC8]\xF29r\x8F\xFCI\xA5\xE8\\xD1{Y5 H\xB8\xC8-\xDC\xE2\xB9\x8D'|D\xEE@\x8A\xC7\xC8]\xF2s\xE4\xF9+K\x948\xE2\xC4*rxV Őv \x8D        iÛ\x9CvMo\x81\x8A\xA7\xA4ʆ\xB8%\xC0\xB2&lt;\x9E\x9C\xCDr/\xE9P\x8E\x95\x9Eȍ\xF1\xF9f-UU\xA6\xD6x[RV1\xC30w\x8F\x84+\xBBX\xA1\xC0\x8C\xDD\xEA\x83ʛt\x9Fd\xE6x\xB0\xC5L)F\xFE\x94\xFD\xAC\xC2&gt;XG\xF9.L?\xA2Lb\xCE\xFF\xBF\x9E\x8DJc\xCA{M?\xF9\xDE\xAB\xB2\xF0\xAB\xD2e;9)9\x97\xBF\xA7cHO\xAD\x92zዶ\xDBr\\xC7\xC4\xE6e\x90\xE90|3\xB6;W\xF1\xE9\xA4RzTw\xBC\xA4\xCB\xD7Vl\xDCx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xF
 F\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd,.IL\xCE\xD6MO,\xC8\xCD̳000``db`d\xD0\xFE\xC1\xCF\xF0C\x9A\xF1\x87 \xD3Y\xE6,=&lt;\x8C\xDD@\xC0*\xC30\x87_\x86\x81A@\x86a\xBE\xA0 \x87 \xC3q!f\x90537\xE7\xFC\x82ʢ\xCC\xF4\x8C\x8DdM#C3\xDFĒ _\xC7\xE2\xE2\xFC\xE4\xCCĒ\xCC\xFC&lt;t 1\x8C L\x8C\x8CJ\xCA\xDD{\x9C\xDA˸w\xEF\xCF-{\x99\xF7\x8A\xFD\x92\xF8\xA9\xF7O\x82m\xEF\x9F?\xA2?N\xFD\xDC\xF2\xE7;߯\x91n\xD1n.\xB0\x8D?\xEDx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6\xE9r+:\xFFx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJkV*\xEF@\xA4\x99F@&lt;+J\xC3\xD80\x80.n\x843\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81 Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95&quot;@*`\xD8\\x88(\x8CF\x82I \xD8\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstacktopdisplaystyleshiftup3000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+wOFFOTTO\xA0 \xE8CFF H\xC8\xFFr\x83\xE1FFTM{i\xBE^MATH,iX'OS/2X&lt;`\xD8
+cmap\xF87B+\xC6head*6s\xD7\xD3hhea4$U\xEBhmtx\x98\xD0maxpPPname\x94c\x87ORypost0 \xFF\x863x\x9Cc`d``b\x9B\xDB/S\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1:]\x8ELC\x88&lt;-        \x86x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xBD\x92\xCFJ\xC3@ƿM\xFF\x80\xE2\xD9\xD3&quot;(\xED!e\xD3J \xA1R\xE8A\xDAk\xEF\xA1M\x9B\xA5\xA5\xB2[!&gt;\x8E\xE0Ƀ/\xE2\xDDG\xF1K\xB2xTPh\x960\xBFٙo\xB23x\x85@\xFD\xDC`\xEEY@\xE2\xCDs\x80+q{\xF1\xE2\xB9        \{n\xE12H&lt;\xB7\xB9\xFF\xCEL\xD1&lt;\xA3\xF7X\xA9J\x98 \xF7\xE0\x9Ex\xB7\x9E\x9B\x98\x88O\xCF-֙znc&lt;a
+\x83 \xABhl\x91\xC2\xF1\x94\xACХ\xEDC!\xB4@\xCCHJ;\xA7\xF7\xCBe\x98\xA5\xAB}M&gt;S\x93\xB9ަNvV]\xD9W\xD1P.b\x97.\xE6\xF2\xC1Z\xB3ұӆi\x96\x8A\x98\xDABR\xF9\xF55+X\xDA=\xF7\x8B*^\x90R\xCAȆ\xFE\x91\xD1OS.X\xAFv\xA13\xD9Z\xDBl\xD6\xFBĦz\xE3\x8E\xD9@)f\xFC\xA9\xECOgU\x87\xAE\xB29\xE7\x94T\xD3\xE9Q&amp;1\xE6\xFBߞ\xEA*F\xD4G\xF4\xC3\xEF\xD9cfnf\xF2m&quot;\xFB=%\xC7\xF2\xB7\xEE\x99\x8D\xC2H\x85\xE5\x9Cd\xDAK\x8As\xCA\xEB\xDF@V\xB2\xA8N\xDD\x96Iny\xF5R\xA9\xA8W\x9E\xF0\xA7\xFA\x93\x9A\xB2\x8Bx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9C\x85\xCE\xED
+\xC1P\xC0\xF1\xE7\xD9\xE6%\xC9[h娡D\xA2\xA1|\x97\xF2\x89\x8BX\xF3\xB2\xD9r\x8E+w0\x97\xB3\xAF\xE7\x96r9δ\x84+\xF0\xFB\xFE\xAF?\x82\xA6&quot;\xB6\xB7\xECÐ\xBBކ2\xEFh\xF9\x8C\xFB\xC7-s\xE8\x8E_\xBC\xA9i\x9A\x80
+  dd%QdS\x95\xBAv\xCBc\xF0\x95&quot;p/\x80\x81G\x99@\x96\xC0\xB3\xEA/\xE8\xC2v \xD7\xF3\xCFt\xEFp\xA3g\xF7\x8D\x899\x9Ek\x8B;\xEB\x951g̵\xA9ũ{\xFA7\xF0w\xF0 AAlw!#\x81BġPE\xFD\xA5ǣ\xB7\x9EIR\x93Q&amp;Q\xA6Px]\xABA-\xC8\xE7&gt;\xDC\xD6U\xB1x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xD6\xE9r+:\xFFx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJkb\x97\xE6\xDEA\xA2y `\xC4Ӡ4\x8C+\xE8\xE2F\xD81\xA3(\xC3߫@\xB6+\x83\x90VҌ`\xC1\x95\xA7\xC4&lt; B  r8]Q)T\xA1f\xF1\x81ͅ\x88\xC2h$k\xED &lt;\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstacktopshiftup9000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-topshiftup9000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-topshiftup9000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-topshiftup9000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+wOFFOTTO\x80 CFF 0\xBD\xDB\xEE4\xACFFTM\xF0{i\xBE^MATH iX/\x97OS/2X&lt;`\xD8
+cmap\xE07B+\xC6head*6s\xD7\xD3hhea4$U\xEBhmtxx\xD0maxpPPname\x94I\xD3g;ipost \xFF\x863x\x9Cc`d``\xE2\xC4־%\xF1\xFC6_\xB8\x99_E\xAEh\x9D.G\xA6\xA1\x80\x83\x81        D.\xD1        :x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ\x98_Y9j\x802 \x8Ch}x\x9C\xA5\x90\xBDjA\x85\xCF\xF8i\x82\x85e\x8AiZ\xAC\xCCX(\xDA\xC1&quot;hk\xBFY\xD4g\xD9 \xDF%\xE4!\x92*m\xCA&lt;G\xCE\xCE)BwX\xEEw\xEF\x9C;\xF7\xC05\x9E!P\xB7XE\xE8\xE11r\x83\x9A\xB7\xC8Mhq\xB9\x85\x9Ex\x8A\xDCFW\xBCG\xEE\xA0\xD7\xE8R)ZW\xF4\xEECV\xC5}\x94\x91\xB8\xC1K\xE4&amp;\xF0\xB9\x85\xBE\xF0\x91ې\xE25r\x87\xF1O,`Q\xE0\xCCW \xF6\xC8\xE1!\xF9f\x86\xED
+c\xD2)or\xDA\xBD9\x8F\xA5ʄ\xB8!\x81\x85-Υ\xD9\xE7^\xF6\xB3\x81)=\x96\xEB\xD4\xE7땜;g3\x93zc)s\xCCH\x99{@B\xAA\xAA;\xBEl\xB0\xA3w\xA27e\xD5\xEA\xC0\xF94;$\xDE.7;*\xA6J1\xFAg\xCAO\xF12t\xE6\x83-9\xDF6L5\xA4Tb\xC6\xFF\xBF\xBD\xD4j\x8D        u\x9A~\xF2\xBD,\xED\xD1/m\xB9\xDF\xCA\xD1Pə\xFC\xADk\x86\xF5$\xD1*\xA9\x96r\xF16\xA3dJ\xBDv\xA4: U\xB7\x8AͶt\\xB5TJ\xAB\xEA\x97V\xFCX\x80x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd-.IL\xCE\xD6-\xC9/(\xCE\xC8L+)-\xB0400``db`d\xD0\xFE\xC1\xCF\xF0C\x9A\xF1\x87 \xD3Y\xE6,=&lt;\x8C\xDD@\xC0*ð\x82_\x86\x81A@\x86a\xB5\xA0 \x87 \xC3e!f\x905+?\xE7\xFC\x82ʢ\xCC\xF4\x8C\x8DdM#C3\xDFĒ _\xC7\xE2\xE2\xFC\xE4\xCCĒ\xCC\xFC&lt;l\x96bu02012*)w\xEF\xFDqj/\xE3޽?\xB7\xECe\xDE+\xF6K\xE2\xA7\xDE?        \xB6\xBD\xFE\x88\xFE8\xF5s˟S\xEC||\xBFjD\xBAE\xBBy\xB8~E\xB2x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\x
 D6\xE9r+:\xFFx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJkbJ)k\x90h \xF14(+c\xC3\xBA\xB8v\xCC(\xCA\xC0\xF0\xF7*\x90m\xC3\xC0\xC1 \xA4U\x804#\xD8F0D\xE5\xA91\x83\x83\x83NWAT\x8AU\xA8\x80Y|`s!\xA20        \xF8j \xC4\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstretchstackbottomshiftdown3000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-bottomshiftdown3000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-bottomshiftdown3000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-bottomshiftdown3000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+wOFFOTTO\xE4         CFF X\xF10\xFFǜ\xE5FFTML{lZMATHhnX\x8BOS/2X@`\xF81|cmap@JC\xE2fhead,6 ^;\xB7hhea4$=\xEBhmtx\xD8
+
+\xD0maxpPPname\x98erlk+\x8Dpost@ \xFF\x863x\x9Cc`d``\xE2y\x8C\xAC6\xF1\xFC6_\xB8\x99_E\xAEh\xFF.E\xA6\x99_\x80\xC59\x98@&lt;s
+6x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4
+ Ƞ\x81AAq\xF3  +I+(!#%\xB3x\x9C\xBD\x91\xCFJ\xC3@ƿ\xA4\xC0\x83\xA2\xF8{Q\xDAC\xCAn \xA5\x84\xA1i\xC1S\xEFi\x9A6\xA1\xB4[vJ}\x9F»'\xDF³\x8F#\xF8%Y&lt;        
+B3$\xF3\x9B\xCD\xCC\xC7\xCC,\x80 \xBC&quot;@\xF5\xDC`\xEA9\x80\xC0\x9B\xE7\xD7\xF8\xF4\\xC3]\xF0\xEC\xB9\x9E{n\xE02|\xF4\xDC\xE4\xF9 3\x83\xFA\xA3\x87\xB2\xAA\xE0#\xCF!n\xF1Ṇ\xA7\xE0\xCAs\xA3\xE0\xDDs\x83:\xCFM\x8C\xC2\xF7\xD0\xD8\xE3H\x95kdp첅m\xFA.$\xFA\xA4b\xFE\xC9觌ư4ͬ\xBC&lt;\xCF\xC9;\xE0^\xEF\x8F&amp;_gN\xB4\x92\xB6\xE8J\xD5\xB3\xD8e\xB3\xA9[\xAB\x93&lt;v\xB9f\x9Ae\x85A\xCAoB\xC5&quot;\x8AIDXP\xC7\xD14\xB6&lt;Ϩ\xBBb\xB4d|\xA0~\x8F\xDD\xEBL\xEA\x92̺8\xD9D \xED\x9C\xDE\xDA,_\xB9\xA5&gt;\xECzR2\xE3\x8FB?\xD6N\xCAa\\xE9+W\x92\x96\x8B\xE80_`\xC8\xF7\xBF\xEDW*
+V(\xC6\xD1\xF7\x9A1\xD1;7\xD1f\x9D\x8AnG\x8A\xA1\xF8mP\xA6\xA8A\xA4dT\xEC\xFA$\x8B\x9DS\xDEP\xA2\xBAqQ\x96\xA9r9\xD5h\x98\xA7\xC6򖅔\xAAStx\x8A\xAE\xBE%\xB4\xAB\xF5x\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98'\xFD\xFF\xE4\x83\xE9\xFF\xEF@\xD5#\x82\x83\x92\xEAl        \x9Bx\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9C\x85O\xCDJ\xC3@\xFC\xBEfm\xC1\xC6\xD4[\x82\xAC\xF5\xA2\x87\xCAV\xA9w\xF1j\xC1W\x88\xF1'A\xEC\x96\xECB\xF6\xEEa}\x9C^\xF7\xF2^|\x8D\xCDJ\xB7\xBE@\x87f.3\x84&quot;\x9E        Y\xBE\xCA,2\xCD&gt;\xC6\xCF\J\xFE)\xF2\xE2M\xBE\xF0\xE5\xFC\x961\xD8\x84\xB1큥hOZ\xF64\xB01\xF9        Qk\xA7\x9Cڣ\xF0ۣ\x87\xFE\xFAF\x8F@\xB6\x95.0x\x82EZ\x96|Y\xEF\xB9|\xE0\x8B\xAF\xFF\x90\fW\xC9+\x9B\xDC%\xB3T\xE6\xB3\xC7\xE4^\x9E\xA9,\xF8|ל\x9Ds=\xBF!@&lt;\xBF\x98jc+\x83\xC6\xD4+\x98\x91\x8B\xEB\xEBu\xDC6M3\xB4U\xBDj\xAAN\xF9\xE8h\xB2}\xB3V\xEDȩ#=\xD4\xE1\xBES\x9Ea\xE8T\xD7\xDB\xC1g\xE8j\xFBx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6\xEF
 R+&lt;:]x\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\x84ɽ\x8F:#\x88Z0+c\xA3ˣ\xB3\x8DP1\xA3(\xC3߫@\xB6+\x83\x90VҌ`\x95\x8C`\x88\xCASb!        9\x9C\xAE\x82\xA8\xAAP\xB3\xF8\xC0\xE6BDa4?k \xA1\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstretchstackgapabovemin7000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-gapabovemin7000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-gapabovemin7000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-gapabovemin7000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+wOFFOTTO\xD4 \xC8CFF L\xEE$\x91jcFFTM&lt;{lZMATHXnX(+OS/2X@`\xF81|cmap\xF4@JC\xE2fhead,6 ^;\xB7hhea4$=\xEBhmtx\xC8
+
+\xD0maxpPPname\x98[6P\x97post4 \xFF\x863x\x9Cc`d``\xE2M)\x8C\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1\xFE]\x8AL3\xBF\x8Bs00\x81xB\xEE -x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4
+ Ƞ\x81AAq\xF3  +I+(!#%\xB3x\x9C\xB5\x91\xBDj\xC30\x85\x8F\x9C\xE8\xD2\xF6B\xD1RH)C\xE2f \x81 %Y\xB3+\xC6\xD8&amp;\xC4
+\xB6䉺\x94\xBEG\xA3c\xA1K鱭N\x85
+\xB1\xB0\xF4I:\xE7\xEA\xEA
+\xC05^ \xD0~\xF7X{\xE0\xD9s\x80\xBC{\xEE\xE0A&lt;w1o\x9E{\xB8+\xA4\xE7&gt;\xC1\x9EJѽ\xE2\xEC\xB1q\xD5,\xA1\xF4\xE0\xAF\x9E;\\xFD\xF0\xDCE$\x9E&lt;\xF7 ŧ\xE7&gt;\xA2@c        \x8B#\xCE\xD4\xE7H\x91\xC1Ab\x88#\x8E(hLI\xEEdל-P\xB1Y\xAA\xF2f='\xC0\xD2\xCFe\x9EfN㑜(=\x95\xE3\xB2\xCDZ.\xAA\xCAƹq\xB9\xA5\xAC\xA2\xA3D\xC2&gt;f\xC4zfH{\x84&lt;\xDF0\x83㝨80r\x81\xB3\xA8*W&amp;.\xCE*g\xE2}\x98\x9A\xA3\xD9\xD9Srȋ\x99R\xDC\xFD\xC3\xFCC\xBFj\x92v\xCDXҝ4S+1\xE7\xFF\xDF4[\xB7\xE6Ä\xEC\xFB\xEF2be \xB7\xB2e\x9A\xC8\xC9Xɹ\xFC\xEDB\xDC\xD6Q\xA8UX\xD7\xF1bE\xDB\xD2P2\\xFB\x82\xB2\xB1\xE8\xA6\xEDU\xB0Mʊ\xAF&amp;\x95\xD2\xE3:\xABKe\xF22$\x9A\x92x\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98'\xFD\xFF\xE4\x83\xE9\xFF\xEF@\xD5#\x82\x83\x92\xEAl        \x9Bx\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94-.)J-I\xCE(.IL\xCE\xD6MO,HL\xCA/K\xCD\xCD\xCC3700``db`d\xD0\xFD\xC1\xCF\xF0C\x86\xF1\x87,\xD39\xE6,=&lt;\x8C\xDDݿj~հ\xCA0\x9C\xE3\x97
 a`\x90a\xB8,(\xC3 &amp;\xC3\xC8'\xC4\xC0\xD2\xC2\xCD`\xC0\xE0Ð\x91XT\x94_^\x94\x99\x9EQ\xE2\x9C_P        f(h$k*\x9A)\xF8&amp;\x96d\xF8\xFA(8\xE7'g&amp;\x96d\xE6\xE7\xE1s
+^g#c;3#\xA3\x92\xB2i\xF7\xDE\xA7\xF62\xEE\xDD\xFBs\xCB^\xE6\xBDb\xBF$~\xEA\xFD\x93`\xDB\xFB\xE7\x8F\xE8\x8FS?\xB7\xFC9\xC5\xCE\xC7t&lt;#3w\xB3\x80|񯆍\xEFW\x8DH\xB7h7ׯ \xE2\xE1\xF9U\xC3+\xA4x\xB9e-x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6\xEFR+&lt;:]x\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\x82+\x81C\x9DD-\x98\x86\xB1\xD1\xE5\xD1\xD9F\xA8\x98Q\x94\x81\xE1\xEFU ۆ\x81\x83A H\xABiF\xB0JF0D\xE5\xA91\x83\x83\x83N\xD7CT\x8AU\xA8\x80Y|`s!\xA20        \xF7P Q\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstretchstackgapbelowmin11000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-gapbelowmin11000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-gapbelowmin11000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-gapbelowmin11000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+wOFFOTTO\xD4 \xDCCFF L\xEF'\xC7Nx\x9BFFTM&lt;{lZMATHXnX7\xCBOS/2X@`\xF81|cmap\xF4@JC\xE2fhead,6 ^;\xB7hhea4$=\xEBhmtx\xC8
+
+\xD0maxpPPname\x98YEx4B\xB2post4 \xFF\x863x\x9Cc`d``\xE2\xEF        \xCBb\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1\xFE]\x8AL3\xBF\x8Bs00\x81xZ0 \xAFx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4
+ Ƞ\x81AAq\xF3  +I+(!#%\xB3x\x9C\xB5\x91\xD1j\xC20\x86\xFFVl\xC3r3PX%\xF1B\xA4\xB0 \xBCz\xEB}-\xA5-j#i\x86\xF8Rc\xB2G{\x85\xEDo\xBCl\xC3\x9A/9\xE7?\xF9s\xE0\xAF\xD0~Xy0\xB8\xEC\x87\xE8\xE3\xD3sq\xF0⹋A\xF0ṇ~\xF8\xE8\xF9\x83\xF0\xCC̠{\xCBճS5 \x86\xF1B\xE0\xDDs_\x9E\xBB\xAC\xFF\xE6\xB9\xDEy\xBEA&gt;a\x8D#άR&quot;GA\x9D\xC0)F\x9C'\x90P\x98\x92\xD6H)8\xAF\xB8\x9A\xA3\xE6\xD0\xCC*\xDD~I\xAE\x80\x85&gt;\x9EM\x99V ӑ\x98H5\xEB\xC4땘׵N\xCBĖ\x9Ai5\xFF)+6\xAB\x84\xB4C\xC4\xF3z\xD92\xB6g\xC5\xAC\с\xA2\x8Ff\xA0\xB6&amp;\xB3iQ\xDB$\xDDEyr\xDCf{}:\x94\x95RR2\xFC\xA7\xFE\xA7d\xE9\xAC[7\xC8ܵ\xC7Ll\xAD\xF8\x87\xD9V\xAF0cn\xB3]ډ\xA5\xAE\xECR\x9B&lt;\x93\xB1\xB1\xF8\xF5Z\x8C\xABY\xA4d\xD44\xF4\x9A\xDD\xDBPiX\xB1}M\xE14ʵ\xA2\xBD6\x99\xA9\xF9\x82BJ5n\x8C]\xD1\xCC7\x91M\x9C&amp;x\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98'\xFD\xFF\xE4\x83\xE9\xFF\xEF@\xD5#\x82\x83\x92\xEAl        \x9Bx\x9Cc`f\x83\xFF\xCD F@\x8
 A\x91+(U\xB9x\x9Ccd`aa`dd\x94+.)J-I\xCE(.IL\xCE\xD6MO,HJ\xCD\xC9/\xCF\xCD\xCC34400``db`d\xD0\xFD\xC1\xCF\xF0C\x86\xF1\x87,\xD39\xE6,=&lt;\x8C\xDDݿj~հ\xCA0\\xE4\x97a`\x90a\xB8&amp;(\xC3 &amp;\xC3((\xC4\xC0\xD2\xC2\xCD`\xC0\xE0ː\x95XT\x94_^\x94\x99\x9EQ\xE2\x9C_P        f(h$k*\x9A)\xF8&amp;\x96d\xF8\xFA(8\xE7'g&amp;\x96d\xE6\xE7\xE1u ~\x87#c;3#\xA3\x92\xB2i\xF7\xDE\xA7\xF62\xEE\xDD\xFBs\xCB^\xE6\xBDb\xBF$~\xEA\xFD\x93`\xDB\xFB\xE7\x8F\xE8\x8FS?\xB7\xFC9\xC5\xCE\xC7t&gt;#3w\xB3\x80\xFC񯆍\xEFW\x8DH\xB7h7ׯ \xE2\xE1\xF9U\xC3+\xA4x\xA5de\xDFx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6\xEFR+&lt;:]x\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\xAA\x90\xD6,\xEA\x8C j\xC14\x8C\x8D.\x8F\xCE6BŌ\xA2 \xAF\xD96  b@ZH3\x82U2\x82!*O\x88y\x84$\xE4p\xBA\xA2R\xA8B\xCC\xE2\x9B \x85\xD1H\x89\xF9 \xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathstretchstacktopshiftup5000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-topshiftup5000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-topshiftup5000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-topshiftup5000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+wOFFOTTO\xD0 \xB8CFF L\xEB!Fc$FFTM8{lZMATHTnX [OS/2X@`\xF81|cmap\xF4@JC\xE2fhead,6 ^;\xB7hhea4$=\xEBhmtx\xC4
+
+\xD0maxpPPname\x98['y&quot;3\xBCpost4 \xFF\x863x\x9Cc`d``\xE2\xEF\xD1s\xBD\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1\xFE]\x8AL3\xBF\x8Bs00\x81xT\xBD \x8Fx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0\xC4
+ Ƞ\x81AAq\xF3  +I+(!#%\xB3x\x9C\xB5\x91\xBFj\xC30\xC6?9\xA0K\xE9\xD0-\xB4\xD2\xC1\xC1
+Ąl!\x90\xA1$k\xB6\xC68\xB1DFR\x86\xBCL\xA0C\xA3\x8F\xD0'\xE8\xB4/\xD0϶\xE8\xD0!C!\xF6\xFDN\xF7\x9D|wp\x8B7\xB4\xCF\xEB\xC0\xBC\x8E\xA8\xF9 \xDC\xC1L\x81\xBB\x88\x8F\xC0=\xDCE\xF7\x81\xFBD\xCFT\x8A\xEE+\xBD\xA7&amp;\xABf\x816p\x84\xBC\xEE\xA0\xC2w\xE0.R\xF1\xB8)\xBE\xF7\x91FC,a\xA8=\xF3\x8D=JxH\x8C\x90\xE3\x91v\x82\x8A\x90\xD8 c\xA4\xA4]\xD3[\xC0q\xAAt\xB3\xAF\xC9G`i\xAA\xB3\xD5\xFB\xD2\xCBQ\xFE('\x89J\xE5&amp;\xF3\xE5f-Ι\g^\xCA3,
+~s\x9EX{逘T\xD7⸫\xB1\xA3w\xA27e+\xF5\x82\xF3\xB6\xF0y\xE9|\x96bo*W\xEA\x9D?U\xD3$a\xF0b\xE6_\xF1\xAA)\xD77ֲ\xE9\xA2iuL\xA9Ĝ\xEF\xFF
+lsf\xD4)\xFA\xF1\xEF\xF8\xB02G\xBF2v_\xC8\xC98\x91sy\xA1F\xD5,VI\\x8F\xEF:\xB3\xDA\xF2&lt;\xCB\xCC\xF6\xD6d\x93\xA1\x9A\xF6\xDB6\xB0-\xAC\xE3M\xC9$Q㺤\xAB\x94\xF1\x8C\x98x\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98'\xFD\xFF\xE4\x83\xE9\xFF\xEF@\xD5#\x82\x83\x92\xEAl        \x9Bx\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9C}\x8F\xC1J\xC3@E\xDFk\xC6
+&amp;\xA6*\xB6d1JЍ.*S\xA1ݗ.k?&quot;\x84\xB6        \x822#&quot;\xCC\xDE\xC5\xF89\xDD\xCEč\x9F3Bq\xEA\xF4r\xF7n\x9C\x8B@ &quot;\xB2^˼2\xCB_ǒW\xA2(7\xF2\xBD\x9A2\xC6{\x800\xB6\xB0\xEDM\xCF\xDE6!\xDFj\xED\x94S'~\xE0\x82\xC2\xEF%\x85\xC5\xF0
+\xC8\xE1%K\xD8du\xCD?\xEAr[\xC8\xAF&gt;\xFFK\xFA\x90?\xA6\xCFl2KW\x99,V/\xE9\\x9E\x97\x99,\xF9\xDB\x92c\x90^\x88_ \xDE\xDDO\xB5\xB1\x8DAcڝ        \xCC\xC8%\xED\xD3&gt;雮ڦ\xDDu\xCDi{t\xF4hrذW\xFDةk=\xD4љS\xDEQ\xE4T\xE8\xE3\xFCקd\x81x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6\xEFR+&lt;:]x\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc\x83puF\xB5`\xC6F\x97Gg\xA1bFQ\x86\xBFW\x81l1 \xAD\xA4\xC1*\xC1\x95\xA7\xC4&lt; B  r8]Q)T\xA1f\xF1\x81ͅ\x88\xC2h$\xB7 y\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathunderoveraccentbaseheight4000overbarextraascender3000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+wOFFOTTO
+\xC8CFF x\xFE~&amp;b\xEF\xFBFFTMx{l&gt;MATH\x94sX(+OS/2X?`2\xC2cmapGR\xC5\xCAhead,6 ^;\x9Bhhea4$=\xEBhmtx \xD0maxpPPname\x98\x80ԻK4\xC6post` \xFF\x863x\x9Cc`d``bK\xF3\xFB\xF1\xFC6_\xB8\x99_E\xAEh\xFFNG\xA6\x99_\x80\xC59\x98@&lt;:#
+\xF1x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC1p\x82\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 ̜ 0\xA0̀\x98nM``ȁ\x8A0\xC2\xE5\x80\x90\x97gx\x9CՓ\xBDN\xC30\x85O\x9A\xB6 Bbc\xF2\x82D\x87TvAPu\xAB*u\x80\x96        u`K\x83\xD5d F\x8E[\xC1\xC2\xCB\xC0\xC0\xC4C\xF1&lt;'\x8E\xCBH\x8D\xDDϾ\xF7_\xFF\xD8\xC7;&quot;4\xDF1f\x81#\\xE0#p I\xB4        \xE3\xA6u\xB8\x8D\x8B\xF80p\xF1}\xE0.\xC7?\xB5\xF7ػ\xF4Y5G(a\xB7p\x8E\xF1\xBDn\xA3l\xBD\xEE@\xC4W\x81\xBB(\xE3gL`\xF0\x80'\xAAX!\x87\x83\xC0        2\xF4h\x90P8'͑ғ\xD3\xCE\xD8\xA3b3\x8C*\xFCxA.\x81\x89yx\xB2\xC5*w\xE2$뉁T\xE7b\x9E\xBA|&gt;\xE3\xAA2Y\x91\xBA\xC20l\xCD\xD8;h\xCEh\xB0\xF16\xA1JƦ\xE9qX\xB2W\x91s\xFEۚ\xCEXIݒ\xEF\x9C:ʒ\xE9\xB5\xE4:\xA7Qh\xB4OC\xD6坶f\xA3m\x92f\x99.\xDD2\xADt\xAE\xEB2Ϥ\x94I\xEDY\xA6V?:\x9B\xA6}J\xFE\xB2\xA6V2\xF5\xFB뼵\x9C]\xFB\xB3\xE9SI`\xC4\xFFw\xB4\x99Sa\xC8\\xE5\xB6\xF7SS\xBA\xA9\xB1+-})F\xE2\x97{\xCFL5L\x94L\xEA;\xB4;f\xE1u\x
 AA\xF0\x84WS\xFE\x98\x9Am\xC3BۊO@H\xA9\xFA\xF52wfi_n\xD3;x\x9Cc```f\x80`F\xF0\xF2\xC1| \xCD\x84L@Z\x81aӍ\xFF\xFF\xAC\xFF\xFF\xFDՆ\xEAF6d.V@H\x9E怉F\xE62C(\xEC8 \x8Ex\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xB4(\xCDKI-\xCA/K-\xD2MLNN\xCD+IJ,N\xCDH\xCDL\xCF(1100\xD0\xC9$%\xA5V\x94%&amp;U%\x99t\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kcw\xF7\xAF\x9A_5\xAC2\x8C\xC2\xFC2 2\x8CR\x822 b2\x8CB \xCC -j \xB1 S\x9C\xF3 *\x8B@v(h$k*\x9A)\xF8&amp;\x96d\xF8\xFA(8\xE7'g&amp;\x96d\xE6\xE7\x91\xE92r=\x8C X\x95\x94Mݻ\xF7\xFE8\xB5\x97q\xEFޟ[\xF62\xEF\xFB%\xF1S\xEF\x9F\xDB\xDE?D\x9C\xFA\xB9\xE5\xCF)v&gt;&gt;\xA0O\x81\x98\xB9\x9B\xE4\xE55lXD~Ոt\x8Bv\xF3p\xFD\xAA&quot;\x9E_5\xDC@\x8A5\x88x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6\xEFt+;\xAEAx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\xF80'\xA0\xB4&amp;j\xA7100\xC6\xA1\xCE\xA2L\xC3\xD8h\xF2\xDC;\x90\xD42 \xA9\x85bFQ\x86\xBFW\x81l1 
 \xAD\xA4\xC1*\xC1\x95\xA7\xC4&lt; B  r8]Q)T\xA1f\xF1\x81ͅ\x88\xC2h$\xE7m P\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathunderoveraccentbaseheight4000overbarverticalgap11000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+wOFFOTTO
+\xB8CFF x\xFE{4\xA8wFFTMx{l&gt;MATH\x94tXGkOS/2X?`\xFA\xC2cmapGR\xC5\xCAhead,6 ^;\x9Bhhea4$=\xEBhmtx \xD0maxpPPname\x98~\xC5\xD3\xE9*post` \xFF\x863x\x9Cc`d``\xE2\x97\x8E\xB8\xC5\xF3\xDB|e\xE0f~a\xB8\xA2\xFD;\x99f~\xE7``\xF1m +x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xA0̀\x98n0\xBF\xB2r\xA0&quot;\x8Cp9 d\x84W\xDCx\x9CՓ\xC1J1\x86\xFF\xED֢\xF1\xE65\xA1\xB7$\xA5\xF1&quot;&quot;\xF4 \xEDI(^\xD3m\xE8.,M\xCDF\xC1W\xF1\xE0ѣ\xCF\xD4G\xF1\xDFl\xEA]A\xA1;\xECΗdf2\x99\xCC8\xC5'\xB4\xCFf\x91L\xB0\x8B\xDC\xC1e\xF29\xC5Cg\xB9\x8BIz\xF9g\xA9\x8E\xDC\xE3\xFC\x8E\x96I\xF7\x84\xA3\xFB\xE0\xD5p\x82
+.r\x8F\xC9y\xE4\xC9{\xE4.\xAA\xCE[\xE4#\x88\xF4&amp;rU\xEAp\x8B-^\xA5\xC4&lt;\xFA\xC81\xA0AB1k\x8194W
+\xEAG\xB7\xA8)\x96Ve\x98/\xC9\xE0\xCEn_]\xB9.\xBC\xE8\xE71\x92j&quot;\xE6\xDA󙸭k\x9B\x97ڗ\x96fϴ]\xC1pG\x8B\x97\xA03F\xC9)\x86+K\x8Ejr\xC1w\x9FӘ\x994\x92}\xFB4V.r\x93A\xCEqEk\xCD\xD3(Jk\x8F\xE7\xCD\xCA8\xFBb\\xA6\xF3\xDCl\xFCRצ0M\x92c)e֬,\xB5\xE3ח\xB9\xAE\xD6z\xAB\xE7\xF1w        \xFD,\x8Di\xA8\xAC\xDA1\x98        \xB72d \x81k\xBE\xFFY\xCBvG\x85+z\xAA\xE0\xBF\xEFL\xED\xC6O\xAD[1Jq-~Wu:\xAA\xABLɬi\x9D\xE9\x93E\\xC7_@\x84`*\P[2,\x8C\xAB\xD9\xF6BJ5l\xCEx\xE7\xFA\x9AT\xFA/x\x9Cc```f\x80`F\xF0\xF2\xC1| \xCD\x84L@Z\x81aӍ\xFF\xFF\xAC\xFF\xFF\xFDՆ\xEAF6d.V@H\x9E怉F\xE62C(\xEC8 \x8Ex\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd4/\xCDKI-\xCA/K-\xD2MLNN\xCD+IJ,N\xCDH\xCDL\xCF(1100\xD0\xC9$%ɒ\xCC\xE4Ĝ\xF4\xC4CC\xA08##\x83\xEE~\x86Ҍ?d\x98~\xC82\xFF\x90`\xE9\xE1a\xEC\xEE\xFEU\xF3\xAB\x86U\x86Q\x80_\x86\x81A@\x86Q\P\x86AL\x861U\x88\x81\xA4E\x8D!\x86a\x92s~Ae\xC8
+\x8DdM#C3\xDFĒ _\xC7\xE2\xE2\xFC\xE4\xCCĒ\xCC\xFC&lt;\xF2F\xA6w\x80\x80\x91a!C# #\xA3\x92\xB2\xA9{\xF7\xDE\xA7\xF62\xEE\xDD\xFBs\xCB^\xE6\xBDb\xBF$~\xEA\xFD\x93`\xDB\xFB\xE7\x8F\xE8\x8FS?\xB7\xFC9\xC5\xCE\xC7\xF4'#3w\xB3\x80&lt;\xFC\xAF\x86+\x8Bȯ\x91n\xD1n\xAE_5@\xC4\xC3\xF3\xAB\x86H\xF1\xBDN\x86 x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6\xEFt+;\xAEAx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\xF80'\xA0\xB4&amp;j\xA7100\xC6\xA1\xCE\xA2L\xC3\xD8P\xA0\xF5*\x86\xAC\x96I-3\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCDV\xC9\x86\xA8&lt; \xE6ab\x90`\x90\xC3\xE9*\x88J\xA0
+0\x8Bl.DF#A,j \xAF\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathunderoveraccentbaseheight4000underbarextradescender5000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+wOFFOTTO
+\xECCFF x\xFF\x84{R\xD0XFFTMx{l&gt;MATH\x94qX/\xFBOS/2X?`2\xC2cmapGR\xC5\xCAhead,6 ^;\x9Bhhea4$=\xEBhmtx \xD0maxpPPname\x98\x80\xF2=]\xA6\x98post` \xFF\x863x\x9Cc`d``\xE2nc\xAD\xAAx~\x9B\xAF \xDC\xCC/\x80&quot; W\xB4\xA7#\xD3\xCC/\xC0\xE2 L ,
+\x9Cx\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC1p\x82\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 ̜ 0\xA0̀\x98nM``ȁ\x8A0\xC2\xE5\x80\x90\x97gx\x9CՓ\xCBN1\x86\xFFa\xC0D\xC6G\xE8\xC6\x83\x82\xD8\xB6,I\x86\xA1afCM[        \xEC\xDC\xF8
+&gt;\x851n|%\x9F\xC3:%q\xAB\x89&amp;\xF4\xA49_{.=\xBD\xB8\xC4&quot;\xD4\xED\xB3\xC0\x86\xF8 \xDC\xC0M\xF48Ƣ\xB1 \xDC\xC40\xEEn\xE1*~|\x86a\xF3\x82\x9EQ\xF3\x9C\xA3{UqC\xA9\xB9\x81e$\xC7x\x8D\xDE7a\x81[q\xF8 &amp;~\xC180K\x89
+8\xB4\x91\xA3C݃D\x8A;\xD2-\xF5\x8C\xA31,Eӫ\xF4\xF3%y L\xF4\xC3\xC1\x94\x9B‰v\xDE=\x99މy\xE6\x8A\xF9L\x8C\xAD\xD5y\x99\xB9R\xD3푾k(\xAE\xA8\xB1\xF3:a\x96\x9C\xA2hqXqd\xC9\xFB\xB1\xA6&gt;+\xA9$\xF9]\xF9ҞvC\xAEfm\xC8R{܆(&lt;n\xD7\xCA\xE8\x9D2I\x96\xE7j\xEBV\x99U\x85\xAAJ\xEDK)o^eF\xED\x9D\xC9\xD6\xCA҅\xB74\xE1\xAF+\xFBq=S\xD6\xCEk\xC3\x94\xBF\xA7.s        \x8C\xD8\xFF\xFFt\xEBuS \x9F\xFA,\xC7w\x83\xA9޺\xA96%z])F\xE2\xD7\xF7\xC0\xD8t\x90\xA42\xA9^թ=\xA1\x85\xCFd\xC37&gt;_꯬&gt;&gt;,\x94\xB1\xFCBʴ[m\xF6\xC46\xF8j\xF2        x\x9Cc```f\x80`F\xF0\xF2\xC1| \xCD\x84L@Z\x81aӍ\xFF\xFF\xAC\xFF\xFF\xFDՆ\xEAF6d.V@H\x9E怉F\xE62C(\xEC8 \x8Ex\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xB4*\xCDKI-\xCA/K-\xD2MLNN\xCD+IJ,N\xCDH\xCDL\xCF(1100\xD0K'%\xA5V\x94%\xA6\xA4\x95L\x81R \x8CL \x8C \xBA?\xF8~H3\xFE\x90a\xFA!\xCB\xFCC\x82\xA5\x87\x87\xB1\xBB\xFBWͯVFI~FA1\xC6&lt;!f\x905\x86x\x86\xCE\xF9\x95E [4\x925\x8C \xCD|K2
 |}\x8B\x8B\xF3\x933K2\xF3\xF3\xC8v\xF9\x9EF\x86\x85 \x8D ,\x8C\x8CJʦ\xEE\xDD{\x9C\xDA˸w\xEF\xCF-{\x99\xF7\x8A\xFD\x92\xF8\xA9\xF7O\x82m\xEF\x9F?\xA2?N\xFD\xDC\xF2\xE7;з\x8C@\xCC\xDC\xCD\xF2\xF6\xBF6,&quot;\xBFjD\xBAE\xBBy\xB8~\xD5ϯn \xC5 ^Ԋ\x8Fx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6\xEFt+;\xAEAx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\xF80'\xA0\xB4&amp;j\xA7100\xC6\xA1\xCE\xA2L\xC3\xD8\xE8\xF2Hl\xE1$\xB5P\xCC(\xCA\xC0\xF0\xF7*\x90m\xC3\xC0\xC1 \xA4U\x804#X#\xA2\xF2T\x80\x98\x87A\x88A\x82A\xA7\xAB *E\x80*T\xC0,&gt;\xB0\xB9Q\x8D\xC7         (\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathunderoveraccentbaseheight4000underbarverticalgap7000woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+wOFFOTTO
+\xB8CFF x\xFD{K\xDA{sFFTMx{l&gt;MATH\x94sX7\xCBOS/2X?`\xFA\xC2cmapGR\xC5\xCAhead,6 ^;\x9Bhhea4$=\xEBhmtx \xD0maxpPPname\x98}\xC5H\xC2post` \xFF\x863x\x9Cc`d``\xE2˺\xDD|\xF1\xFC6_\xB8\x99_E\xAEh\xFFNG\xA6\x99_\x80\xC59\x98@&lt;6
+\xD3x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xA0̀\x98n0\xBF\xB2r\xA0&quot;\x8Cp9 d\x84W\xDCx\x9C\xD5S\xC1j1}\xEBZi/\xA5\xB7^s)(t%+\xA2\xC5K\x91\x82\x87\xA2\xA7\x82\xF4\xD7\xE0.,\xC6f\xA3\xE0\xAF\xF4\xD0c\x8F\xFD\xA6~J\xDF\xC6\xBD\xB6Ђ¼I\xDEL^&amp;\xB3.\xF1\x81\x87\xEFӀ# \xF0p\xB7\xD1K\xC01\x9E\x93\x80\x9B\xC4\xE7\x9F\xE1*V\xB7\xB8\xFEIfԼ\xA0\xF7\xE8\xA3j\xA1\x84+\xB8\x81\xE7\xE8:\xE0\xEF\xD1[\xC0M\x94\x8D׀\xCF \xE2\xFB\x80[(c\x8Bl\xB0g\x96+\xE4ph#C\x87\xB6\x89\x94\xAAfP\xDC\xC9i\xA7\xF4ƨ8 Y\x85_/\x88\xD7\xC0\x83\xD9\xECm\xB1ʝhgѓ\xE9@̔\xCBgS1\xAE*\x93\xCA\x86\xB4-\xB9Kh\x9Eh\xB0\xF36a\x96\x8CCs\xC7aA\xAF&quot;\xCE9\x8F\x9A\xFATR\x8F\xE4[tͳ!C\xAD!\xA3_\x92\xAFx\x9Fa\xE0c\xBB^jkv\xDA&amp;*\xCB\xF4\xDA-T\xA5s]\x8B\xECK)\xBF\xBDP\x96Wd\xAA\\xA9͐\xEB\xF8;A?\x931\xF1\x95u\xDEZ\xA6\xD2\xFEU\xBAL$0\xE2\xFC\xCFZNLq\xC7\xC8\xD4\xC7\
 xFB\xB3vcWZ\xF4\xBAR\x8C\xC4\xEF\xAA\xCE\xC0\xF4.IeR\xB7Ή\xF4\xC9ܧ\xAD\xC2/ |\xB2\xD4?Сd\x98k[\xB1텔i\xB7\xBE\xE3i\xDC\xEB Gb\xFCUx\x9Cc```f\x80`F\xF0\xF2\xC1| \xCD\x84L@Z\x81aӍ\xFF\xFF\xAC\xFF\xFF\xFDՆ\xEAF6d.V@H\x9E怉F\xE62C(\xEC8 \x8Ex\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd4/\xCDKI-\xCA/K-\xD2MLNN\xCD+IJ,N\xCDH\xCDL\xCF(1100\xD0K'%\x94d&amp;'\xE6\xA4'\x98\xC5\x99t\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kcw\xF7\xAF\x9A_5\xAC2\x8C\xFC2 2\x8C\xE2\x822 b2\x8C\xA9B \xCC -j 1 \x93\x9C\xF3 *\x8B@V(h$k*\x9A)\xF8&amp;\x96d\xF8\xFA(8\xE7'g&amp;\x96d\xE6\xE7\x91\xE702\xBD\x8C X\x95\x94Mݻ\xF7\xFE8\xB5\x97q\xEFޟ[\xF62\xEF\xFB%\xF1S\xEF\x9F\xDB\xDE?D\x9C\xFA\xB9\xE5\xCF)v&gt;&gt;\xA0?\x81\x98\xB9\x9B\xE4\xE15lXD~Ոt\x8Bv\xF3p\xFD\xAA&quot;\x9E_5\xDC@\x8A=j\x86\xB1x\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6\xEFt+;\xAEAx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\xF80'\xA0\xB4&a
 mp;j\xA7100\xC6\xA1\xCE\xA2L\xC3\xD8\xE8\xF2@ \x81`\xC3\xD5B1\xA3(\xC3߫@\xB6+\x83\x90VҌ`\x95\x8C`\x88\xCASb!        9\x9C\xAE\x82\xA8\xAAP\xB3\xF8\xC0\xE6BDa4\xB3a \xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathw3cimportlog"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/w3c-import.log (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,67 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-axisheight7000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/fraction-rulethickness10000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/largeop-displayoperatorminheight5000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-lowerlimitbaselinedropmin3000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-lowerlimitgapmin11000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-upperlimitbaselinerisemin5000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/limits-upperlimitgapmin7000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/lineheight5000-typolineheight2300.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-degreebottomraisepercent25-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-displaystyleverticalgap7000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-extraascender3000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-kernafterdegreeminus5000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-kernbeforedegree4000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-rulethickness8000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/radical-verticalgap6000-rulethickness1000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-spaceafterscript3000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscriptbaselinedropmin9000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscriptshiftdown6000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subscripttopmax4000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptbaselinedropmax10000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptbottommin8000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptshiftup7000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/scripts-superscriptshiftupcramped5000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-axisheight7000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-displaystylegapmin4000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-gapmin8000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stack-topshiftup9000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-bottomshiftdown3000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-gapabovemin7000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-gapbelowmin11000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/stretchstack-topshiftup5000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff
+/LayoutTests/imported/w3c/web-platform-tests/fonts/math/xheight500.woff
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsfontsmathxheight500woff"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/xheight500.woff (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/xheight500.woff                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/fonts/math/xheight500.woff        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+wOFFOTTO
+$CFF $\xCC\xD8(HFFTM\xF0{l8OS/2H@`\xD8Vcmap\xC4EJ\xE3\x80head\xF4.6 ^2\xA1hhea$$=\xEBhmtx
+
+\xD0maxp@Pname\x88&lt;F;\x87\x9E\x9Fpost  \xFF\x863x\x9Cc`d``⅂\xB5!\xF1\xFC6_\xB8\x99_E\xAEh\x82L3\xBF`\xFC\xA48\x98@&lt;H \xB9x\x9Cc`d``~\xC1\xC0\xC0\x90&amp;AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2 \xAC\x9C 0\xC0Ȁ*\x98_Y9\xC8j\xBF         d{Mx\x9C\x8D\x90\xCBJ\xC3@\x86\xFF\xE9M\xECB\\xF4Dl-3\x81\x96\xDA]\xA9d!\xA9 ݇\x93@\xE9\x94I\x8A\xF6+ܸ\xF2\
+\xBE`7\xFE\x99\x8C\xBA4C\xE6|\xE7~\xCE8\xC3\xEA\xEF\x91g\x81.\x9E=7p\x827\xCFM\\xE1蹅\xAE\xB8\xF6\xDCƹx\xF0ܡ\xFD\x85\x91\xA2uJ\xED\xD6eU,Ѓ\xF5\xDC`\xDFW\xCFM\xDC\xE1\xDDs =q\xE1\xB9+)n&lt;wh\xC4;X%G\x8A %$\xFAXc@@AcBZ&quot;\xA6'\xA3\x8C\xA8\xCDQ\xF0F\xE5Ξ\x93\xB7\xC0\xC2\xEC6O\xB3R\xF6\xD7(=\x91˸̖\x91\x9C\x85Y\xE7q\x99\x86=\xB1N\xF2\xDDm\xCC\x8A\xC6,\xA92NJ|Ow\x8A=6,n\xA9&amp;\xE9~Bצt\xD22&quot;q#\x8E\x98.1\xE3\xFF[\xE1ڣ1Ő\xB7\xE2\xFD\xB5B\xB3-Cc\xD3D#%g\xF2g*z:\xD4jX\xED\xF0\x8F\x81Wt[\xBEH\xFD\xD2h7X=V\x89-\xB8\xBBTJ\x8F\xEB\xFF]\xF3\xEAZ\xBAx\x9Cc```f\x80`Fp\xF2\xC1|+ \xCD\xA4\x98*\xFE\xFF\xF2\xC1\xF4\xFF\x87\xFF\xBB\xA0ꁀ\x91\x8D\xC1\xC1ɓ \x98hd.\xA9=J        bx\x9Cc`f\x83\xFF\xCD F@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xE4\xAE\xC8H\xCDL\xCF(150``db`d\xD0\xFD\xC1\xCF\xF0C\x9A\xF1\x87 \xD3Y\xE6,=&lt;\x8C\xDDݿj~t\xB0\xCA0\xF4\xF0\xCB00\xC80L\x94a\xE0\x93a8%\xC4\xC0 Ң\xC6`\xC0`\xE5\x9C_PY2IA#YS\xC1\xC8\xC0\xD0
 L\xC17\xB1$\xC3\xD7G\xC1\xB1\xB88?93\xB1$3?a\x92\xB5@\xC0\xC8\xC9\xC0\xCCȨ\xA4lܽ\xF7ǩ\xBD\x8C{\xF7\xFEܲ\x97y\xAF\xD8/\x89\x9Fz\xFF$\xD8\xF6\xFE\xF9#\xFA\xE3\xD4\xCF-N\xB1\xF3\xF1-(\xFB\xD1Q\xCE\xD8\xCDrӿ6\xBE_5&quot;ݢ\xDD\xDD?:\xBAٺy\xB8\xF5/Gtx\x9Cc```d\x82\xCB&quot;\xEA\xF9 \xFA\x8A\xF6\xF7'0@`3\xE8\xE8
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacesecurity_location_0expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/security_location_0-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/security_location_0-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/security_location_0-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+Access location object from different origins doesn't raise SECURITY_ERR exception
+
+
+PASS Accessing location object from different origins doesn't raise SECURITY_ERR exception 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacesecurity_location_0htm"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/security_location_0.htm (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/security_location_0.htm                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/security_location_0.htm        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,27 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;title&gt;Location interface Security&lt;/title&gt;
+    &lt;link rel=&quot;author&quot; title=&quot;Microsoft&quot; href=&quot;http://www.microsoft.com/&quot; /&gt;
+    &lt;link rel=&quot;help&quot; href=&quot;https://html.spec.whatwg.org/multipage/#security-location&quot; /&gt;
+    &lt;meta name=&quot;assert&quot; content=&quot;access location object from different origins doesn't raise SECURITY_ERR exception&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;/head&gt;
+  &lt;body&gt;
+    &lt;p&gt;Access location object from different origins doesn't raise SECURITY_ERR exception&lt;/p&gt;
+    &lt;div id=log&gt;&lt;/div&gt;
+    &lt;script src=&quot;/common/get-host-info.sub.js&quot;&gt;&lt;/script&gt;
+    &lt;script&gt;
+      var runTest = async_test(&quot;Accessing location object from different origins doesn't raise SECURITY_ERR exception&quot;).step_func_done(function() {
+        var frame = document.getElementById('testframe');
+        frame.setAttribute('onload', '');
+        frame.contentWindow.location = get_host_info().HTTP_REMOTE_ORIGIN + &quot;/&quot;;
+      });
+    &lt;/script&gt;
+    &lt;iframe id='testframe' onload=&quot;runTest()&quot;&gt;Test Frame&lt;/iframe&gt;
+    &lt;script&gt;
+      document.getElementById('testframe').setAttribute('src', get_host_info().HTTP_REMOTE_ORIGIN + '/');
+    &lt;/script&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsershistorythelocationinterfacew3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -57,4 +57,4 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/scripted_form_submit_assign_during_load-1.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/scripted_form_submit_assign_during_load-2.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/scripted_form_submit_assign_during_load.html
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/security_location_0.sub.htm
</del><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/security_location_0.htm
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindoww3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -15,4 +15,4 @@
</span><span class="cx"> None
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/window-security.sub.html
</del><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/window-security.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindowwindowsecurityexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/window-security-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/window-security-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/window-security-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,129 @@
</span><ins>+
+PASS Window Security testing 
+PASS A SecurityError exception must be thrown when window.applicationCache is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.devicePixelRatio is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.document is accessed from a different origin. 
+FAIL A SecurityError exception must be thrown when window.external is accessed from a different origin. assert_true: window.external should exist. expected true got false
+PASS A SecurityError exception must be thrown when window.frameElement is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.history is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.innerWidth is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.innerHeight is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.locationbar is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.localStorage is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.menubar is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.name is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.navigator is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onabort is accessed from a different origin. 
+FAIL A SecurityError exception must be thrown when window.onafterprint is accessed from a different origin. assert_true: window.onafterprint should exist. expected true got false
+FAIL A SecurityError exception must be thrown when window.onbeforeprint is accessed from a different origin. assert_true: window.onbeforeprint should exist. expected true got false
+PASS A SecurityError exception must be thrown when window.onbeforeunload is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onblur is accessed from a different origin. 
+FAIL A SecurityError exception must be thrown when window.oncancel is accessed from a different origin. assert_true: window.oncancel should exist. expected true got false
+PASS A SecurityError exception must be thrown when window.oncanplay is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.oncanplaythrough is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onchange is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onclick is accessed from a different origin. 
+FAIL A SecurityError exception must be thrown when window.onclose is accessed from a different origin. assert_true: window.onclose should exist. expected true got false
+PASS A SecurityError exception must be thrown when window.oncontextmenu is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.oncuechange is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.ondblclick is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.ondrag is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.ondragend is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.ondragenter is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.ondragleave is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.ondragover is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.ondragstart is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.ondrop is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.ondurationchange is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onemptied is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onended is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onerror is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onfocus is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onhashchange is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.oninput is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.oninvalid is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onkeydown is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onkeypress is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onkeyup is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onload is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onloadeddata is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onloadedmetadata is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onloadstart is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onmessage is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onmousedown is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onmousemove is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onmouseout is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onmouseover is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onmouseup is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onmousewheel is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onoffline is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.ononline is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onpause is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onplay is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onplaying is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onpagehide is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onpageshow is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onpopstate is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onprogress is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onratechange is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onreset is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onresize is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onscroll is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onseeked is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onseeking is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onselect is accessed from a different origin. 
+FAIL A SecurityError exception must be thrown when window.onshow is accessed from a different origin. assert_true: window.onshow should exist. expected true got false
+PASS A SecurityError exception must be thrown when window.onstalled is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onstorage is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onsubmit is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onsuspend is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.ontimeupdate is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onunload is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onvolumechange is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.onwaiting is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.pageXOffset is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.pageYOffset is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.personalbar is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.screen is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.scrollbars is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.statusbar is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.status is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.screenX is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.screenY is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.sessionStorage is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.toolbar is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.alert is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.clearInterval is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.clearTimeout is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.confirm is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.getComputedStyle is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.getSelection is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.matchMedia is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.moveBy is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.moveTo is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.open is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.print is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.prompt is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.resizeTo is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.resizeBy is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.scroll is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.scrollTo is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.scrollBy is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.setInterval is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.setTimeout is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.showModalDialog is accessed from a different origin. 
+PASS A SecurityError exception must be thrown when window.stop is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.closed is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.frames is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.length is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.location is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.opener is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.parent is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.self is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.top is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.window is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.blur is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.close is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.focus is accessed from a different origin. 
+PASS A SecurityError exception should not be thrown when window.postMessage is accessed from a different origin. 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowsersthewindowobjectsecuritywindowwindowsecurityhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/window-security.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/window-security.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/window-security.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,203 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;HTML Test: Window Security&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Intel&quot; href=&quot;http://www.intel.com/&quot; /&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://html.spec.whatwg.org/multipage/multipage/browsers.html#the-window-object&quot; /&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://html.spec.whatwg.org/multipage/multipage/timers.html#timers&quot; /&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://html.spec.whatwg.org/multipage/multipage/webappapis.html#atob&quot; /&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://html.spec.whatwg.org/multipage/#windowsessionstorage&quot; /&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://html.spec.whatwg.org/multipage/#windowlocalstorage&quot; /&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://html.spec.whatwg.org/multipage/multipage/browsers.html#window&quot; /&gt;
+&lt;link rel=&quot;help&quot; href=&quot;http://dev.w3.org/csswg/cssom/#extensions-to-the-window-interface&quot; /&gt;
+&lt;link rel=&quot;help&quot; href=&quot;http://dev.w3.org/csswg/cssom-view/#extensions-to-the-window-interface&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;/common/get-host-info.sub.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+var t = async_test(&quot;Window Security testing&quot;);
+
+function fr_load() {
+  fr = document.getElementById(&quot;fr&quot;);
+
+  t.step(function () {
+    //SecurityError should be thrown
+    [
+      //attributes
+      {name: &quot;applicationCache&quot;},
+      {name: &quot;devicePixelRatio&quot;},
+      {name: &quot;document&quot;},
+      {name: &quot;external&quot;},
+      {name: &quot;frameElement&quot;},
+      {name: &quot;history&quot;},
+      {name: &quot;innerWidth&quot;},
+      {name: &quot;innerHeight&quot;},
+      {name: &quot;locationbar&quot;},
+      {name: &quot;localStorage&quot;},
+      {name: &quot;menubar&quot;},
+      {name: &quot;name&quot;},
+      {name: &quot;navigator&quot;},
+      {name: &quot;onabort&quot;},
+      {name: &quot;onafterprint&quot;},
+      {name: &quot;onbeforeprint&quot;},
+      {name: &quot;onbeforeunload&quot;},
+      {name: &quot;onblur&quot;},
+      {name: &quot;oncancel&quot;},
+      {name: &quot;oncanplay&quot;},
+      {name: &quot;oncanplaythrough&quot;},
+      {name: &quot;onchange&quot;},
+      {name: &quot;onclick&quot;},
+      {name: &quot;onclose&quot;},
+      {name: &quot;oncontextmenu&quot;},
+      {name: &quot;oncuechange&quot;},
+      {name: &quot;ondblclick&quot;},
+      {name: &quot;ondrag&quot;},
+      {name: &quot;ondragend&quot;},
+      {name: &quot;ondragenter&quot;},
+      {name: &quot;ondragleave&quot;},
+      {name: &quot;ondragover&quot;},
+      {name: &quot;ondragstart&quot;},
+      {name: &quot;ondrop&quot;},
+      {name: &quot;ondurationchange&quot;},
+      {name: &quot;onemptied&quot;},
+      {name: &quot;onended&quot;},
+      {name: &quot;onerror&quot;},
+      {name: &quot;onfocus&quot;},
+      {name: &quot;onhashchange&quot;},
+      {name: &quot;oninput&quot;},
+      {name: &quot;oninvalid&quot;},
+      {name: &quot;onkeydown&quot;},
+      {name: &quot;onkeypress&quot;},
+      {name: &quot;onkeyup&quot;},
+      {name: &quot;onload&quot;},
+      {name: &quot;onloadeddata&quot;},
+      {name: &quot;onloadedmetadata&quot;},
+      {name: &quot;onloadstart&quot;},
+      {name: &quot;onmessage&quot;},
+      {name: &quot;onmousedown&quot;},
+      {name: &quot;onmousemove&quot;},
+      {name: &quot;onmouseout&quot;},
+      {name: &quot;onmouseover&quot;},
+      {name: &quot;onmouseup&quot;},
+      {name: &quot;onmousewheel&quot;},
+      {name: &quot;onoffline&quot;},
+      {name: &quot;ononline&quot;},
+      {name: &quot;onpause&quot;},
+      {name: &quot;onplay&quot;},
+      {name: &quot;onplaying&quot;},
+      {name: &quot;onpagehide&quot;},
+      {name: &quot;onpageshow&quot;},
+      {name: &quot;onpopstate&quot;},
+      {name: &quot;onprogress&quot;},
+      {name: &quot;onratechange&quot;},
+      {name: &quot;onreset&quot;},
+      {name: &quot;onresize&quot;},
+      {name: &quot;onscroll&quot;},
+      {name: &quot;onseeked&quot;},
+      {name: &quot;onseeking&quot;},
+      {name: &quot;onselect&quot;},
+      {name: &quot;onshow&quot;},
+      {name: &quot;onstalled&quot;},
+      {name: &quot;onstorage&quot;},
+      {name: &quot;onsubmit&quot;},
+      {name: &quot;onsuspend&quot;},
+      {name: &quot;ontimeupdate&quot;},
+      {name: &quot;onunload&quot;},
+      {name: &quot;onvolumechange&quot;},
+      {name: &quot;onwaiting&quot;},
+      {name: &quot;pageXOffset&quot;},
+      {name: &quot;pageYOffset&quot;},
+      {name: &quot;personalbar&quot;},
+      {name: &quot;screen&quot;},
+      {name: &quot;scrollbars&quot;},
+      {name: &quot;statusbar&quot;},
+      {name: &quot;status&quot;},
+      {name: &quot;screenX&quot;},
+      {name: &quot;screenY&quot;},
+      {name: &quot;sessionStorage&quot;},
+      {name: &quot;toolbar&quot;},
+      //methods
+      {name: &quot;alert&quot;, isMethod: true},
+      {name: &quot;clearInterval&quot;, isMethod: true, args:[1]},
+      {name: &quot;clearTimeout&quot;, isMethod: true, args:[function () {}, 1]},
+      {name: &quot;confirm&quot;, isMethod: true},
+      {name: &quot;getComputedStyle&quot;, isMethod: true, args:[document.body, null]},
+      {name: &quot;getSelection&quot;, isMethod: true},
+      {name: &quot;matchMedia&quot;, isMethod: true, args:[&quot;(min-width:50px)&quot;]},
+      {name: &quot;moveBy&quot;, isMethod: true, args:[10, 10]},
+      {name: &quot;moveTo&quot;, isMethod: true, args:[10, 10]},
+      {name: &quot;open&quot;, isMethod: true},
+      {name: &quot;print&quot;, isMethod: true},
+      {name: &quot;prompt&quot;, isMethod: true},
+      {name: &quot;resizeTo&quot;, isMethod: true, args:[10, 10]},
+      {name: &quot;resizeBy&quot;, isMethod: true, args:[10, 10]},
+      {name: &quot;scroll&quot;, isMethod: true, args:[10, 10]},
+      {name: &quot;scrollTo&quot;, isMethod: true, args:[10, 10]},
+      {name: &quot;scrollBy&quot;, isMethod: true, args:[10, 10]},
+      {name: &quot;setInterval&quot;, isMethod: true, args:[function () {}, 1]},
+      {name: &quot;setTimeout&quot;, isMethod: true, args:[function () {}, 1]},
+      {name: &quot;showModalDialog&quot;, isMethod: true, args:[&quot;auto:blank&quot;, &quot;dialog&quot;]},
+      {name: &quot;stop&quot;, isMethod: true},
+    ].forEach(function (item) {
+      test(function () {
+        assert_true(item.name in window, &quot;window.&quot; + item.name + &quot; should exist.&quot;);
+        assert_throws(&quot;SecurityError&quot;, function () {
+          if (item.isMethod)
+            if (item.args)
+              fr.contentWindow[item.name](item.args[0], item.args[1]);
+            else
+              fr.contentWindow[item.name]();
+          else
+            fr.contentWindow[item.name];
+        }, &quot;A SecurityError exception should be thrown.&quot;);
+      }, &quot;A SecurityError exception must be thrown when window.&quot; + item.name + &quot; is accessed from a different origin.&quot;);
+    });
+
+    //SecurityError should not be thrown
+    [
+      //attributes
+      {name: &quot;closed&quot;},
+      {name: &quot;frames&quot;},
+      {name: &quot;length&quot;},
+      {name: &quot;location&quot;},
+      {name: &quot;opener&quot;},
+      {name: &quot;parent&quot;},
+      {name: &quot;self&quot;},
+      {name: &quot;top&quot;},
+      {name: &quot;window&quot;},
+      //methods
+      {name: &quot;blur&quot;, isMethod: true},
+      {name: &quot;close&quot;, isMethod: true},
+      {name: &quot;focus&quot;, isMethod: true},
+      {name: &quot;postMessage&quot;, isMethod: true, args: [{msg: 'foo'}, &quot;*&quot;]}
+    ].forEach(function (item) {
+      test(function () {
+        assert_true(item.name in window, &quot;window.&quot; + item.name + &quot; should exist.&quot;);
+        try {
+          if (item.isMethod)
+            if (item.args)
+              fr.contentWindow[item.name](item.args[0], item.args[1]);
+            else
+               fr.contentWindow[item.name]();
+          else
+            fr.contentWindow[item.name];
+        } catch (e) {
+          assert_unreached(&quot;An unexpected exception was thrown.&quot;);
+        }
+      }, &quot;A SecurityError exception should not be thrown when window.&quot; + item.name + &quot; is accessed from a different origin.&quot;);
+    });
+  });
+  t.done();
+}
+
+&lt;/script&gt;
+&lt;script&gt;
+onload = function() {
+  var frame = document.createElement('iframe');
+  frame.id = &quot;fr&quot;;
+  frame.setAttribute(&quot;style&quot;, &quot;display:none&quot;);
+  frame.setAttribute('src', get_host_info().HTTP_REMOTE_ORIGIN + &quot;/&quot;);
+  frame.setAttribute(&quot;onload&quot;, &quot;fr_load()&quot;);
+  document.body.appendChild(frame);
+}
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsnestedbrowsingcontextsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -17,7 +17,7 @@
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/MANIFEST
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/contains.json
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html
</del><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/test.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/testcase3.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/nested-browsing-contexts/window-top-001.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlbrowserswindowsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -25,4 +25,4 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/support-opener-null.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/support-post-to-opener.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/support-window-name-echo.html
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.sub.html
</del><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomdocumentsdomtreeaccessorsDocumentcurrentScriptexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+Blocked access to external URL http://some.nonexistant.test/fail
+Blocked access to external URL http://some.nonexistant.test/fail
+CONSOLE MESSAGE: line 1: SyntaxError: Unexpected end of script
+CONSOLE MESSAGE: line 1: ReferenceError: Can't find variable: undefinedfn
+
+Harness Error (TIMEOUT), message = null
+
+PASS Script parse-inline 
+PASS Script parse-ext 
+PASS Script dom-inline 
+PASS Script dom-ext 
+PASS Script nested 
+NOTRUN Script script-exec 
+PASS Script script-load-error 
+PASS Script script-window-error 
+PASS Script timeout 
+PASS Script eval 
+PASS Script xhr-test 
+FAIL Script script-svg assert_array_equals: property 0, expected Element node &lt;script id=&quot;script-svg&quot;&gt;
+    verify('script-svg');
+    fi... but got null
+PASS Script script-async 
+PASS Script script-defer 
+PASS Script script-async-false 
+PASS Script iframe-src 
+PASS Script cross-origin 
+PASS Script document-write 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomdocumentsdomtreeaccessorsDocumentcurrentScripthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,211 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;Document.currentScript&lt;/title&gt;
+&lt;link rel=help href=&quot;https://html.spec.whatwg.org/multipage/#dom-document-currentscript&quot;&gt;
+&lt;link rel=help href=&quot;https://html.spec.whatwg.org/multipage/#execute-the-script-block&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;/common/get-host-info.sub.js&quot;&gt;&lt;/script&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+var data = {
+  &quot;parse-inline&quot; : [],
+  &quot;parse-ext&quot; : [],
+  &quot;dom-inline&quot; : [],
+  &quot;dom-ext&quot; : [],
+  &quot;nested&quot; : [&quot;nested-outer&quot;,&quot;nested-inner&quot;,&quot;nested-outer&quot;],
+  &quot;script-exec&quot; : [&quot;script-exec-before-after&quot;,&quot;script-exec-before-after&quot;],
+  &quot;script-load-error&quot; : [null],
+  &quot;script-window-error&quot; : [&quot;script-error-compile&quot;,&quot;script-error-runtime&quot;],
+  &quot;timeout&quot; : [null],
+  &quot;eval&quot; : [],
+  &quot;xhr-test&quot; : [],
+  &quot;script-svg&quot; : [],
+  &quot;script-async&quot; : [],
+  &quot;script-defer&quot; : [],
+  &quot;script-async-false&quot; : [],
+  &quot;iframe-src&quot; : [],
+  &quot;cross-origin&quot; : [null],
+  &quot;document-write&quot; : []
+};
+
+var expected = {};
+var actual = {};
+
+Object.keys(data).forEach(function(id) {
+  var test_expected = data[id];
+  if(test_expected.length == 0) {
+    test_expected = [id];
+  }
+  expected[id] = test_expected;
+  actual[id] = [];
+});
+
+var tests = {};
+setup({allow_uncaught_exception : true});
+
+Object.keys(expected).forEach(function(id) {
+  var testmsg = &quot;Script &quot; + id;
+  tests[id] = async_test(testmsg);
+});
+
+function verify(id) {
+  tests[id].step(function() {
+    actual[id].push(document.currentScript);
+  })
+}
+
+function finish(id) {
+  tests[id].step(function() {
+    assert_array_equals(actual[id],expected[id].map(function(id) {
+      return document.getElementById(id);
+    }));
+    this.done();
+  })
+}
+
+&lt;/script&gt;
+
+&lt;!--  Test parser inserted scripts  --&gt;
+&lt;script id=&quot;parse-inline&quot;&gt;
+verify('parse-inline');
+finish('parse-inline')
+&lt;/script&gt;
+&lt;script id=&quot;parse-ext&quot; src=&quot;data:text/plain,verify('parse-ext')&quot;&gt;&lt;/script&gt;
+&lt;script&gt;finish('parse-ext');&lt;/script&gt;
+
+&lt;!--  Test DOM inserted scripts  --&gt;
+&lt;script&gt;
+var s = document.createElement(&quot;script&quot;);
+s.textContent = &quot;verify('dom-inline');&quot;;
+s.id = &quot;dom-inline&quot;;
+document.body.appendChild(s);
+finish('dom-inline');
+
+s = document.createElement(&quot;script&quot;);
+s.src = &quot;data:text/plain,verify('dom-ext');&quot;;
+s.id = &quot;dom-ext&quot;;
+s.onload = function() {
+  finish('dom-ext');
+}
+document.body.appendChild(s);
+&lt;/script&gt;
+
+&lt;!--  Test Nested scripts  --&gt;
+&lt;script id=&quot;nested-outer&quot;&gt;
+ verify(&quot;nested&quot;);
+ var s = document.createElement(&quot;script&quot;);
+ s.textContent = &quot;verify('nested')&quot;;
+ s.id = &quot;nested-inner&quot;;
+ document.body.appendChild(s);
+ verify(&quot;nested&quot;);
+ finish('nested');
+&lt;/script&gt;
+
+&lt;!--  Test script load error event listener  --&gt;
+&lt;script&gt;
+function testLoadFail() {
+  verify('script-load-error');
+  finish('script-load-error');
+}
+&lt;/script&gt;
+
+&lt;script src=&quot;http://some.nonexistant.test/fail&quot; id=&quot;script-load-error&quot; onerror=&quot;testLoadFail()&quot;&gt;
+&lt;/script&gt;
+
+&lt;!--  Test for runtime and compile time errors  --&gt;
+&lt;script&gt;
+  window.onerror = function() {
+    verify('script-window-error');
+  }
+
+  var s = document.createElement(&quot;script&quot;);
+  s.id = &quot;script-error-compile&quot;;
+  s.textContent = &quot;{&quot;;
+  document.body.appendChild(s);
+
+  window.onerror = function() {
+    verify('script-window-error');
+  }
+
+  s = document.createElement(&quot;script&quot;);
+  s.id = &quot;script-error-runtime&quot;;
+  s.textContent = &quot;undefinedfn();&quot;;
+  document.body.appendChild(s);
+
+  finish('script-window-error');
+&lt;/script&gt;
+
+&lt;!--  Verify in setTimeout  --&gt;
+&lt;script&gt;
+  setTimeout(function() {
+    verify('timeout');
+    finish('timeout');
+  },0);
+&lt;/script&gt;
+
+&lt;!--  Verify in eval  --&gt;
+&lt;script id=&quot;eval&quot;&gt;
+  eval('verify(&quot;eval&quot;)');
+  finish(&quot;eval&quot;);
+&lt;/script&gt;
+
+&lt;!--  Verify in synchronous xhr  --&gt;
+&lt;script id=&quot;xhr-test&quot;&gt;
+  var request = new XMLHttpRequest();
+  request.open('GET','/',false);
+  request.send(null);
+
+  if(request.status === 200) {
+    verify('xhr-test');
+    finish('xhr-test');
+  }
+&lt;/script&gt;
+
+&lt;!--  Testing script within svg  --&gt;
+&lt;svg&gt;
+  &lt;script id=&quot;script-svg&quot;&gt;
+    verify('script-svg');
+    finish('script-svg');
+  &lt;/script&gt;
+&lt;/svg&gt;
+
+&lt;!--  Test script async and defer  --&gt;
+&lt;script id='script-async' async src='data:text/plain,verify(&quot;script-async&quot;),finish(&quot;script-async&quot;)'&gt;&lt;/script&gt;
+
+&lt;script id='script-defer' defer src='data:text/plain,verify(&quot;script-defer&quot;),finish(&quot;script-defer&quot;)'&gt;&lt;/script&gt;
+
+&lt;!--  Test async = false dynamic script loading  --&gt;
+&lt;script&gt;
+  var s = document.createElement(&quot;script&quot;);
+  s.id = &quot;script-async-false&quot;;
+  s.src = &quot;data:text/plain,verify('script-async-false');&quot;
+  s.onload = function() {
+    finish('script-async-false');
+  }
+  s.async = false;
+  document.body.appendChild(s);
+&lt;/script&gt;
+
+&lt;!--  Verify in iframe javascript uri scheme  --&gt;
+&lt;iframe src=&quot;javascript:parent.verify('iframe-src'),parent.finish('iframe-src')&quot;
+        style=&quot;visibility:hidden;display:none&quot;&gt;
+&lt;/iframe&gt;
+
+&lt;!--  Testing cross origin script  --&gt;
+&lt;script&gt;
+var s = document.createElement(&quot;script&quot;);
+s.id = &quot;cross-origin&quot;;
+s.src = get_host_info(). HTTP_REMOTE_ORIGIN + &quot;/html/dom/documents/dom-tree-accessors/cross-domain.js&quot;
+s.onload = function() {
+  verify('cross-origin')
+  finish('cross-origin');
+}
+document.body.appendChild(s);
+
+&lt;/script&gt;
+
+&lt;!--  Testing document.write  --&gt;
+&lt;script&gt;
+document.write('&lt;script id=&quot;document-write&quot;&gt;verify(&quot;document-write&quot;); finish(&quot;document-write&quot;);&lt;/' + 'script&gt;');
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldomdocumentsdomtreeaccessorsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -16,6 +16,7 @@
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.body.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.getElementsByClassName-null-undef.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Element.getElementsByClassName-null-undef.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/cross-domain.js
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsdocumentmetadatathebaseelementbase_href_specifiedexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+
+PASS The href attribute of the base element is specified 
+PASS The src attribute of the img element must relative to the href attribute of the base element 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsdocumentmetadatathebaseelementbase_href_specifiedhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;HTML Test: base_href_specified&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Intel&quot; href=&quot;http://www.intel.com/&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://html.spec.whatwg.org/multipage/#the-base-element&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;/common/get-host-info.sub.js&quot;&gt;&lt;/script&gt;
+&lt;base id=&quot;base&quot;&gt;
+&lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+&lt;img id=&quot;test&quot; src=&quot;test.ico&quot; style=&quot;display:none&quot;&gt;
+
+&lt;script&gt;
+  var testElement;
+  var baseElement;
+
+  var otherOrigin = get_host_info().HTTP_REMOTE_ORIGIN;
+
+  setup(function() {
+    testElement = document.getElementById(&quot;test&quot;);
+    baseElement = document.getElementById(&quot;base&quot;);
+
+    baseElement.setAttribute(&quot;href&quot;, otherOrigin);
+  });
+
+  test(function() {
+    assert_equals(baseElement.href, otherOrigin + &quot;/&quot;, &quot;The href attribute of the base element is incorrect.&quot;);
+  }, &quot;The href attribute of the base element is specified&quot;);
+
+  test(function() {
+    assert_equals(testElement.src, otherOrigin + &quot;/test.ico&quot;, &quot;The src attribute of the img element is incorrect.&quot;);
+  }, &quot;The src attribute of the img element must relative to the href attribute of the base element&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsdocumentmetadatathebaseelementw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -18,7 +18,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_about_blank.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_empty.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_invalid.html
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified.sub.html
</del><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_unspecified.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_multiple.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-base-element/base_srcdoc.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementdataurlexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+
+PASS data URL image 
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementdataurlhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;data URL image&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;
+var c = document.createElement(&quot;canvas&quot;),
+    con = c.getContext(&quot;2d&quot;),
+    img = document.createElement(&quot;img&quot;)
+img.src = &quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAA+UlEQVR4nO3RoRHAQBDEsOu/6YR+B2sgIO4Z3919pMwDMCRtHoAhafMADEmbB2BI2jwAQ9LmARiSNg/AkLR5AIakzQMwJG0egCFp8wAMSZsHYEjaPABD0uYBGJI2D8CQtHkAhqTNAzAkbR6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPwJC0eQCGpM0DMCRtHoAhafMADEmbB2BI2jwAQ9LmARiSNg/AkLR5AIakzQMwJG0egCFp8wAMSZsHYEjaPABD0uYBGJI2D8CQtHkAhqTNAzAkbR6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPwJC0eQCGpM0DMCRtHsDjB5K06yueJFXJAAAAAElFTkSuQmCC&quot;
+img.onload = () =&gt; {
+  con.drawImage(img, 0, 0)
+  var data = con.getImageData(0, 0, 10, 10) // should not throw as data URLs are same-origin
+  for(var i = 0; i &lt; data.data.length; i++) {
+    var expected = ((i+1) % 4 == 0) ? 255 : 0
+    assert_equals(data.data[i], expected)
+  }
+  c.toDataURL() // shouldn't throw either
+  done()
+}
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementusemapcasingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+
+PASS Image with usemap of #sanityCheck should match the area with map named sanityCheck 
+FAIL Image with usemap of #sImPlE should not match any of the areas assert_equals: The element retrieved must be the image, not an area; used &lt;map&gt; with name &quot;simple&quot; expected Element node &lt;img src=&quot;/images/threecolors.png&quot; usemap=&quot;#sImPlE&quot; width... but got Element node &lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/area&gt;
+FAIL Image with usemap of #paSSfield-killroyß should not match any of the areas assert_equals: The element retrieved must be the image, not an area; used &lt;map&gt; with name &quot;passfield-killroyß&quot; expected Element node &lt;img src=&quot;/images/threecolors.png&quot; usemap=&quot;#paSSfield-kil... but got Element node &lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/area&gt;
+FAIL Image with usemap of #глупый should not match any of the areas assert_equals: The element retrieved must be the image, not an area; used &lt;map&gt; with name &quot;ГЛУПЫЙ&quot; expected Element node &lt;img src=&quot;/images/threecolors.png&quot; usemap=&quot;#глупый&quot; width... but got Element node &lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/area&gt;
+FAIL Image with usemap of #åωk should not match any of the areas null is not an object (evaluating 'element.parentElement')
+FAIL Image with usemap of #blah1 should not match any of the areas null is not an object (evaluating 'element.parentElement')
+FAIL Image with usemap of #tÉdz5アパートFi should not match any of the areas null is not an object (evaluating 'element.parentElement')
+FAIL Image with usemap of #ΣΣ should not match any of the areas null is not an object (evaluating 'element.parentElement')
+           
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementusemapcasinghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,93 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;img usemap case-sensitive&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Domenic Denicola&quot; href=&quot;mailto:d@domenic.me&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-a-hash-name-reference&quot;&gt;
+&lt;!-- See also: https://github.com/whatwg/html/issues/1666 --&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;img src=&quot;/images/threecolors.png&quot; usemap=&quot;#sanityCheck&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;
+&lt;map name=&quot;sanityCheck&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;img src=&quot;/images/threecolors.png&quot; usemap=&quot;#sImPlE&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;
+&lt;map name=&quot;simple&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;SIMPLE&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;img src=&quot;/images/threecolors.png&quot; usemap=&quot;#paSSfield-killroyß&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;
+&lt;map name=&quot;passfield-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;PASSFIELD-KILLROYß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;paſſfield-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;passfield-&amp;#x212a;illroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;paßfield-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;paẞfield-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;passfield-killroyẞ&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;passfield-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;passfıeld-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;passfİeld-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;img src=&quot;/images/threecolors.png&quot; usemap=&quot;#глупый&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;
+&lt;map name=&quot;глупы&amp;#x438;&amp;#x306;&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;ГЛУПЫЙ&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;ГЛУПЫ&amp;#x418;&amp;#x306;&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;img src=&quot;/images/threecolors.png&quot; usemap=&quot;#åωk&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;
+&lt;map name=&quot;ÅΩK&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;&amp;#x212b;ωk&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;å&amp;#x2126;k&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;åω&amp;#x212a;&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;img src=&quot;/images/threecolors.png&quot; usemap=&quot;#blah1&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;
+&lt;map name=&quot;blah&amp;#x2460;&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;bl&amp;#x24b6;h1&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;bl&amp;#x24d0;h1&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;img src=&quot;/images/threecolors.png&quot; usemap=&quot;#t&amp;Eacute;dz5アパートFi&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;
+&lt;map name=&quot;T&amp;Eacute;DZ5アパートFi&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;T&amp;eacute;&amp;#x01F1;&amp;#x2075;アパートFi&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;t&amp;Eacute;dz5&amp;#x3300;Fi&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;t&amp;Eacute;dz5&amp;#x30A2;&amp;#x30CF;&amp;#x309A;&amp;#x30FC;&amp;#x30C8;Fi&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;T&amp;Eacute;DZ⁵アパートFi&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;T&amp;Eacute;DZ5アパートfi&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;img src=&quot;/images/threecolors.png&quot; usemap=&quot;#ΣΣ&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;
+&lt;map name=&quot;σς&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;script&gt;
+&quot;use strict&quot;;
+setup({ explicit_done: true });
+
+onload = () =&gt; {
+  test(() =&gt; {
+    const image = document.querySelector(`img[usemap=&quot;#sanityCheck&quot;]`);
+    const imageRect = image.getBoundingClientRect();
+    const x = imageRect.left + imageRect.width / 2;
+    const y = imageRect.top + imageRect.height / 2;
+    const element = document.elementFromPoint(x, y);
+    const area = document.querySelector(`map[name=&quot;sanityCheck&quot;] &gt; area`);
+
+    assert_equals(element, area);
+  }, `Image with usemap of #sanityCheck should match the area with map named sanityCheck`);
+
+  const images = Array.from(document.querySelectorAll(`img:not([usemap=&quot;#sanityCheck&quot;])`));
+
+  for (let image of images) {
+    test(() =&gt; {
+      const imageRect = image.getBoundingClientRect();
+      const x = imageRect.left + imageRect.width / 2;
+      const y = imageRect.top + imageRect.height / 2;
+      const element = document.elementFromPoint(x, y);
+
+      const name = element.parentElement.getAttribute(&quot;name&quot;);
+      const messageSuffix = name ? `; used &lt;map&gt; with name &quot;${name}&quot;` : &quot;&quot;;
+
+      assert_equals(element, image, &quot;The element retrieved must be the image, not an area&quot; + messageSuffix);
+    }, `Image with usemap of ${image.useMap} should not match any of the areas`);
+  }
+
+  done();
+};
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheimgelementw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -19,6 +19,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/brokenimg.jpg
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/contains.json
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/document-base-url-expected.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/document-base-url.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-1.jpg
</span><span class="lines">@@ -27,3 +28,4 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/nonexistent-image.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/update-media.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementusemapcasingexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+
+FAIL Object with usemap of #sanityCheck should match the area with map named sanityCheck assert_equals: expected Element node &lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/area&gt; but got Element node &lt;object data=&quot;/images/threecolors.png&quot; usemap=&quot;#sanityChe...
+PASS Object with usemap of #sImPlE should not match any of the areas 
+PASS Object with usemap of #paSSfield-killroyß should not match any of the areas 
+PASS Object with usemap of #глупый should not match any of the areas 
+FAIL Object with usemap of #åωk should not match any of the areas null is not an object (evaluating 'element.parentElement')
+FAIL Object with usemap of #blah1 should not match any of the areas null is not an object (evaluating 'element.parentElement')
+FAIL Object with usemap of #tÉdz5アパートFi should not match any of the areas null is not an object (evaluating 'element.parentElement')
+FAIL Object with usemap of #ΣΣ should not match any of the areas null is not an object (evaluating 'element.parentElement')
+           
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementusemapcasinghtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,93 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;object usemap case-sensitive&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Domenic Denicola&quot; href=&quot;mailto:d@domenic.me&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-a-hash-name-reference&quot;&gt;
+&lt;!-- See also: https://github.com/whatwg/html/issues/1666 --&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;object data=&quot;/images/threecolors.png&quot; usemap=&quot;#sanityCheck&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;&lt;/object&gt;
+&lt;map name=&quot;sanityCheck&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;object data=&quot;/images/threecolors.png&quot; usemap=&quot;#sImPlE&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;&lt;/object&gt;
+&lt;map name=&quot;simple&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;SIMPLE&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;object data=&quot;/images/threecolors.png&quot; usemap=&quot;#paSSfield-killroyß&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;&lt;/object&gt;
+&lt;map name=&quot;passfield-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;PASSFIELD-KILLROYß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;paſſfield-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;passfield-&amp;#x212a;illroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;paßfield-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;paẞfield-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;passfield-killroyẞ&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;passfield-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;passfıeld-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;passfİeld-killroyß&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;object data=&quot;/images/threecolors.png&quot; usemap=&quot;#глупый&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;&lt;/object&gt;
+&lt;map name=&quot;глупы&amp;#x438;&amp;#x306;&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;ГЛУПЫЙ&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;ГЛУПЫ&amp;#x418;&amp;#x306;&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;object data=&quot;/images/threecolors.png&quot; usemap=&quot;#åωk&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;&lt;/object&gt;
+&lt;map name=&quot;ÅΩK&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;&amp;#x212b;ωk&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;å&amp;#x2126;k&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;åω&amp;#x212a;&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;object data=&quot;/images/threecolors.png&quot; usemap=&quot;#blah1&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;&lt;/object&gt;
+&lt;map name=&quot;blah&amp;#x2460;&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;bl&amp;#x24b6;h1&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;bl&amp;#x24d0;h1&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;object data=&quot;/images/threecolors.png&quot; usemap=&quot;#t&amp;Eacute;dz5アパートFi&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;&lt;/object&gt;
+&lt;map name=&quot;T&amp;Eacute;DZ5アパートFi&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;T&amp;eacute;&amp;#x01F1;&amp;#x2075;アパートFi&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;t&amp;Eacute;dz5&amp;#x3300;Fi&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;t&amp;Eacute;dz5&amp;#x30A2;&amp;#x30CF;&amp;#x309A;&amp;#x30FC;&amp;#x30C8;Fi&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;T&amp;Eacute;DZ⁵アパートFi&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+&lt;map name=&quot;T&amp;Eacute;DZ5アパートfi&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;object data=&quot;/images/threecolors.png&quot; usemap=&quot;#ΣΣ&quot; width=&quot;300&quot; height=&quot;300&quot;&gt;&lt;/object&gt;
+&lt;map name=&quot;σς&quot;&gt;&lt;area shape=&quot;rect&quot; coords=&quot;0,0,300,300&quot;&gt;&lt;/map&gt;
+
+&lt;script&gt;
+&quot;use strict&quot;;
+setup({ explicit_done: true });
+
+onload = () =&gt; {
+  test(() =&gt; {
+    const object = document.querySelector(`object[usemap=&quot;#sanityCheck&quot;]`);
+    const objectRect = object.getBoundingClientRect();
+    const x = objectRect.left + objectRect.width / 2;
+    const y = objectRect.top + objectRect.height / 2;
+    const element = document.elementFromPoint(x, y);
+    const area = document.querySelector(`map[name=&quot;sanityCheck&quot;] &gt; area`);
+
+    assert_equals(element, area);
+  }, `Object with usemap of #sanityCheck should match the area with map named sanityCheck`);
+
+  const objects = Array.from(document.querySelectorAll(`object:not([usemap=&quot;#sanityCheck&quot;])`));
+
+  for (let object of objects) {
+    test(() =&gt; {
+      const objectRect = object.getBoundingClientRect();
+      const x = objectRect.left + objectRect.width / 2;
+      const y = objectRect.top + objectRect.height / 2;
+      const element = document.elementFromPoint(x, y);
+
+      const name = element.parentElement.getAttribute(&quot;name&quot;);
+      const messageSuffix = name ? `; used &lt;map&gt; with name &quot;${name}&quot;` : &quot;&quot;;
+
+      assert_equals(element, object, &quot;The element retrieved must be the object, not an area&quot; + messageSuffix);
+    }, `Object with usemap of ${object.useMap} should not match any of the areas`);
+  }
+
+  done();
+};
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsembeddedcontenttheobjectelementw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -21,3 +21,4 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/test0.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/test1.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/test2.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheinputelementradiogroupnamecaseexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,9 +1,9 @@
</span><span class="cx"> 
</span><del>-FAIL radio button group name = sImPlE assert_false: expected false got true
-FAIL radio button group name = paSSfield-killroyß assert_false: expected false got true
-FAIL radio button group name = глупый assert_false: expected false got true
-FAIL radio button group name = åωk assert_false: expected false got true
-FAIL radio button group name = blah1 assert_false: expected false got true
-FAIL radio button group name = tÉdz5アパートFi assert_false: expected false got true
-FAIL radio button group name = ΣΣ assert_false: expected false got true
-                                          
</del><ins>+PASS Among names like sImPlE, everything must be checkable at the same time 
+PASS Among names like paSSfield-killroyß, everything must be checkable at the same time 
+PASS Among names like глупый, everything must be checkable at the same time 
+PASS Among names like åωk, everything must be checkable at the same time 
+PASS Among names like blah1, everything must be checkable at the same time 
+PASS Among names like tÉdz5アパートFi, everything must be checkable at the same time 
+PASS Among names like ΣΣ, everything must be checkable at the same time 
+                                         
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsformstheinputelementradiogroupnamecasehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,11 +1,16 @@
</span><span class="cx"> &lt;!DOCTYPE html&gt;
</span><span class="cx"> &lt;meta charset=utf-8&gt;
</span><del>-&lt;title&gt;radio group name compatibility caseless&lt;/title&gt;
</del><ins>+&lt;title&gt;radio group name case-sensitive&lt;/title&gt;
</ins><span class="cx"> &lt;link rel=&quot;author&quot; title=&quot;Denis Ah-Kang&quot; href=&quot;mailto:denis@w3.org&quot;&gt;
</span><del>-&lt;link rel=&quot;help&quot; href=&quot;http://people.mozilla.org/~jdaggett/tests/radiobuttonnamecase.html&quot;&gt;
</del><ins>+&lt;link rel=&quot;author&quot; title=&quot;Domenic Denicola&quot; href=&quot;mailto:d@domenic.me&quot;&gt;
+&lt;link rel=&quot;help&quot; href=&quot;https://html.spec.whatwg.org/multipage/forms.html#radio-button-group&quot;&gt;
+&lt;!-- See also: https://github.com/whatwg/html/issues/1666 --&gt;
+
</ins><span class="cx"> &lt;script src=&quot;/resources/testharness.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script src=&quot;/resources/testharnessreport.js&quot;&gt;&lt;/script&gt;
</span><ins>+
</ins><span class="cx"> &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
</span><ins>+
</ins><span class="cx"> &lt;input id=r1 type=&quot;radio&quot; name=&quot;sImPlE&quot;&gt;
</span><span class="cx"> &lt;input id=r2 type=&quot;radio&quot; name=&quot;simple&quot;&gt;
</span><span class="cx"> &lt;input id=r3 type=&quot;radio&quot; name=&quot;SIMPLE&quot;&gt;
</span><span class="lines">@@ -43,33 +48,36 @@
</span><span class="cx"> &lt;input id=r30 type=&quot;radio&quot; name=&quot;T&amp;eacute;&amp;#x01F1;&amp;#x2075;アパートFi&quot;&gt;
</span><span class="cx"> &lt;input id=r31 type=&quot;radio&quot; name=&quot;t&amp;Eacute;dz5&amp;#x3300;Fi&quot;&gt;
</span><span class="cx"> &lt;input id=r32 type=&quot;radio&quot; name=&quot;t&amp;Eacute;dz5&amp;#x30A2;&amp;#x30CF;&amp;#x309A;&amp;#x30FC;&amp;#x30C8;Fi&quot;&gt;
</span><del>-&lt;input id=r33 type=&quot;radio&quot; name=&quot;t&amp;Eacute;dz5&amp;#x30A2;&amp;#x30D1;&amp;#x30FC;&amp;#x30C8;Fi&quot;&gt;
</del><span class="cx"> &lt;input id=r34 type=&quot;radio&quot; name=&quot;T&amp;Eacute;DZ⁵アパートFi&quot;&gt;
</span><span class="cx"> &lt;input id=r35 type=&quot;radio&quot; name=&quot;T&amp;Eacute;DZ5アパートfi&quot;&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;input id=r36 type=&quot;radio&quot; name=&quot;ΣΣ&quot;&gt;
</span><span class="cx"> &lt;input id=r37 type=&quot;radio&quot; name=&quot;σς&quot;&gt;
</span><ins>+
</ins><span class="cx"> &lt;script&gt;
</span><del>-  var groups = [[&quot;r1&quot; ,&quot;r2&quot;, &quot;r3&quot;],
-                [&quot;r4&quot;, &quot;r5&quot;, &quot;r6&quot;, &quot;r7&quot;, &quot;r8&quot;, &quot;r9&quot;, &quot;r10&quot;, &quot;r11&quot;, &quot;r12&quot;, &quot;r13&quot;, &quot;r14&quot;],
-                [&quot;r15&quot;, &quot;r16&quot;, &quot;r17&quot;, &quot;r18&quot;],
-                [&quot;r19&quot;, &quot;r20&quot;, &quot;r21&quot;, &quot;r22&quot;, &quot;r23&quot;],
-                [&quot;r24&quot;, &quot;r25&quot;, &quot;r26&quot;, &quot;r27&quot;],
-                [&quot;r28&quot;, &quot;r29&quot;, &quot;r30&quot;, &quot;r31&quot;, &quot;r32&quot;, &quot;r33&quot;, &quot;r34&quot;, &quot;r35&quot;],
-                [&quot;r36&quot;, &quot;r37&quot;]],
-      groupName = [&quot;sImPlE&quot;, &quot;paSSfield-killroyß&quot;, &quot;глупый&quot;, &quot;åωk&quot;, &quot;blah1&quot;, &quot;tÉdz5アパートFi&quot;, &quot;ΣΣ&quot;];
-  groups.forEach(function(group, index) {
-    test(function(){
-      group.forEach(function(radioId) {
-        assert_false(document.getElementById(radioId).checked);
-      });
-      for (var i = 0; i &lt; group.length; i++) {
-        document.getElementById(group[i]).checked = true;
-        assert_true(document.getElementById(group[i]).checked);
-        for (var j = 0; j &lt; group.length; j++) {
-          if (j != i) assert_false(document.getElementById(group[j]).checked);
-        }
-      }
-    }, &quot;radio button group name = &quot; + groupName[index]);
-  });
</del><ins>+&quot;use strict&quot;;
+const notGroups = {
+  &quot;sImPlE&quot;: [&quot;r1&quot; ,&quot;r2&quot;, &quot;r3&quot;],
+  &quot;paSSfield-killroyß&quot;: [&quot;r4&quot;, &quot;r5&quot;, &quot;r6&quot;, &quot;r7&quot;, &quot;r8&quot;, &quot;r9&quot;, &quot;r10&quot;, &quot;r11&quot;, &quot;r12&quot;, &quot;r13&quot;, &quot;r14&quot;],
+  &quot;глупый&quot;: [&quot;r15&quot;, &quot;r16&quot;, &quot;r17&quot;, &quot;r18&quot;],
+  &quot;åωk&quot;: [&quot;r19&quot;, &quot;r20&quot;, &quot;r21&quot;, &quot;r22&quot;, &quot;r23&quot;],
+  &quot;blah1&quot;: [&quot;r24&quot;, &quot;r25&quot;, &quot;r26&quot;, &quot;r27&quot;],
+  &quot;tÉdz5アパートFi&quot;: [&quot;r28&quot;, &quot;r29&quot;, &quot;r30&quot;, &quot;r31&quot;, &quot;r32&quot;, &quot;r34&quot;, &quot;r35&quot;],
+  &quot;ΣΣ&quot;: [&quot;r36&quot;, &quot;r37&quot;]
+};
+
+for (let notGroupLabel of Object.keys(notGroups)) {
+  test(() =&gt; {
+    const ids = notGroups[notGroupLabel];
+    const radios = ids.map(id =&gt; document.getElementById(id));
+
+    for (let radio of radios) {
+      radio.checked = true;
+    }
+
+    for (let radio of radios) {
+      assert_true(radio.checked, `${radio.name} must be checked`);
+    }
+  }, `Among names like ${notGroupLabel}, everything must be checkable at the same time`);
+}
</ins><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsgroupingcontenttheolelementgroupingolexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -16,11 +16,11 @@
</span><span class="cx"> PASS Default start value for non-reversed list should be 1 
</span><span class="cx"> PASS IDL and content attribute parse start of '.5' correctly. 
</span><span class="cx"> PASS IDL and content attribute parse start of 'A' correctly. 
</span><del>-PASS Default start value (if none provided) for reversed list = child li elements. 
-PASS Default start value (if failed to parse) for reversed list = child li elements. 
-PASS Default start value for reversed list = child li elements (even with tons of other child elements). 
-PASS Adding child element to reversed list adds 1 to start value 
-PASS Deleting child element from reversed list reduces start value by 1 
</del><ins>+FAIL Default start value (if none provided) for reversed list = 1. assert_equals: expected 1 but got 3
+FAIL Default start value (if failed to parse) for reversed list = 1. assert_equals: expected 1 but got 3
+FAIL Default start value for reversed list = 1 (even with tons of other child elements). assert_equals: expected 1 but got 3
+FAIL Adding child element to reversed list does not change start value assert_equals: expected 1 but got 4
+FAIL Deleting child element from reversed list does not change start value assert_equals: expected 1 but got 2
</ins><span class="cx"> PASS IDL and content attribute parse start of '2' correctly. 
</span><span class="cx"> PASS IDL and content attribute parse start of '-10' correctly. 
</span><span class="cx"> PASS IDL and content attribute parse start of '4.03' correctly. 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsgroupingcontenttheolelementgroupingolhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -230,83 +230,68 @@
</span><span class="cx">         // is the number of child li elements otherwise.&quot;
</span><span class="cx">         // &quot;The start IDL attribute has the same default as its content attribute.&quot;
</span><span class="cx"> 
</span><del>-        // basic - default should be 1
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;basic&quot;).start, 1, &quot;no start attribute provided -&gt; 1&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;basic&quot;).start, 1);
</ins><span class="cx">         }, &quot;Default start value for non-reversed list should be 1&quot;);
</span><span class="cx"> 
</span><del>-        // decimal's first element has value of .5 which should return 1
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;decimal&quot;).start, 1, &quot;start of .5 -&gt; 1 (default)&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;decimal&quot;).start, 1);
</ins><span class="cx">         }, &quot;IDL and content attribute parse start of '.5' correctly.&quot;);
</span><span class="cx"> 
</span><del>-        // letter's first element has value of A which should return 1
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;letter&quot;).start, 1, &quot;start of A -&gt; 1 (default)&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;letter&quot;).start, 1);
</ins><span class="cx">         }, &quot;IDL and content attribute parse start of 'A' correctly.&quot;);
</span><span class="cx"> 
</span><del>-        // basicRevGoodName - default should be 3
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;basicRevGoodName&quot;).start, 3, &quot;no start attribute provided -&gt; 3&quot;);
-        }, &quot;Default start value (if none provided) for reversed list = child li elements.&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;basicRevGoodName&quot;).start, 1);
+        }, &quot;Default start value (if none provided) for reversed list = 1.&quot;);
</ins><span class="cx"> 
</span><del>-        // basicRevEmpty - default should be 3
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;basicRevEmpty&quot;).start, 3, &quot;start of A -&gt; 3 (default)&quot;);
-        }, &quot;Default start value (if failed to parse) for reversed list = child li elements.&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;basicRevEmpty&quot;).start, 1);
+        }, &quot;Default start value (if failed to parse) for reversed list = 1.&quot;);
</ins><span class="cx"> 
</span><del>-        // lots - default should be 3
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;lots&quot;).start, 3, &quot;no start attribute -&gt; 3 (default)&quot;);
-        }, &quot;Default start value for reversed list = child li elements (even with tons of other child elements).&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;lots&quot;).start, 1);
+        }, &quot;Default start value for reversed list = 1 (even with tons of other child elements).&quot;);
</ins><span class="cx"> 
</span><del>-        // adding child element changes default start value for reversed list
</del><span class="cx">         test(function() {
</span><span class="cx">             var myList = document.getElementById(&quot;basicRevGoodName&quot;), myLI = document.createElement(&quot;li&quot;);
</span><span class="cx">             myList.appendChild(myLI);
</span><del>-            assert_equals(document.getElementById(&quot;basicRevGoodName&quot;).start, 4, &quot;Adding child element to reversed list adds 1 to start value&quot;);
-        }, &quot;Adding child element to reversed list adds 1 to start value&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;basicRevGoodName&quot;).start, 1);
+        }, &quot;Adding child element to reversed list does not change start value&quot;);
</ins><span class="cx"> 
</span><del>-        // removing child element changes default start value for reversed list
</del><span class="cx">         test(function() {
</span><span class="cx">             var myList = document.getElementById(&quot;basicRevTrue&quot;);
</span><span class="cx">             myList.removeChild(myList.children[0]);
</span><del>-            assert_equals(document.getElementById(&quot;basicRevTrue&quot;).start, 2, &quot;Deleting child element from reversed list reduces start value by 1&quot;);
-        }, &quot;Deleting child element from reversed list reduces start value by 1&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;basicRevTrue&quot;).start, 1);
+        }, &quot;Deleting child element from reversed list does not change start value&quot;);
</ins><span class="cx"> 
</span><del>-        // start2's first element has value of 2
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;start2&quot;).start, 2, &quot;start of 2 -&gt; 2&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;start2&quot;).start, 2);
</ins><span class="cx">         }, &quot;IDL and content attribute parse start of '2' correctly.&quot;);
</span><span class="cx"> 
</span><del>-        // negative's first element has value of -10
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;negative&quot;).start, -10, &quot;start of -10 -&gt; -10&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;negative&quot;).start, -10);
</ins><span class="cx">         }, &quot;IDL and content attribute parse start of '-10' correctly.&quot;);
</span><span class="cx"> 
</span><del>-        // posFloatDown's first element has value of 4.03 which should return 4
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;posFloatDown&quot;).start, 4, &quot;start of 4.03 -&gt; 4&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;posFloatDown&quot;).start, 4);
</ins><span class="cx">         }, &quot;IDL and content attribute parse start of '4.03' correctly.&quot;);
</span><span class="cx"> 
</span><del>-        // negFloatDown's first element has value of -4.03 which should return -4
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;negFloatDown&quot;).start, -4, &quot;start of -4.03 -&gt; -4&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;negFloatDown&quot;).start, -4);
</ins><span class="cx">         }, &quot;IDL and content attribute parse start of '-4.03' correctly.&quot;);
</span><span class="cx"> 
</span><del>-        // posFloatUp's first element has value of 4.9 which should return 4
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;posFloatUp&quot;).start, 4, &quot;start of 4.9 -&gt; 4&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;posFloatUp&quot;).start, 4);
</ins><span class="cx">         }, &quot;IDL and content attribute parse start of '4.9' correctly.&quot;);
</span><span class="cx"> 
</span><del>-        // negFloatUp's first element has value of -4.9 which should return -4
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;negFloatUp&quot;).start, -4, &quot;start of -4.9 -&gt; -4&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;negFloatUp&quot;).start, -4);
</ins><span class="cx">         }, &quot;IDL and content attribute parse start of '-4.9' correctly.&quot;);
</span><span class="cx"> 
</span><del>-        // exponent's first element has value of 7e2 which should return 7
</del><span class="cx">         test(function() {
</span><del>-            assert_equals(document.getElementById(&quot;exponent&quot;).start, 7, &quot;start of 7e2 -&gt; 7&quot;);
</del><ins>+            assert_equals(document.getElementById(&quot;exponent&quot;).start, 7);
</ins><span class="cx">         }, &quot;IDL and content attribute parse start of '7e2' correctly.&quot;);
</span><span class="cx"> 
</span><span class="cx">     &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsgroupingcontenttheolelementolstartreflection2expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -2,5 +2,5 @@
</span><span class="cx"> Two
</span><span class="cx"> One
</span><span class="cx"> 
</span><del>-PASS ol.start - reflection test 
</del><ins>+FAIL ol.start - reflection test assert_equals: expected 1 but got 3
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsgroupingcontenttheolelementolstartreflection2html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -18,7 +18,7 @@
</span><span class="cx">   &lt;div id='log'&gt;&lt;/div&gt;
</span><span class="cx">   &lt;script&gt;
</span><span class="cx"> test(function() {
</span><del>-    assert_equals(document.getElementById('ol').start, 3);
</del><ins>+    assert_equals(document.getElementById('ol').start, 1);
</ins><span class="cx"> })
</span><span class="cx">   &lt;/script&gt;
</span><span class="cx">  &lt;/body&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsinteractiveelementsthedetailselementw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-details-element/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-details-element/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-details-element/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -16,4 +16,3 @@
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-details-element/details.html
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-details-element/toggleEvent.html
</del></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsscripting1thescriptelementdataurlexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+CONSOLE MESSAGE: line 1: 1
+CONSOLE MESSAGE: Origin http://localhost:8800 is not allowed by Access-Control-Allow-Origin.
+CONSOLE MESSAGE: Cross-origin script load denied by Cross-Origin Resource Sharing policy.
+CONSOLE MESSAGE: Origin http://localhost:8800 is not allowed by Access-Control-Allow-Origin.
+CONSOLE MESSAGE: Cross-origin script load denied by Cross-Origin Resource Sharing policy.
+
+FAIL data URL and scripts assert_not_equals: got disallowed value &quot;Script error.&quot;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsscripting1thescriptelementdataurlhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,24 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;title&gt;data URL and scripts&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;
+  setup({allow_uncaught_exception:true})
+  async_test(t =&gt; {
+    var counter = 1
+    window.onerror = t.step_func((message, x, xx, xxx, e) =&gt; {
+      assert_not_equals(message, &quot;Script error.&quot;) // Cannot be &quot;muted&quot; as data URLs are same-origin
+      assert_equals(typeof e, &quot;number&quot;)
+      assert_equals(e, counter)
+      if (counter == 3) {
+        t.done()
+      }
+      counter++
+    })
+  })
+&lt;/script&gt;
+&lt;script src=&quot;data:,throw 1&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;data:,throw 2&quot; crossorigin&gt;&lt;/script&gt;
+&lt;script src=&quot;data:,throw 3&quot; crossorigin=use-credentials&gt;&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsscripting1thescriptelementw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/async_010.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/async_011.htm
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/contains.json
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/external-script-utf8.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/external-script-windows1250.js
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/historical.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsmessageeventconstructorexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/messageevent-constructor-expected.txt (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/messageevent-constructor-expected.txt                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/messageevent-constructor-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+
+PASS Default event values 
+PASS MessageEventInit dictionary 
+PASS Passing null for ports member 
+FAIL ports attribute should be a FrozenArray assert_true: ev.ports should return the same object expected true got false
+PASS initMessageEvent operation 
+FAIL Passing null for ports parameter to initMessageEvent assert_throws: function &quot;function () {
+    ev.initMessageEvent(&quot;test&quot;, true, false...&quot; did not throw
+FAIL All parameters to initMessageEvent should be mandatory assert_equals: MessageEvent.prototype.initMessageEvent.length should be 8 expected 8 but got 0
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsmessageeventconstructorhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,78 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;title&gt;MessageEvent constructor&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&gt;
+test(function() {
+  var ev = new MessageEvent(&quot;test&quot;)
+  assert_equals(ev.type, &quot;test&quot;, &quot;type attribute&quot;)
+  assert_equals(ev.target, null, &quot;target attribute&quot;)
+  assert_equals(ev.currentTarget, null, &quot;currentTarget attribute&quot;)
+  assert_equals(ev.eventPhase, Event.NONE, &quot;eventPhase attribute&quot;)
+  assert_equals(ev.bubbles, false, &quot;bubbles attribute&quot;)
+  assert_equals(ev.cancelable, false, &quot;cancelable attribute&quot;)
+  assert_equals(ev.defaultPrevented, false, &quot;defaultPrevented attribute&quot;)
+  assert_equals(ev.isTrusted, false, &quot;isTrusted attribute&quot;)
+  assert_true(ev.timeStamp &gt; 0, &quot;timeStamp attribute&quot;)
+  assert_true(&quot;initMessageEvent&quot; in ev, &quot;initMessageEvent operation&quot;)
+  assert_equals(ev.data, null, &quot;data attribute&quot;)
+  assert_equals(ev.origin, &quot;&quot;, &quot;origin attribute&quot;)
+  assert_equals(ev.lastEventId, &quot;&quot;, &quot;lastEventId attribute&quot;)
+  assert_equals(ev.source, null, &quot;source attribute&quot;)
+  assert_array_equals(ev.ports, [], &quot;ports attribute&quot;)
+}, &quot;Default event values&quot;)
+
+test(function() {
+  var channel = new MessageChannel()
+  var ev = new MessageEvent(&quot;test&quot;, { data: &quot;testData&quot;, origin: &quot;testOrigin&quot;, lastEventId: &quot;testId&quot;, source: window, ports: [channel.port1] })
+  assert_equals(ev.type, &quot;test&quot;, &quot;type attribute&quot;)
+  assert_equals(ev.data, &quot;testData&quot;, &quot;data attribute&quot;)
+  assert_equals(ev.origin, &quot;testOrigin&quot;, &quot;origin attribute&quot;)
+  assert_equals(ev.lastEventId, &quot;testId&quot;, &quot;lastEventId attribute&quot;)
+  assert_equals(ev.source, window, &quot;source attribute&quot;)
+  assert_array_equals(ev.ports, [channel.port1], &quot;ports attribute&quot;)
+}, &quot;MessageEventInit dictionary&quot;)
+
+test(function() {
+  assert_throws(new TypeError(), function() {
+    new MessageEvent(&quot;test&quot;, { ports: null })
+  })
+}, &quot;Passing null for ports member&quot;)
+
+test(function() {
+  var ev = new MessageEvent(&quot;test&quot;, { ports: [] })
+  assert_true(Array.isArray(ev.ports), &quot;Array.isArray() should return true&quot;)
+  assert_true(Object.isFrozen(ev.ports), &quot;Object.isFrozen() should return true&quot;)
+  assert_true(ev.ports === ev.ports, &quot;ev.ports should return the same object&quot;)
+}, &quot;ports attribute should be a FrozenArray&quot;)
+
+test(function() {
+  var ev = document.createEvent(&quot;messageevent&quot;);
+  var channel = new MessageChannel()
+  ev.initMessageEvent(&quot;test&quot;, true, false, &quot;testData&quot;, &quot;testOrigin&quot;, &quot;testId&quot;, window, [channel.port1])
+  assert_equals(ev.type, &quot;test&quot;, &quot;type attribute&quot;)
+  assert_equals(ev.bubbles, true, &quot;bubbles attribute&quot;)
+  assert_equals(ev.cancelable, false, &quot;bubbles attribute&quot;)
+  assert_equals(ev.data, &quot;testData&quot;, &quot;data attribute&quot;)
+  assert_equals(ev.origin, &quot;testOrigin&quot;, &quot;origin attribute&quot;)
+  assert_equals(ev.lastEventId, &quot;testId&quot;, &quot;lastEventId attribute&quot;)
+  assert_equals(ev.source, window, &quot;source attribute&quot;)
+  assert_array_equals(ev.ports, [channel.port1], &quot;ports attribute&quot;)
+}, &quot;initMessageEvent operation&quot;)
+
+test(function() {
+  var ev = document.createEvent(&quot;messageevent&quot;)
+  assert_throws(new TypeError(), function() {
+    ev.initMessageEvent(&quot;test&quot;, true, false, &quot;testData&quot;, &quot;testOrigin&quot;, &quot;testId&quot;, window, null)
+  })
+}, &quot;Passing null for ports parameter to initMessageEvent&quot;)
+
+test(function() {
+  var ev = document.createEvent(&quot;messageevent&quot;)
+  assert_equals(MessageEvent.prototype.initMessageEvent.length, 8, &quot;MessageEvent.prototype.initMessageEvent.length should be 8&quot;)
+  assert_throws(new TypeError(), function() {
+    ev.initMessageEvent(&quot;test&quot;, true, false, &quot;testData&quot;, &quot;testOrigin&quot;, &quot;testId&quot;, window)
+  }, &quot;Calling initMessageEvent with only 7 parameters should throw a TypeError&quot;)
+}, &quot;All parameters to initMessageEvent should be mandatory&quot;)
+
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapisscriptingeventsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -25,5 +25,6 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/inline-event-handler-ordering.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/invalid-uncompiled-raw-handler-compiled-late.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/invalid-uncompiled-raw-handler-compiled-once.html
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.html
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/onerroreventhandler-frame.html
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/html/webappapis/scripting/events/onerroreventhandler.html
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapissystemstateandcapabilitiesthenavigatorobjectNavigatorIDexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -4,8 +4,11 @@
</span><span class="cx"> PASS appVersion 
</span><span class="cx"> PASS platform 
</span><span class="cx"> PASS product 
</span><del>-PASS taintEnabled 
</del><ins>+PASS productSub 
</ins><span class="cx"> PASS userAgent type 
</span><ins>+PASS userAgent value 
+PASS vendor 
</ins><span class="cx"> PASS vendorSub 
</span><del>-PASS userAgent value 
</del><ins>+PASS taintEnabled 
+PASS oscpu 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapissystemstateandcapabilitiesthenavigatorobjectNavigatorIDjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,11 +1,19 @@
</span><span class="cx"> function run_test() {
</span><ins>+  var compatibilityMode;
+  if (navigator.userAgent.includes(&quot;Chrome&quot;)) {
+    compatibilityMode = &quot;Chrome&quot;;
+  } else if (navigator.userAgent.includes(&quot;WebKit&quot;)) {
+    compatibilityMode = &quot;WebKit&quot;;
+  } else {
+    compatibilityMode = &quot;Gecko&quot;;
+  }
+
</ins><span class="cx">   test(function() {
</span><span class="cx">     assert_equals(navigator.appCodeName, &quot;Mozilla&quot;);
</span><span class="cx">   }, &quot;appCodeName&quot;);
</span><span class="cx"> 
</span><span class="cx">   test(function() {
</span><del>-    assert_equals(typeof navigator.appName, &quot;string&quot;,
-                  &quot;navigator.appName should be a string&quot;);
</del><ins>+    assert_equals(navigator.appName, &quot;Netscape&quot;);
</ins><span class="cx">   }, &quot;appName&quot;);
</span><span class="cx"> 
</span><span class="cx">   test(function() {
</span><span class="lines">@@ -23,21 +31,16 @@
</span><span class="cx">   }, &quot;product&quot;);
</span><span class="cx"> 
</span><span class="cx">   test(function() {
</span><del>-    // See https://www.w3.org/Bugs/Public/show_bug.cgi?id=22555
</del><span class="cx">     if (&quot;window&quot; in self) {
</span><del>-      // If you identify as WebKit, taintEnabled should not exist.
-      if (navigator.userAgent.indexOf(&quot;WebKit&quot;) != -1) {
-        assert_false(&quot;taintEnabled&quot; in navigator);
</del><ins>+      if (compatibilityMode == &quot;Gecko&quot;) {
+        assert_equals(navigator.productSub, &quot;20100101&quot;);
+      } else {
+        assert_equals(navigator.productSub, &quot;20030107&quot;);
</ins><span class="cx">       }
</span><del>-      // Otherwise it should exist and return false.
-      else {
-        assert_false(navigator.taintEnabled());
-      }
</del><span class="cx">     } else {
</span><del>-      // taintEnabled should not exist in workers.
-      assert_false(&quot;taintEnabled&quot; in navigator);
</del><ins>+      assert_false(&quot;productSub&quot; in navigator);
</ins><span class="cx">     }
</span><del>-  }, &quot;taintEnabled&quot;);
</del><ins>+  }, &quot;productSub&quot;);
</ins><span class="cx"> 
</span><span class="cx">   test(function() {
</span><span class="cx">     assert_equals(typeof navigator.userAgent, &quot;string&quot;,
</span><span class="lines">@@ -44,10 +47,6 @@
</span><span class="cx">                   &quot;navigator.userAgent should be a string&quot;);
</span><span class="cx">   }, &quot;userAgent type&quot;);
</span><span class="cx"> 
</span><del>-  test(function() {
-    assert_equals(navigator.vendorSub, &quot;&quot;);
-  }, &quot;vendorSub&quot;);
-
</del><span class="cx">   async_test(function() {
</span><span class="cx">     var request = new XMLHttpRequest();
</span><span class="cx">     request.onload = this.step_func_done(function() {
</span><span class="lines">@@ -60,4 +59,48 @@
</span><span class="cx">                         &quot;filter_name=User-Agent&quot;);
</span><span class="cx">     request.send();
</span><span class="cx">   }, &quot;userAgent value&quot;);
</span><ins>+
+  test(function() {
+    if (&quot;window&quot; in self) {
+      if (compatibilityMode == &quot;Chrome&quot;) {
+        assert_equals(navigator.vendor, &quot;Google Inc.&quot;);
+      } else if (compatibilityMode == &quot;WebKit&quot;) {
+        assert_equals(navigator.vendor, &quot;Apple Computer, Inc.&quot;);
+      } else {
+        assert_equals(navigator.vendor, &quot;&quot;);
+      }
+    } else {
+      assert_false(&quot;vendor&quot; in navigator);
+    }
+  }, &quot;vendor&quot;);
+
+  test(function() {
+    if (&quot;window&quot; in self) {
+      assert_equals(navigator.vendorSub, &quot;&quot;);
+    } else {
+      assert_false(&quot;vendorSub&quot; in navigator);
+    }
+  }, &quot;vendorSub&quot;);
+
+  // &quot;If the navigator compatibility mode is Gecko, then the user agent must
+  // also support the following partial interface&quot; (taintEnabled() and oscpu)
+  // See https://www.w3.org/Bugs/Public/show_bug.cgi?id=22555 and
+  // https://www.w3.org/Bugs/Public/show_bug.cgi?id=27820
+
+  test(function() {
+    if (&quot;window&quot; in self &amp;&amp; compatibilityMode == &quot;Gecko&quot;) {
+      assert_false(navigator.taintEnabled());
+    } else {
+      assert_false(&quot;taintEnabled&quot; in navigator);
+    }
+  }, &quot;taintEnabled&quot;);
+
+  test(function() {
+    if (&quot;window&quot; in self &amp;&amp; compatibilityMode == &quot;Gecko&quot;) {
+      assert_equals(typeof navigator.oscpu, &quot;string&quot;,
+                    &quot;navigator.oscpu should be a string&quot;);
+    } else {
+      assert_false(&quot;oscpu&quot; in navigator);
+    }
+  }, &quot;oscpu&quot;);
</ins><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestslintwhitelist"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/lint.whitelist (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/lint.whitelist        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/lint.whitelist        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -133,6 +133,8 @@
</span><span class="cx"> # The tests under this directory are not done by us
</span><span class="cx"> *:webgl/conformance-1.0.3/*
</span><span class="cx"> 
</span><ins>+# CI scripts
+PRINT STATEMENT:check_stability.py
</ins><span class="cx"> 
</span><span class="cx"> # Git submodules are not currently scanned
</span><span class="cx"> *:tools/*
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlsetters_testsjson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -973,6 +973,15 @@
</span><span class="cx">                 &quot;href&quot;: &quot;http://example.net/..%c3%89t%C3%A9&quot;,
</span><span class="cx">                 &quot;pathname&quot;: &quot;/..%c3%89t%C3%A9&quot;
</span><span class="cx">             }
</span><ins>+        },
+        {
+            &quot;comment&quot;: &quot;? needs to be encoded&quot;,
+            &quot;href&quot;: &quot;http://example.net&quot;,
+            &quot;new_value&quot;: &quot;?&quot;,
+            &quot;expected&quot;: {
+                &quot;href&quot;: &quot;http://example.net/%3F&quot;,
+                &quot;pathname&quot;: &quot;/%3F&quot;
+            }
</ins><span class="cx">         }
</span><span class="cx">     ],
</span><span class="cx">     &quot;search&quot;: [
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurlsettersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -1,24 +1,66 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Loading data… 
</span><del>-FAIL Setting &lt;a://example.net&gt;.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL Setting &lt;a://example.net&gt;.protocol = 'b' assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
-FAIL Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
-FAIL Setting &lt;a://example.net&gt;.protocol = 'é' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL Setting &lt;a://example.net&gt;.protocol = '0b' No leading digit assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL Setting &lt;a://example.net&gt;.protocol = '+b' No leading punctuation assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL Setting &lt;a://example.net&gt;.protocol = 'bC0+-.' assert_equals: expected &quot;bc0+-.://example.net/&quot; but got &quot;bc0+-.://example.net&quot;
-FAIL Setting &lt;a://example.net&gt;.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL Setting &lt;a://example.net&gt;.protocol = 'bé' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
-FAIL Setting &lt;http://example.net&gt;.protocol = 'b' Can’t switch from special scheme to non-special. Note: this may change, see https://github.com/whatwg/url/issues/104 assert_equals: expected &quot;http://example.net/&quot; but got &quot;b://example.net/&quot;
-FAIL Setting &lt;mailto:me@example.net&gt;.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected &quot;mailto:me@example.net&quot; but got &quot;http://me@example.net/&quot;
-FAIL Setting &lt;ssh://me@example.net&gt;.protocol = 'http' Can’t switch from non-special scheme to special. Note: this may change, see https://github.com/whatwg/url/issues/104 assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;http://me@example.net/&quot;
-PASS Setting &lt;http://example.net&gt;.protocol = 'https:foo : bar' Stuff after the first ':' is ignored 
-PASS Setting &lt;data:text/html,&lt;p&gt;Test&gt;.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored 
-FAIL Setting &lt;file:///home/you/index.html&gt;.username = 'me' No host means no username assert_equals: expected &quot;file:///home/you/index.html&quot; but got &quot;file://me@/home/you/index.html&quot;
-FAIL Setting &lt;unix:/run/foo.socket&gt;.username = 'me' No host means no username assert_equals: expected &quot;unix:/run/foo.socket&quot; but got &quot;unix://me@/run/foo.socket&quot;
-FAIL Setting &lt;mailto:you@example.net&gt;.username = 'me' Cannot-be-a-base means no username assert_equals: expected &quot;mailto:you@example.net&quot; but got &quot;mailto://me%40you@example.net&quot;
-PASS Setting &lt;http://example.net&gt;.username = 'me' 
-PASS Setting &lt;http://:secret@example.net&gt;.username = 'me' 
-PASS Setting &lt;http://me@example.net&gt;.username = '' 
-PASS Setting &lt;http://me:secret@example.net&gt;.username = '' 
-PASS Setting &lt;http://example.net&gt;.username = '
</del><span class="cx">\ No newline at end of file
</span><ins>+FAIL URL: Setting &lt;a://example.net&gt;.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL URL: Setting &lt;a://example.net&gt;.protocol = 'b' assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
+FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'b' assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
+FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'b' assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
+FAIL URL: Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
+FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
+FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected &quot;b://example.net/&quot; but got &quot;b://example.net&quot;
+FAIL URL: Setting &lt;a://example.net&gt;.protocol = 'é' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'é' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'é' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL URL: Setting &lt;a://example.net&gt;.protocol = '0b' No leading digit assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = '0b' No leading digit assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = '0b' No leading digit assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL URL: Setting &lt;a://example.net&gt;.protocol = '+b' No leading punctuation assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = '+b' No leading punctuation assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = '+b' No leading punctuation assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL URL: Setting &lt;a://example.net&gt;.protocol = 'bC0+-.' assert_equals: expected &quot;bc0+-.://example.net/&quot; but got &quot;bc0+-.://example.net&quot;
+FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'bC0+-.' assert_equals: expected &quot;bc0+-.://example.net/&quot; but got &quot;bc0+-.://example.net&quot;
+FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'bC0+-.' assert_equals: expected &quot;bc0+-.://example.net/&quot; but got &quot;bc0+-.://example.net&quot;
+FAIL URL: Setting &lt;a://example.net&gt;.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL URL: Setting &lt;a://example.net&gt;.protocol = 'bé' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL &lt;a&gt;: Setting &lt;a://example.net&gt;.protocol = 'bé' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL &lt;area&gt;: Setting &lt;a://example.net&gt;.protocol = 'bé' Non-ASCII is rejected assert_equals: expected &quot;a://example.net/&quot; but got &quot;a://example.net&quot;
+FAIL URL: Setting &lt;http://example.net&gt;.protocol = 'b' Can’t switch from special scheme to non-special. Note: this may change, see https://github.com/whatwg/url/issues/104 assert_equals: expected &quot;http://example.net/&quot; but got &quot;b://example.net/&quot;
+FAIL &lt;a&gt;: Setting &lt;http://example.net&gt;.protocol = 'b' Can’t switch from special scheme to non-special. Note: this may change, see https://github.com/whatwg/url/issues/104 assert_equals: expected &quot;http://example.net/&quot; but got &quot;b://example.net/&quot;
+FAIL &lt;area&gt;: Setting &lt;http://example.net&gt;.protocol = 'b' Can’t switch from special scheme to non-special. Note: this may change, see https://github.com/whatwg/url/issues/104 assert_equals: expected &quot;http://example.net/&quot; but got &quot;b://example.net/&quot;
+FAIL URL: Setting &lt;mailto:me@example.net&gt;.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected &quot;mailto:me@example.net&quot; but got &quot;http://me@example.net/&quot;
+FAIL &lt;a&gt;: Setting &lt;mailto:me@example.net&gt;.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected &quot;mailto:me@example.net&quot; but got &quot;http://me@example.net/&quot;
+FAIL &lt;area&gt;: Setting &lt;mailto:me@example.net&gt;.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected &quot;mailto:me@example.net&quot; but got &quot;http://me@example.net/&quot;
+FAIL URL: Setting &lt;ssh://me@example.net&gt;.protocol = 'http' Can’t switch from non-special scheme to special. Note: this may change, see https://github.com/whatwg/url/issues/104 assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;http://me@example.net/&quot;
+FAIL &lt;a&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'http' Can’t switch from non-special scheme to special. Note: this may change, see https://github.com/whatwg/url/issues/104 assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;http://me@example.net/&quot;
+FAIL &lt;area&gt;: Setting &lt;ssh://me@example.net&gt;.protocol = 'http' Can’t switch from non-special scheme to special. Note: this may change, see https://github.com/whatwg/url/issues/104 assert_equals: expected &quot;ssh://me@example.net/&quot; but got &quot;http://me@example.net/&quot;
+PASS URL: Setting &lt;http://example.net&gt;.protocol = 'https:foo : bar' Stuff after the first ':' is ignored 
+PASS &lt;a&gt;: Setting &lt;http://example.net&gt;.protocol = 'https:foo : bar' Stuff after the first ':' is ignored 
+PASS &lt;area&gt;: Setting &lt;http://example.net&gt;.protocol = 'https:foo : bar' Stuff after the first ':' is ignored 
+PASS URL: Setting &lt;data:text/html,&lt;p&gt;Test&gt;.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored 
+PASS &lt;a&gt;: Setting &lt;data:text/html,&lt;p&gt;Test&gt;.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored 
+PASS &lt;area&gt;: Setting &lt;data:text/html,&lt;p&gt;Test&gt;.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored 
+FAIL URL: Setting &lt;file:///home/you/index.html&gt;.username = 'me' No host means no username assert_equals: expected &quot;file:///home/you/index.html&quot; but got &quot;file://me@/home/you/index.html&quot;
+FAIL &lt;a&gt;: Setting &lt;file:///home/you/index.html&gt;.username = 'me' No host means no username assert_equals: expected &quot;file:///home/you/index.html&quot; but got &quot;file://me@/home/you/index.html&quot;
+FAIL &lt;area&gt;: Setting &lt;file:///home/you/index.html&gt;.username = 'me' No host means no username assert_equals: expected &quot;file:///home/you/index.html&quot; but got &quot;file://me@/home/you/index.html&quot;
+FAIL URL: Setting &lt;unix:/run/foo.socket&gt;.username = 'me' No host means no username assert_equals: expected &quot;unix:/run/foo.socket&quot; but got &quot;unix://me@/run/foo.socket&quot;
+FAIL &lt;a&gt;: Setting &lt;unix:/run/foo.socket&gt;.username = 'me' No host means no username assert_equals: expected &quot;unix:/run/foo.socket&quot; but got &quot;unix://me@/run/foo.socket&quot;
+FAIL &lt;area&gt;: Setting &lt;unix:/run/foo.socket&gt;.username = 'me' No host means no username assert_equals: expected &quot;unix:/run/foo.socket&quot; but got &quot;unix://me@/run/foo.socket&quot;
+FAIL URL: Setting &lt;mailto:you@example.net&gt;.username = 'me' Cannot-be-a-base means no username assert_equals: expected &quot;mailto:you@example.net&quot; but got &quot;mailto://me%40you@example.net&quot;
+FAIL &lt;a&gt;: Setting &lt;mailto:you@example.net&gt;.username = 'me' Cannot-be-a-base means no username assert_equals: expected &quot;mailto:you@example.net&quot; but got &quot;mailto://me%40you@example.net&quot;
+FAIL &lt;area&gt;: Setting &lt;mailto:you@example.net&gt;.username = 'me' Cannot-be-a-base means no username assert_equals: expected &quot;mailto:you@example.net&quot; but got &quot;mailto://me%40you@example.net&quot;
+PASS URL: Setting &lt;http://example.net&gt;.username = 'me' 
+PASS &lt;a&gt;: Setting &lt;http://example.net&gt;.username = 'me' 
+PASS &lt;area&gt;: Setting &lt;http://example.net&gt;.username = 'me' 
+PASS URL: Setting &lt;http://:secret@example.net&gt;.username = 'me' 
+PASS &lt;a&gt;: Setting &lt;http://:secret@example.net&gt;.username = 'me' 
+PASS &lt;area&gt;: Setting &lt;http://:secret@example.net&gt;.username = 'me' 
+PASS URL: Setting &lt;http://me@example.net&gt;.username = '' 
+PASS &lt;a&gt;: Setting &lt;http://me@example.net&gt;.username = '' 
+PASS &lt;area&gt;: Setting &lt;http://me@example.net&gt;.username = '' 
+PASS URL: Setting &lt;http://me:secret@example.net&gt;.username = '' 
+PASS &lt;a&gt;: Setting &lt;http://me:secret@example.net&gt;.username = '' 
+PASS &lt;area&gt;: Setting &lt;http://me:secret@example.net&gt;.username = '' 
+PASS URL: Setting &lt;http://example.net&gt;.username = '
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsurlurlsettershtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters.html (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters.html        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -37,7 +37,23 @@
</span><span class="cx">         for (var attribute in test_case.expected) {
</span><span class="cx">           assert_equals(url[attribute], test_case.expected[attribute])
</span><span class="cx">         }
</span><del>-      }, name)
</del><ins>+      }, &quot;URL: &quot; + name)
+      test(function() {
+        var url = document.createElement(&quot;a&quot;);
+        url.href = test_case.href;
+        url[attribute_to_be_set] = test_case.new_value;
+        for (var attribute in test_case.expected) {
+          assert_equals(url[attribute], test_case.expected[attribute])
+        }
+      }, &quot;&lt;a&gt;: &quot; + name)
+      test(function() {
+        var url = document.createElement(&quot;area&quot;);
+        url.href = test_case.href;
+        url[attribute_to_be_set] = test_case.new_value;
+        for (var attribute in test_case.expected) {
+          assert_equals(url[attribute], test_case.expected[attribute])
+        }
+      }, &quot;&lt;area&gt;: &quot; + name)
</ins><span class="cx">     }
</span><span class="cx">   }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/w3c-import.log (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/w3c-import.log        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -18,6 +18,9 @@
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/CONTRIBUTING.md
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/LICENSE
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/README.md
</span><ins>+/LayoutTests/imported/w3c/web-platform-tests/check_stability.py
+/LayoutTests/imported/w3c/web-platform-tests/ci_lint.sh
+/LayoutTests/imported/w3c/web-platform-tests/ci_stability.sh
</ins><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/config.default.json
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/diff-manifest.py
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/lint
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcOWNERS"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/OWNERS (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/OWNERS                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/OWNERS        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+@dontcallmedom
+@alvestrand
+@phoglund
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcdatachannelemptystringhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/datachannel-emptystring.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/datachannel-emptystring.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/datachannel-emptystring.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,108 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;!-- 
+This test creates a data channel between two local PeerConnection instances
+and ensures that an empty string sent by one is received by the second.
+ --&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
+  &lt;title&gt;RTCPeerConnection Data Channel Empty String Test&lt;/title&gt;
+&lt;/head&gt;
+&lt;body&gt;
+  &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+  &lt;h2&gt;Messages exchanged&lt;/h2&gt;
+  &lt;div id=&quot;msg&quot;&gt;&lt;/div&gt;
+
+  &lt;!--  These files are in place when executing on W3C.  --&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 type=&quot;text/javascript&quot;&gt;
+  var test = async_test('Can send empty strings across a WebRTC data channel.');
+
+  var gFirstConnection = null;
+  var gSecondConnection = null;
+  var sendChannel = null;
+  var receiveChannel = null;
+
+  var onReceiveChannel = function (event) {
+    receiveChannel = event.channel;
+    receiveChannel.onmessage = onReceiveMessage;
+  };
+
+
+  // When the data channel is open, send an empty string message
+  // followed by a message that contains the string &quot;done&quot;.
+  var onSendChannelOpen = function (event) {
+    var msgEl = document.getElementById('msg');
+    sendChannel.send('');
+    msgEl.innerHTML += 'Sent: [empty string]&lt;br&gt;';
+    sendChannel.send('done');
+    msgEl.innerHTML += 'Sent: &quot;done&quot;&lt;br&gt;';
+  };
+
+  // Check the messages received on the other side.
+  // There should be an empty string message followed by a message that
+  // contains the string &quot;done&quot;.
+  // Pass/Fail the test according to the messages received
+  var emptyMessageReceived = false;
+  var onReceiveMessage = test.step_func(function (event) {
+    var msgEl = document.getElementById('msg');
+    msgEl.innerHTML += 'Received: ' +
+        (event.data ? '&quot;' + event.data + '&quot;' : '[empty string]') + '&lt;br&gt;';
+    if (emptyMessageReceived) {
+      assert_equals(event.data, 'done', 'The &quot;done&quot; message was not received');
+      test.done();
+    }
+    else {
+      assert_equals(event.data, '', 'Empty message not received');
+      emptyMessageReceived = true;
+    }
+  });
+
+  function exchangeIce(pc) {
+     return function(e) {
+       if (e.candidate) {
+          pc.addIceCandidate(e.candidate);
+       }
+     };
+  }
+
+  function exchangeDescription(pc1, pc2) {
+     return function() {
+       return pc1.setRemoteDescription(pc2.localDescription);
+     };
+  }
+
+  test.step(function() {
+    gFirstConnection = new RTCPeerConnection(null);
+
+    gSecondConnection = new RTCPeerConnection(null);
+
+    gFirstConnection.onicecandidate = exchangeIce(gSecondConnection);
+    gSecondConnection.onicecandidate = exchangeIce(gFirstConnection);
+
+    gSecondConnection.ondatachannel = onReceiveChannel;
+
+    // Note the data channel will preserve the order of messages
+    // exchanged over it by default.
+    sendChannel = gFirstConnection.createDataChannel('sendDataChannel');
+    sendChannel.onopen = onSendChannelOpen;
+
+    gFirstConnection.createOffer()
+    .then(gFirstConnection.setLocalDescription.bind(gFirstConnection))
+    .then(exchangeDescription(gSecondConnection, gFirstConnection))
+    .then(function() {
+      return gSecondConnection.createAnswer();
+    })
+    .then(gSecondConnection.setLocalDescription.bind(gSecondConnection))
+    .then(exchangeDescription(gFirstConnection, gSecondConnection))
+    .catch(test.step_func(function(e) {
+      assert_unreached('Error ' + e.name + ': ' + e.message);
+     }));
+  });
+&lt;/script&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
+
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcnomediacallhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,139 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;!-- 
+This test uses the legacy callback API with no media, and thus does not require fake media devices.
+ --&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
+  &lt;title&gt;RTCPeerConnection No-Media Connection Test&lt;/title&gt;
+&lt;/head&gt;
+&lt;body&gt;
+  &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+  &lt;h2&gt;iceConnectionState info&lt;/h2&gt;
+  &lt;div id=&quot;stateinfo&quot;&gt;
+  &lt;/div&gt;
+
+  &lt;!--  These files are in place when executing on W3C.  --&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 type=&quot;text/javascript&quot;&gt;
+  var test = async_test('Can set up a basic WebRTC call with no data.');
+
+  var gFirstConnection = null;
+  var gSecondConnection = null;
+
+  var onOfferCreated = test.step_func(function(offer) {
+    gFirstConnection.setLocalDescription(offer, ignoreSuccess,
+                                         failed('setLocalDescription first'));
+
+    // This would normally go across the application's signaling solution.
+    // In our case, the &quot;signaling&quot; is to call this function.
+    receiveCall(offer.sdp);
+  });
+
+  function receiveCall(offerSdp) {
+
+    var parsedOffer = new RTCSessionDescription({ type: 'offer',
+                                                  sdp: offerSdp });
+    // These functions use the legacy interface extensions to RTCPeerConnection.
+    gSecondConnection.setRemoteDescription(parsedOffer,
+      function() {
+        gSecondConnection.createAnswer(onAnswerCreated,
+                                       failed('createAnswer'));
+      },
+      failed('setRemoteDescription second'));
+  };
+
+  var onAnswerCreated = test.step_func(function(answer) {
+    gSecondConnection.setLocalDescription(answer, ignoreSuccess,
+                                          failed('setLocalDescription second'));
+
+    // Similarly, this would go over the application's signaling solution.
+    handleAnswer(answer.sdp);
+  });
+
+  function handleAnswer(answerSdp) {
+    var parsedAnswer = new RTCSessionDescription({ type: 'answer',
+                                                   sdp: answerSdp });
+    gFirstConnection.setRemoteDescription(parsedAnswer, ignoreSuccess,
+                                          failed('setRemoteDescription first'));
+  };
+
+  var onIceCandidateToFirst = test.step_func(function(event) {
+    // If event.candidate is null = no more candidates.
+    if (event.candidate) {
+      gSecondConnection.addIceCandidate(event.candidate);
+    }
+  });
+
+  var onIceCandidateToSecond = test.step_func(function(event) {
+    if (event.candidate) {
+      gFirstConnection.addIceCandidate(event.candidate);
+    }
+  });
+
+  var onRemoteStream = test.step_func(function(event) {
+    assert_unreached('WebRTC received a stream when there was none');
+  });
+
+  var onIceConnectionStateChange = test.step_func(function(event) {
+    assert_equals(event.type, 'iceconnectionstatechange');
+    assert_not_equals(gFirstConnection.iceConnectionState, &quot;failed&quot;, &quot;iceConnectionState of first connection&quot;);
+    assert_not_equals(gSecondConnection.iceConnectionState, &quot;failed&quot;, &quot;iceConnectionState of second connection&quot;);
+    var stateinfo = document.getElementById('stateinfo');
+    stateinfo.innerHTML = 'First: ' + gFirstConnection.iceConnectionState
+                        + '&lt;br&gt;Second: ' + gSecondConnection.iceConnectionState;
+    // Note: All these combinations are legal states indicating that the
+    // call has connected. All browsers should end up in completed/completed,
+    // but as of this moment, we've chosen to terminate the test early.
+    // TODO: Revise test to ensure completed/completed is reached.
+    if (gFirstConnection.iceConnectionState == 'connected' &amp;&amp;
+        gSecondConnection.iceConnectionState == 'connected') {
+      test.done()
+    }
+    if (gFirstConnection.iceConnectionState == 'connected' &amp;&amp;
+        gSecondConnection.iceConnectionState == 'completed') {
+      test.done()
+    }
+    if (gFirstConnection.iceConnectionState == 'completed' &amp;&amp;
+        gSecondConnection.iceConnectionState == 'connected') {
+      test.done()
+    }
+    if (gFirstConnection.iceConnectionState == 'completed' &amp;&amp;
+        gSecondConnection.iceConnectionState == 'completed') {
+      test.done()
+    }
+  });
+
+  // Returns a suitable error callback.
+  function failed(function_name) {
+    return test.step_func(function() {
+      assert_unreached('WebRTC called error callback for ' + function_name);
+    });
+  }
+
+  // Returns a suitable do-nothing.
+  function ignoreSuccess(function_name) {
+  }
+
+  // This function starts the test.
+  test.step(function() {
+    gFirstConnection = new RTCPeerConnection(null);
+    gFirstConnection.onicecandidate = onIceCandidateToFirst;
+    gFirstConnection.oniceconnectionstatechange = onIceConnectionStateChange;
+
+    gSecondConnection = new RTCPeerConnection(null);
+    gSecondConnection.onicecandidate = onIceCandidateToSecond;
+    gSecondConnection.onaddstream = onRemoteStream;
+    gSecondConnection.oniceconnectionstatechange = onIceConnectionStateChange;
+
+    // The offerToReceiveVideo is necessary and sufficient to make
+    // an actual connection.
+    gFirstConnection.createOffer(onOfferCreated, failed('createOffer'),
+        {offerToReceiveVideo: true});
+  });
+&lt;/script&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcpromisescallhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/promises-call.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/promises-call.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/promises-call.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,121 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;!-- 
+This test uses data only, and thus does not require fake media devices.
+ --&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
+  &lt;title&gt;RTCPeerConnection Data-Only Connection Test with Promises&lt;/title&gt;
+&lt;/head&gt;
+&lt;body&gt;
+  &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+  &lt;h2&gt;iceConnectionState info&lt;/h2&gt;
+  &lt;div id=&quot;stateinfo&quot;&gt;
+  &lt;/div&gt;
+
+  &lt;!--  These files are in place when executing on W3C.  --&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 type=&quot;text/javascript&quot;&gt;
+  var test = async_test('Can set up a basic WebRTC call with only data using promises.');
+
+  var gFirstConnection = null;
+  var gSecondConnection = null;
+
+  var onIceCandidateToFirst = test.step_func(function(event) {
+    // If event.candidate is null = no more candidates.
+    if (event.candidate) {
+      gSecondConnection.addIceCandidate(event.candidate);
+    }
+  });
+
+  var onIceCandidateToSecond = test.step_func(function(event) {
+    if (event.candidate) {
+      gFirstConnection.addIceCandidate(event.candidate);
+    }
+  });
+
+  var onRemoteStream = test.step_func(function(event) {
+    assert_unreached('WebRTC received a stream when there was none');
+  });
+
+  var onIceConnectionStateChange = test.step_func(function(event) {
+    assert_equals(event.type, 'iceconnectionstatechange');
+    var stateinfo = document.getElementById('stateinfo');
+    stateinfo.innerHTML = 'First: ' + gFirstConnection.iceConnectionState
+                        + '&lt;br&gt;Second: ' + gSecondConnection.iceConnectionState;
+    // Note: All these combinations are legal states indicating that the
+    // call has connected. All browsers should end up in completed/completed,
+    // but as of this moment, we've chosen to terminate the test early.
+    // TODO: Revise test to ensure completed/completed is reached.
+    if (gFirstConnection.iceConnectionState == 'connected' &amp;&amp;
+        gSecondConnection.iceConnectionState == 'connected') {
+      test.done()
+    }
+    if (gFirstConnection.iceConnectionState == 'connected' &amp;&amp;
+        gSecondConnection.iceConnectionState == 'completed') {
+      test.done()
+    }
+    if (gFirstConnection.iceConnectionState == 'completed' &amp;&amp;
+        gSecondConnection.iceConnectionState == 'connected') {
+      test.done()
+    }
+    if (gFirstConnection.iceConnectionState == 'completed' &amp;&amp;
+        gSecondConnection.iceConnectionState == 'completed') {
+      test.done()
+    }
+  });
+
+  // This function starts the test.
+  test.step(function() {
+    gFirstConnection = new RTCPeerConnection(null);
+    gFirstConnection.onicecandidate = onIceCandidateToFirst;
+    gFirstConnection.oniceconnectionstatechange = onIceConnectionStateChange;
+
+    gSecondConnection = new RTCPeerConnection(null);
+    gSecondConnection.onicecandidate = onIceCandidateToSecond;
+    gSecondConnection.onaddstream = onRemoteStream;
+    gSecondConnection.oniceconnectionstatechange = onIceConnectionStateChange;
+
+    // The createDataChannel is necessary and sufficient to make
+    // sure the ICE connection be attempted.
+    gFirstConnection.createDataChannel('channel');
+
+    var atStep = 'Create offer';
+
+    gFirstConnection.createOffer()
+    .then(function(offer) {
+      atStep = 'Set local description at first';
+      return gFirstConnection.setLocalDescription(offer);
+    })
+    .then(function() {
+      atStep = 'Set remote description at second';
+      return gSecondConnection.setRemoteDescription(
+          gFirstConnection.localDescription);
+    })
+    .then(function() {
+      atStep = 'Create answer';
+      return gSecondConnection.createAnswer();
+    })
+    .then(function(answer) {
+      atStep = 'Set local description at second';
+      return gSecondConnection.setLocalDescription(answer);
+    })
+    .then(function() {
+      atStep = 'Set remote description at first';
+      return gFirstConnection.setRemoteDescription(
+          gSecondConnection.localDescription);
+    })
+    .then(function() {
+      atStep = 'Negotiation completed';
+    })
+    .catch(test.step_func(function(e) {
+      assert_unreached('Error ' + e.name + ': ' + e.message +
+                       ' happened at step ' + atStep);
+    }));
+  });
+&lt;/script&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionrtcpeerconnectionconstructorhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,154 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;RTCPeerConnection 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;script&gt;
+test(function() {
+  assert_equals(RTCPeerConnection.length, 0);
+}, 'RTCPeerConnection.length');
+
+// These are used for string and number dictionary members to see if they are
+// being accessed at all.
+const toStringThrows = { toString: function() { throw new Error; } };
+const toNumberThrows = Symbol();
+
+// Test the first argument of the constructor. The key is the argument itself,
+// and the value is the first argument for assert_throws, or false if no
+// exception should be thrown.
+const testArgs = {
+  // No argument or equivalent.
+  '': false,
+  'null': false,
+  'undefined': false,
+  '{}': false,
+
+  // iceServers
+  '{ iceServers: null }': new TypeError,
+  '{ iceServers: undefined }': false,
+  '{ iceServers: [] }': false,
+  '{ iceServers: [{}] }': new TypeError,
+  '{ iceServers: [null] }': new TypeError,
+  '{ iceServers: [undefined] }': new TypeError,
+  '{ iceServers: [{ urls: &quot;stun:stun1.example.net&quot; }] }': false,
+  '{ iceServers: [{ urls: [] }] }': false,
+  '{ iceServers: [{ urls: [&quot;stun:stun1.example.net&quot;] }] }': false,
+  '{ iceServers: [{ urls: [&quot;stun:stun1.example.net&quot;, &quot;stun:stun2.example.net&quot;] }] }': false,
+  // username and password required for turn: and turns:
+  '{ iceServers: [{ urls: &quot;turns:turn.example.org&quot;, username: &quot;user&quot;, credential: &quot;cred&quot; }] }': false,
+  '{ iceServers: [{ urls: &quot;turn:turn.example.net&quot;, username: &quot;user&quot;, credential: &quot;cred&quot; }] }': false,
+  '{ iceServers: [{ urls: [&quot;turns:turn.example.org&quot;, &quot;turn:turn.example.net&quot;], username: &quot;user&quot;, credential: &quot;cred&quot; }] }': false,
+  '{ iceServers: [{ urls: &quot;stun:stun1.example.net&quot;, credentialType: &quot;password&quot; }] }': false,
+  '{ iceServers: [{ urls: &quot;stun:stun1.example.net&quot;, credentialType: &quot;token&quot; }] }': false,
+  '{ iceServers: [{ urls: &quot;turn:turn.example.net&quot; }] }': 'InvalidAccessError',
+  '{ iceServers: [{ urls: &quot;turn:turn.example.net&quot;, username: &quot;user&quot; }] }': 'InvalidAccessError',
+  '{ iceServers: [{ urls: &quot;turn:turn.example.net&quot;, credential: &quot;cred&quot; }] }': 'InvalidAccessError',
+  '{ iceServers: [{ urls: &quot;turns:turn.example.org&quot; }] }': 'InvalidAccessError',
+  '{ iceServers: [{ urls: &quot;turns:turn.example.org&quot;, username: &quot;user&quot; }] }': 'InvalidAccessError',
+  '{ iceServers: [{ urls: &quot;turns:turn.example.org&quot;, credential: &quot;cred&quot; }] }': 'InvalidAccessError',
+  '{ iceServers: [{ urls: &quot;relative-url&quot; }] }': 'SyntaxError',
+  '{ iceServers: [{ urls: &quot;http://example.com&quot; }] }': 'SyntaxError',
+  // credentialType
+  '{ iceServers: [{ urls: [] }] }': false,
+  '{ iceServers: [{ urls: [], credentialType: &quot;password&quot; }] }': false,
+  '{ iceServers: [{ urls: [], credentialType: &quot;token&quot; }] }': false,
+  '{ iceServers: [{ urls: [], credentialType: &quot;invalid&quot; }] }': new TypeError,
+  // Blink and Gecko fall back to url, but it's not in the spec.
+  '{ iceServers: [{ url: &quot;stun:stun1.example.net&quot; }] }': new TypeError,
+
+  // iceTransportPolicy
+  '{ iceTransportPolicy: null }': new TypeError,
+  '{ iceTransportPolicy: undefined }': false,
+  '{ iceTransportPolicy: &quot;relay&quot; }': false,
+  '{ iceTransportPolicy: &quot;all&quot; }': false,
+  '{ iceTransportPolicy: &quot;invalid&quot; }': new TypeError,
+  // &quot;none&quot; is in Blink and Gecko's IDL, but not in the spec.
+  '{ iceTransportPolicy: &quot;none&quot; }': new TypeError,
+  // iceTransportPolicy is called iceTransports in Blink.
+  '{ iceTransports: &quot;invalid&quot; }': false,
+  '{ iceTransports: &quot;none&quot; }': false,
+
+  // bundlePolicy
+  '{ bundlePolicy: null }': new TypeError,
+  '{ bundlePolicy: undefined }': false,
+  '{ bundlePolicy: &quot;balanced&quot; }': false,
+  '{ bundlePolicy: &quot;max-compat&quot; }': false,
+  '{ bundlePolicy: &quot;max-bundle&quot; }': false,
+  '{ bundlePolicy: &quot;invalid&quot; }': new TypeError,
+
+  // rtcpMuxPolicy
+  '{ rtcpMuxPolicy: null }': new TypeError,
+  '{ rtcpMuxPolicy: undefined }': false,
+  '{ rtcpMuxPolicy: &quot;negotiate&quot; }': false,
+  '{ rtcpMuxPolicy: &quot;require&quot; }': false,
+  '{ rtcpMuxPolicy: &quot;invalid&quot; }': new TypeError,
+
+  // peerIdentity
+  '{ peerIdentity: toStringThrows }': new Error,
+
+  // certificates
+  '{ certificates: null }': new TypeError,
+  '{ certificates: undefined }': false,
+  '{ certificates: [] }': false,
+  '{ certificates: [null] }': new TypeError,
+  '{ certificates: [undefined] }': new TypeError,
+
+  // iceCandidatePoolSize
+  '{ iceCandidatePoolSize: toNumberThrows }': new TypeError,
+}
+
+for (const arg in testArgs) {
+  const expr = 'new RTCPeerConnection(' + arg + ')';
+  test(function() {
+    const throws = testArgs[arg];
+    if (throws) {
+      assert_throws(throws, function() {
+        eval(expr);
+      });
+    } else {
+      eval(expr);
+    }
+  }, expr);
+}
+
+promise_test(function() {
+  return RTCPeerConnection.generateCertificate({ name: &quot;ECDSA&quot;, namedCurve: &quot;P-256&quot; })
+      .then(certificate =&gt; new RTCPeerConnection({ certificates: [certificate] }));
+}, 'new RTCPeerConnection({ certificates: [certificate] })');
+
+promise_test(function() {
+  return RTCPeerConnection.generateCertificate({ name: &quot;ECDSA&quot;, namedCurve: &quot;P-256&quot;, expires: 0 })
+      .then(certificate =&gt; {
+        assert_less_than_equal(certificate.expires, Date.now());
+        assert_throws('InvalidAccessError', function() {
+          new RTCPeerConnection({ certificates: [certificate] });
+        });
+      });
+}, 'new RTCPeerConnection({ certificates: [expiredCertificate] })');
+
+// The initial values of attributes of RTCPeerConnection.
+const initialState = {
+  'localDescription': null,
+  'currentLocalDescription': null,
+  'pendingLocalDescription': null,
+  'remoteDescription': null,
+  'currentRemoteDescription': null,
+  'pendingRemoteDescription': null,
+  'signalingState': 'stable',
+  'iceGatheringState': 'new',
+  'iceConnectionState': 'new',
+  'connectionState': 'new',
+  'canTrickleIceCandidates': null,
+  // TODO: defaultIceServers
+};
+
+for (const attr in initialState) {
+  test(function() {
+    // Use one RTCPeerConnection instance for all initial value tests.
+    if (!window.pc) {
+      window.pc = new RTCPeerConnection;
+    }
+    assert_equals(pc[attr], initialState[attr]);
+  }, attr + ' initial value');
+}
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionrtcpeerconnectionidlhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,107 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset=utf-8&gt;
+&lt;title&gt;IDL check of RTCPeerConnection&lt;/title&gt;
+&lt;link rel=&quot;author&quot; title=&quot;Harald Alvestrand&quot; href=&quot;mailto:hta@google.com&quot;/&gt;
+&lt;link rel=&quot;help&quot; href=&quot;http://w3c.github.io/webrtc-pc/#rtcpeerconnection-interface&quot;&gt;
+&lt;/head&gt;
+&lt;body&gt;
+
+&lt;h1 class=&quot;instructions&quot;&gt;Description&lt;/h1&gt;
+&lt;p class=&quot;instructions&quot;&gt;This test verifies the availability of the RTCPeerConnection interface.&lt;/p&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 src=/resources/WebIDLParser.js&gt;&lt;/script&gt;
+&lt;script src=/resources/idlharness.js&gt;&lt;/script&gt;
+
+&lt;!--  The IDL is copied from the 22 September 2015 editors' draft.  --&gt;
+&lt;script type=&quot;text/plain&quot;&gt;
+interface EventTarget {
+    // Only a dummy definition is needed here.
+};
+[ Constructor (optional RTCConfiguration configuration)]
+interface RTCPeerConnection : EventTarget  {
+    Promise&lt;RTCSessionDescription&gt; createOffer (optional RTCOfferOptions options);
+    Promise&lt;RTCSessionDescription&gt; createAnswer (optional RTCAnswerOptions options);
+    Promise&lt;void&gt;                  setLocalDescription (RTCSessionDescription description);
+    readonly    attribute RTCSessionDescription? localDescription;
+    readonly    attribute RTCSessionDescription? currentLocalDescription;
+    readonly    attribute RTCSessionDescription? pendingLocalDescription;
+    Promise&lt;void&gt;                  setRemoteDescription (RTCSessionDescription description);
+    readonly    attribute RTCSessionDescription? remoteDescription;
+    readonly    attribute RTCSessionDescription? currentRemoteDescription;
+    readonly    attribute RTCSessionDescription? pendingRemoteDescription;
+    Promise&lt;void&gt;                  addIceCandidate (RTCIceCandidate candidate);
+    readonly    attribute RTCSignalingState      signalingState;
+    readonly    attribute RTCIceGatheringState   iceGatheringState;
+    readonly    attribute RTCIceConnectionState  iceConnectionState;
+    readonly    attribute boolean?               canTrickleIceCandidates;
+    RTCConfiguration               getConfiguration ();
+    void                           setConfiguration (RTCConfiguration configuration);
+    void                           close ();
+                attribute EventHandler           onnegotiationneeded;
+                attribute EventHandler           onicecandidate;
+                attribute EventHandler           onsignalingstatechange;
+                attribute EventHandler           oniceconnectionstatechange;
+                attribute EventHandler           onicegatheringstatechange;
+};
+
+partial interface RTCPeerConnection {
+    void createOffer (RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback, optional RTCOfferOptions options);
+    void setLocalDescription (RTCSessionDescription description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
+    void createAnswer (RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback);
+    void setRemoteDescription (RTCSessionDescription description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
+    void addIceCandidate (RTCIceCandidate candidate, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
+    void getStats (MediaStreamTrack? selector, RTCStatsCallback successCallback, RTCPeerConnectionErrorCallback failureCallback);
+};
+
+partial interface RTCPeerConnection {
+    static Promise&lt;RTCCertificate&gt; generateCertificate (AlgorithmIdentifier keygenAlgorithm);
+};
+
+partial interface RTCPeerConnection {
+    sequence&lt;RTCRtpSender&gt;   getSenders ();
+    sequence&lt;RTCRtpReceiver&gt; getReceivers ();
+    RTCRtpSender             addTrack (MediaStreamTrack track, MediaStream... streams);
+    void                     removeTrack (RTCRtpSender sender);
+                attribute EventHandler ontrack;
+};
+
+partial interface RTCPeerConnection {
+    RTCDataChannel createDataChannel ([TreatNullAs=EmptyString] DOMString label, optional RTCDataChannelInit dataChannelDict);
+                attribute EventHandler ondatachannel;
+};
+
+partial interface RTCPeerConnection {
+    readonly    attribute RTCDTMFSender? dtmf;
+};
+
+partial interface RTCPeerConnection {
+    Promise&lt;RTCStatsReport&gt; getStats (optional MediaStreamTrack? selector);
+};
+
+partial interface RTCPeerConnection {
+    void               setIdentityProvider (DOMString provider, optional DOMString protocol, optional DOMString usernameHint);
+    Promise&lt;DOMString&gt; getIdentityAssertion ();
+    readonly    attribute Promise&lt;RTCIdentityAssertion&gt; peerIdentity;
+    readonly    attribute DOMString?                    idpLoginUrl;
+};
+
+&lt;/script&gt;
+&lt;script&gt;
+(function() {
+  var idl_array = new IdlArray();
+  [].forEach.call(document.querySelectorAll(&quot;script[type=text\\/plain]&quot;),
+                  function(node) {
+                    idl_array.add_idls(node.textContent);
+                  });
+  window.pc = new RTCPeerConnection(null);
+  idl_array.add_objects({&quot;RTCPeerConnection&quot;: [&quot;pc&quot;]});
+  idl_array.test();
+  done();
+})();
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcrtcpeerconnectionw3cimportlogfromrev207938trunkLayoutTestsimportedw3cwebplatformtestsWebIDLw3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log (from rev 207938, trunk/LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log) (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor.html
+/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcsimplecallhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/simplecall.html (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/simplecall.html                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/simplecall.html        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,118 @@
</span><ins>+&lt;!doctype html&gt;
+&lt;!-- 
+To quickly iterate when developing this test, use --use-fake-ui-for-media-stream
+for Chrome and set the media.navigator.permission.disabled property to true in
+Firefox. You must either have a webcam/mic available on the system or use for
+instance --use-fake-device-for-media-stream for Chrome.
+ --&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
+  &lt;title&gt;RTCPeerConnection Connection Test&lt;/title&gt;
+&lt;/head&gt;
+&lt;body&gt;
+  &lt;div id=&quot;log&quot;&gt;&lt;/div&gt;
+  &lt;div&gt;
+    &lt;video id=&quot;local-view&quot; autoplay=&quot;autoplay&quot;&gt;&lt;/video&gt;
+    &lt;video id=&quot;remote-view&quot; autoplay=&quot;autoplay&quot;/&gt;
+    &lt;/video&gt;
+  &lt;/div&gt;
+
+  &lt;!--  These files are in place when executing on W3C.  --&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;/common/vendor-prefix.js&quot;
+          data-prefixed-objects=
+              '[{&quot;ancestors&quot;:[&quot;navigator&quot;], &quot;name&quot;:&quot;getUserMedia&quot;}]'
+          data-prefixed-prototypes=
+               '[{&quot;ancestors&quot;:[&quot;HTMLMediaElement&quot;],&quot;name&quot;:&quot;srcObject&quot;}]'&gt;
+  &lt;/script&gt;
+  &lt;script type=&quot;text/javascript&quot;&gt;
+  var test = async_test('Can set up a basic WebRTC call.', {timeout: 5000});
+
+  var gFirstConnection = null;
+  var gSecondConnection = null;
+
+  function getUserMediaOkCallback(localStream) {
+    gFirstConnection = new RTCPeerConnection(null);
+    gFirstConnection.onicecandidate = onIceCandidateToFirst;
+    gFirstConnection.addStream(localStream);
+    gFirstConnection.createOffer(onOfferCreated, failed('createOffer'));
+
+    var videoTag = document.getElementById('local-view');
+    videoTag.srcObject = localStream;
+  };
+
+  var onOfferCreated = test.step_func(function(offer) {
+    gFirstConnection.setLocalDescription(offer);
+
+    // This would normally go across the application's signaling solution.
+    // In our case, the &quot;signaling&quot; is to call this function.
+    receiveCall(offer.sdp);
+  });
+
+  function receiveCall(offerSdp) {
+    gSecondConnection = new RTCPeerConnection(null);
+    gSecondConnection.onicecandidate = onIceCandidateToSecond;
+    gSecondConnection.onaddstream = onRemoteStream;
+
+    var parsedOffer = new RTCSessionDescription({ type: 'offer',
+                                                  sdp: offerSdp });
+    gSecondConnection.setRemoteDescription(parsedOffer);
+
+    gSecondConnection.createAnswer(onAnswerCreated,
+                                   failed('createAnswer'));
+  };
+
+  var onAnswerCreated = test.step_func(function(answer) {
+    gSecondConnection.setLocalDescription(answer);
+
+    // Similarly, this would go over the application's signaling solution.
+    handleAnswer(answer.sdp);
+  });
+
+  function handleAnswer(answerSdp) {
+    var parsedAnswer = new RTCSessionDescription({ type: 'answer',
+                                                   sdp: answerSdp });
+    gFirstConnection.setRemoteDescription(parsedAnswer);
+
+    // Call negotiated: done.
+    test.done();
+  };
+
+  var onIceCandidateToFirst = test.step_func(function(event) {
+    // If event.candidate is null = no more candidates.
+    if (event.candidate) {
+      gSecondConnection.addIceCandidate(event.candidate);
+    }
+  });
+
+  var onIceCandidateToSecond = test.step_func(function(event) {
+    if (event.candidate) {
+      gFirstConnection.addIceCandidate(event.candidate);
+    }
+  });
+
+  var onRemoteStream = test.step_func(function(event) {
+    var videoTag = document.getElementById('remote-view');
+    videoTag.srcObject = event.stream;
+  });
+
+  // Returns a suitable error callback.
+  function failed(function_name) {
+    return test.step_func(function() {
+      assert_unreached('WebRTC called error callback for ' + function_name);
+    });
+  }
+
+  // This function starts the test.
+  test.step(function() {
+    navigator.getUserMedia({ video: true, audio: true },
+        getUserMediaOkCallback,
+        failed('getUserMedia'));
+  });
+&lt;/script&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestswebrtcw3cimportlogfromrev207938trunkLayoutTestsimportedw3cwebplatformtestshtmlsemanticsinteractiveelementsthedetailselementw3cimportlog"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/w3c-import.log (from rev 207938, trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-details-element/w3c-import.log) (0 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/w3c-import.log                                (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/w3c-import.log        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the W3C CSS or WPT github:
+        https://github.com/w3c/csswg-test
+        https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/webrtc/OWNERS
+/LayoutTests/imported/w3c/web-platform-tests/webrtc/datachannel-emptystring.html
+/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call.html
+/LayoutTests/imported/w3c/web-platform-tests/webrtc/promises-call.html
+/LayoutTests/imported/w3c/web-platform-tests/webrtc/simplecall.html
</ins></span></pre></div>
<a id="trunkLayoutTeststestsoptionsjson"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tests-options.json (207938 => 207939)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tests-options.json        2016-10-27 06:01:57 UTC (rev 207938)
+++ trunk/LayoutTests/tests-options.json        2016-10-27 06:33:21 UTC (rev 207939)
</span><span class="lines">@@ -119,6 +119,36 @@
</span><span class="cx">     &quot;imported/w3c/web-platform-tests/dom/ranges/Range-isPointInRange.html&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ],
</span><ins>+    &quot;imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendChild.html&quot;: [
+        &quot;slow&quot;
+    ],
+    &quot;imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendData.html&quot;: [
+        &quot;slow&quot;
+    ],
+    &quot;imported/w3c/web-platform-tests/dom/ranges/Range-mutations-dataChange.html&quot;: [
+        &quot;slow&quot;
+    ],
+    &quot;imported/w3c/web-platform-tests/dom/ranges/Range-mutations-deleteData.html&quot;: [
+        &quot;slow&quot;
+    ],
+    &quot;imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertBefore.html&quot;: [
+        &quot;slow&quot;
+    ],
+    &quot;imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertData.html&quot;: [
+        &quot;slow&quot;
+    ],
+    &quot;imported/w3c/web-platform-tests/dom/ranges/Range-mutations-removeChild.html&quot;: [
+        &quot;slow&quot;
+    ],
+    &quot;imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceChild.html&quot;: [
+        &quot;slow&quot;
+    ],
+    &quot;imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceData.html&quot;: [
+        &quot;slow&quot;
+    ],
+    &quot;imported/w3c/web-platform-tests/dom/ranges/Range-mutations-splitText.html&quot;: [
+        &quot;slow&quot;
+    ],
</ins><span class="cx">     &quot;imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ],
</span><span class="lines">@@ -164,6 +194,9 @@
</span><span class="cx">     &quot;imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-events.html&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ],
</span><ins>+    &quot;imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html&quot;: [
+        &quot;slow&quot;
+    ],
</ins><span class="cx">     &quot;imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ],
</span><span class="lines">@@ -407,4 +440,4 @@
</span><span class="cx">     &quot;imported/w3c/web-platform-tests/media-source/mediasource-redundant-seek.html&quot;: [
</span><span class="cx">         &quot;slow&quot;
</span><span class="cx">     ]
</span><del>-}
</del><ins>+}
</ins><span class="cx">\ No newline at end of file
</span></span></pre>
</div>
</div>

</body>
</html>