<!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 <youennf@gmail.com> 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 <youennf@gmail.com>
+
+ 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 <cdumez@apple.com>
</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 <youennf@gmail.com>
+
+ 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 <rniwa@webkit.org>
</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"> "name": "web-platform-tests",
</span><span class="cx"> "url": "https://github.com/w3c/web-platform-tests.git",
</span><del>- "revision": "33f4da1",
</del><ins>+ "revision": "0acd8f6",
</ins><span class="cx"> "paths_to_skip": [
</span><span class="cx"> "conformance-checkers",
</span><span class="cx"> "docs",
</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"> "web-platform-tests/dom/nodes/ParentNode-querySelector-All-content.xht",
</span><span class="cx"> "web-platform-tests/dom/nodes/getElementsByClassNameFrame.htm",
</span><span class="cx"> "web-platform-tests/dom/ranges/Range-test-iframe.html",
</span><ins>+ "web-platform-tests/fetch/api/request/multi-globals/current/current.html",
+ "web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html",
+ "web-platform-tests/fetch/api/response/multi-globals/current/current.html",
+ "web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html",
+ "web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html",
</ins><span class="cx"> "web-platform-tests/html/browsers/browsing-the-web/history-traversal/001-1.html",
</span><span class="cx"> "web-platform-tests/html/browsers/browsing-the-web/history-traversal/001-2.html",
</span><span class="cx"> "web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name-1.html",
</span><span class="lines">@@ -231,6 +236,7 @@
</span><span class="cx"> "web-platform-tests/html/syntax/parsing/foreign_content_011.html",
</span><span class="cx"> "web-platform-tests/html/syntax/parsing/foreign_content_013.html",
</span><span class="cx"> "web-platform-tests/html/webappapis/scripting/events/onerroreventhandler-frame.html",
</span><ins>+ "web-platform-tests/mathml/relations/html5-tree/unique-identifier-1-iframe.html",
</ins><span class="cx"> "web-platform-tests/resource-timing/iframe-setdomain.sub.html"
</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"> "path": [
</span><span class="cx"> "resources"
</span><span class="cx"> ],
</span><del>- "url": "https://github.com/w3c/testharness.js/archive/e810600306d0612c609c8daab606229a11061627.tar.gz",
- "url_subpath": "testharness.js-e810600306d0612c609c8daab606229a11061627"
</del><ins>+ "url": "https://github.com/w3c/testharness.js/archive/873f9680aff66553f84d38f21a038c4534cc2789.tar.gz",
+ "url_subpath": "testharness.js-873f9680aff66553f84d38f21a038c4534cc2789"
</ins><span class="cx"> },
</span><span class="cx"> {
</span><span class="cx"> "path": [
</span><span class="lines">@@ -28,8 +28,8 @@
</span><span class="cx"> "path": [
</span><span class="cx"> "tools"
</span><span class="cx"> ],
</span><del>- "url": "https://github.com/w3c/wpt-tools/archive/5b4013ffae79602a0a633b6551d247bccb49ac8a.tar.gz",
- "url_subpath": "wpt-tools-5b4013ffae79602a0a633b6551d247bccb49ac8a"
</del><ins>+ "url": "https://github.com/w3c/wpt-tools/archive/cf9748586c2bca14998eda5956be6cf4d6d221d9.tar.gz",
+ "url_subpath": "wpt-tools-cf9748586c2bca14998eda5956be6cf4d6d221d9"
</ins><span class="cx"> },
</span><span class="cx"> {
</span><span class="cx"> "path": [
</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>+<!-- 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 -->
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Current Realm</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="log"></div>
+<iframe srcdoc="<body test>"></iframe>
+<script>
+ setup({explicit_done:true})
+
+ function isObjectFromGlobal(object, global) {
+ return object instanceof global.Object;
+ }
+ function assert_global(obj) {
+ assert_false(isObjectFromGlobal(obj, self), obj + " should not be from top-level Realm")
+ assert_true(isObjectFromGlobal(obj, self[0]), obj + " should be from <iframe> Realm")
+ }
+
+ onload = function() {
+ [["querySelectorAll", "test"],
+ ["createElement", "x"],
+ ["createElementNS", null, "x"],
+ ["createDocumentFragment"],
+ ["createTextNode", "test"],
+ ["createComment", "test"],
+ ["createProcessingInstruction", "x", "x"],
+ ["createAttribute", "x"],
+ ["createAttributeNS", "x", "x"],
+ ["createEvent", "Event"],
+ ["createRange"],
+ ["createNodeIterator", document.head],
+ ["createTreeWalker", 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?
+ ;[["getElementsByTagName", "x"],
+ ["getElementsByTagNameNS", null, "x"],
+ ["getElementsByClassName", "x"]].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])
+ })
+
+ ;[["createDocumentType", "x", "", ""],
+ ["createDocument", null, "", null],
+ ["createHTMLDocument", "x"]].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])
+ })
+
+ ;[["item", 0],
+ ["getNamedItem", "test"],
+ ["getNamedItemNS", null, "test"]].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)
+ }, "NamedNodeMap " + val[0])
+ })
+
+ test(function() {
+ var c = self[0].document.createTextNode(""),
+ obj = c.splitText(0)
+ assert_global(obj)
+
+ obj = Text.prototype.splitText.call(c, "")
+ assert_global(obj)
+ }, "splitText")
+
+ ;["extractContents",
+ "cloneContents",
+ "cloneRange"].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)
+ })
+
+ ;["2d", "webgl"].forEach(function(val) {
+ test(function() {
+ var c = self[0].document.createElement("canvas"),
+ obj = c.getContext(val)
+ assert_global(obj)
+
+ obj = HTMLCanvasElement.prototype.getContext.call(c, val)
+ assert_global(obj)
+ }, "getContext " + val)
+ })
+
+ ;[["createImageData", 5, 5],
+ ["getImageData", 5, 5, 5, 5]].forEach(function(val) {
+ test(function() {
+ var c = self[0].document.createElement("canvas").getContext("2d"),
+ 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("test", "about:blank"),
+ obj = c.load()
+ assert_global(obj)
+
+ obj = FontFace.prototype.load.call(c)
+ assert_global(obj)
+ }, "FontFace's load()")
+
+ done()
+ }
+</script>
</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, "before abort()")
</ins><span class="cx"> client.abort()
</span><del>- assert_equals(client.readyState, 0)
- assert_throws("InvalidStateError", function() { client.send("test") }, "calling send() after abort()")
</del><ins>+ assert_equals(client.readyState, 1, "after abort()")
</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"> <link rel="help" href="https://xhr.spec.whatwg.org/#the-abort()-method" data-tested-assertations="following-sibling::ol/li[4]/ol/li[5]" />
</span><span class="cx"> <script src="/resources/testharness.js"></script>
</span><span class="cx"> <script src="/resources/testharnessreport.js"></script>
</span><del>- <title>XMLHttpRequest: The abort() method: do not fire abort event in OPENED state when send() flag is unset. send() throws after abort().</title>
</del><ins>+ <title>XMLHttpRequest: The abort() method: do not fire abort event in OPENED state when send() flag is unset.</title>
</ins><span class="cx"> </head>
</span><span class="cx">
</span><span class="cx"> <body>
</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, "abort() cannot change readyState when readyState is 1 and send() flag is unset")
</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("GET", "./resources/content.py", true); // This should cause a readystatechange event that calls abort()
</span><del>- assert_throws("InvalidStateError", 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"> </script>
</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>+<!doctype html>
+<html lang=en>
+<meta charset=utf-8>
+<title>XMLHttpRequest: upload progress event for cross-origin requests</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+ <link rel="help" href="https://xhr.spec.whatwg.org/#handler-xhr-onprogress" data-tested-assertations="../.." />
+ <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::*//a[contains(@href,'#make-upload-progress-notifications')] following::ol[1]/li[8]" />
+ <link rel="help" href="https://xhr.spec.whatwg.org/#make-upload-progress-notifications" data-tested-assertations=".. ../following::ul/li[1]" />
+ <link rel="help" href="https://xhr.spec.whatwg.org/#dom-xmlhttprequest-upload" data-tested-assertations=".." />
+
+<div id="log"></div>
+<script src="/common/get-host-info.sub.js"></script>
+<script>
+ 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("onprogress not called.");
+ });
+ client.open("POST", get_host_info().HTTP_REMOTE_ORIGIN + "/XMLHttpRequest/resources/corsenabled.py");
+ client.send("This is a test string.");
+ });
+</script>
</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"> </script>
</span><span class="cx"> </body>
</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 "NO" but got ""
-FAIL Asynchronous blob loading with no mime type assert_equals: expected "NO" but got ""
-FAIL Synchronous blob loading with invalid mime type assert_equals: expected "NO" but got ""
-FAIL Asynchronous blob loading with invalid mime type assert_equals: expected "NO" but got ""
</del><ins>+FAIL Synchronous blob loading with no mime type [POST] assert_equals: expected "NO" but got ""
+FAIL Asynchronous blob loading with no mime type [POST] assert_equals: expected "NO" but got ""
+FAIL Synchronous blob loading with no mime type [PUT] assert_equals: expected "NO" but got ""
+FAIL Asynchronous blob loading with no mime type [PUT] assert_equals: expected "NO" but got ""
+FAIL Synchronous blob loading with invalid mime type [POST] assert_equals: expected "NO" but got ""
+FAIL Asynchronous blob loading with invalid mime type [POST] assert_equals: expected "NO" but got ""
+FAIL Synchronous blob loading with invalid mime type [PUT] assert_equals: expected "NO" but got ""
+FAIL Asynchronous blob loading with invalid mime type [PUT] assert_equals: expected "NO" but got ""
</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"> ["invalid mime type", new Blob(["data"], {type: "Invalid \r\n mime \r\n type"})]
</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("POST", "./resources/content.py", false);
- xhr.send(item[1]);
</del><ins>+ xhr.open(method, "./resources/content.py", false);
+ xhr.send(testItem[1]);
</ins><span class="cx">
</span><span class="cx"> assert_equals(xhr.getResponseHeader("X-Request-Content-Length"), "4");
</span><span class="cx"> assert_equals(xhr.getResponseHeader("X-Request-Content-Type"), "NO");
</span><del>- }, "Synchronous blob loading with " + item[0]);
</del><ins>+ }, "Synchronous blob loading with " + testItem[0] + " [" + method + "]");
+ }
</ins><span class="cx">
</span><del>- var atest = async_test("Asynchronous blob loading with " + item[0]);
</del><ins>+ function doAsyncTest(testItem, method) {
+ var atest = async_test("Asynchronous blob loading with " + testItem[0] + " [" + method + "]");
</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("POST", "./resources/content.py", true);
- xhr.send(item[1]);
</del><ins>+ xhr.open(method, "./resources/content.py", true);
+ xhr.send(testItem[1]);
</ins><span class="cx"> });
</span><ins>+ }
+
+ blobTests.forEach(function(item){
+ doSyncTest(item, "POST");
+ doAsyncTest(item, "POST");
+
+ doSyncTest(item, "PUT");
+ doAsyncTest(item, "PUT");
</ins><span class="cx"> });
</span><span class="cx"> </script>
</span><span class="cx"> </body>
</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("InvalidStateError", 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>+<!DOCTYPE html>
+<html>
+ <head>
+ <title>XMLHttpRequest: send() - non same-origin</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <base>
+ <link rel="help" href="https://xhr.spec.whatwg.org/#cross-origin-request-steps" data-tested-assertations="/following::DL[2]/DT[1] /following::DL[2]/DD[1]" />
+ <link rel="help" href="https://xhr.spec.whatwg.org/#cross-origin-request-event-rules" data-tested-assertations="/following::DL[1]/DT[2] /following::DL[1]/DD[2]" />
+ </head>
+ <body>
+ <div id="log"></div>
+ <script src="/common/get-host-info.sub.js"></script>
+ <script>
+ // Setting base URL before running the tests
+ var host_info = get_host_info();
+ document.getElementsByTagName("base")[0].setAttribute("href", host_info.HTTP_REMOTE_ORIGIN);
+
+ function url(url) {
+ test(function() {
+ var client = new XMLHttpRequest()
+ client.open("GET", url, false)
+ assert_throws("NetworkError", function() { client.send() })
+ }, document.title + " (" + url + ")")
+ }
+ url("mailto:test@example.org")
+ url("tel:+31600000000")
+ url(host_info.HTTP_REMOTE_ORIGIN)
+ url("javascript:alert('FAIL')")
+ url("folder.txt")
+ </script>
+ </body>
+</html>
</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):
+ """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
+ """
+ def __init__(self, inner, actions):
+ BaseHandler.__init__(self, inner)
+ self.inner = inner
+ self.actions = actions
+
+ def __call__(self, item):
+ if item["action"] in self.actions:
+ return self.inner(item)
+
+
+class GitHub(object):
+ def __init__(self, org, repo, token):
+ self.token = token
+ self.headers = {"Accept": "application/vnd.github.v3+json"}
+ self.auth = (self.token, "x-oauth-basic")
+ self.org = org
+ self.repo = repo
+ self.base_url = "https://api.github.com/repos/%s/%s/" % (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("POST %s" % 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("GET %s" % 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, "issues/%s/comments" % issue_number)
+ return self.post(url, {"body": body})
+
+ def releases(self):
+ url = urljoin(self.base_url, "releases/latest")
+ 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, "\n".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 = "firefox"
+
+ def install(self):
+ call("pip", "install", "-r", "w3c/wptrunner/requirements_firefox.txt")
+ resp = get("https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-52.0a1.en-US.linux-x86_64.tar.bz2")
+ untar(resp.raw)
+
+ if not os.path.exists("profiles"):
+ os.mkdir("profiles")
+ with open(os.path.join("profiles", "prefs_general.js"), "wb") as f:
+ resp = get("https://hg.mozilla.org/mozilla-central/raw-file/tip/testing/profiles/prefs_general.js")
+ f.write(resp.content)
+ call("pip", "install", "-r", os.path.join("w3c", "wptrunner", "requirements_firefox.txt"))
+
+ def _latest_geckodriver_version(self):
+ # This is used rather than an API call to avoid rate limits
+ tags = call("git", "ls-remote", "--tags", "--refs",
+ "https://github.com/mozilla/geckodriver.git")
+ release_re = re.compile(".*refs/tags/v(\d+)\.(\d+)\.(\d+)")
+ latest_release = 0
+ for item in tags.split("\n"):
+ m = release_re.match(item)
+ if m:
+ version = [int(item) for item in m.groups()]
+ if version > latest_release:
+ latest_release = version
+ assert latest_release != 0
+ return "v%s.%s.%s" % tuple(str(item) for item in latest_release)
+
+
+ def install_webdriver(self):
+ version = self._latest_geckodriver_version()
+ logger.debug("Latest geckodriver release %s" % version)
+ url = "https://github.com/mozilla/geckodriver/releases/download/%s/geckodriver-%s-linux64.tar.gz" % (version, version)
+ untar(get(url).raw)
+
+ def wptrunner_args(self, root):
+ return {
+ "product": "firefox",
+ "binary": "%s/firefox/firefox" % root,
+ "certutil_binary": "certutil",
+ "webdriver_binary": "%s/geckodriver" % root,
+ "prefs_root": "%s/profiles" % root,
+ }
+
+
+class Chrome(Browser):
+ product = "chrome"
+
+ def install(self):
+ latest = get("https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2FLAST_CHANGE?alt=media").text.strip()
+ url = "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%%2F%s%%2Fchrome-linux.zip?alt=media" % latest
+ unzip(get(url).raw)
+ logger.debug(call("ls", "-lhrt", "chrome-linux"))
+ call("pip", "install", "-r", os.path.join("w3c", "wptrunner", "requirements_chrome.txt"))
+
+ def install_webdriver(self):
+ latest = get("http://chromedriver.storage.googleapis.com/LATEST_RELEASE").text.strip()
+ url = "http://chromedriver.storage.googleapis.com/%s/chromedriver_linux64.zip" % latest
+ unzip(get(url).raw)
+ st = os.stat('chromedriver')
+ os.chmod('chromedriver', st.st_mode | stat.S_IEXEC)
+
+ def wptrunner_args(self, root):
+ return {
+ "product": "chrome",
+ "binary": "%s/chrome-linux/chrome" % root,
+ "webdriver_binary": "%s/chromedriver" % root,
+ "test_types": ["testharness", "reftest"]
+ }
+
+
+def get(url):
+ logger.debug("GET %s" % url)
+ resp = requests.get(url, stream=True)
+ resp.raise_for_status()
+ return resp
+
+
+def call(*args):
+ logger.debug("%s" % " ".join(args))
+ return subprocess.check_output(args)
+
+
+def get_git_cmd(repo_path):
+ def git(cmd, *args):
+ full_cmd = ["git", cmd] + list(args)
+ try:
+ return subprocess.check_output(full_cmd, cwd=repo_path, stderr=subprocess.STDOUT)
+ except subprocess.CalledProcessError as e:
+ logger.error("Git command exited with status %i" % 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("untar")
+ fileobj = seekable(fileobj)
+ with tarfile.open(fileobj=fileobj) as tar_data:
+ tar_data.extractall()
+
+
+def unzip(fileobj):
+ logger.debug("unzip")
+ fileobj = seekable(fileobj)
+ with zipfile.ZipFile(fileobj) as zip_data:
+ for info in zip_data.infolist():
+ zip_data.extract(info)
+ perm = info.external_attr >> 16 & 0x1FF
+ os.chmod(info.filename, perm)
+
+
+def setup_github_logging(args):
+ gh_handler = None
+ if args.comment_pr:
+ github = GitHub("w3c", "web-platform-tests", 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("Setting up GitHub logging")
+ logger.addHandler(gh_handler)
+ else:
+ logger.warning("No PR number found; not posting to GitHub")
+ 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), "w3c", "web-platform-tests"))
+ git("fetch", "https://github.com/w3c/web-platform-tests.git", "master:master")
+
+
+def get_sha1():
+ git = get_git_cmd(os.path.join(os.path.abspath(os.curdir), "w3c", "web-platform-tests"))
+ return git("rev-parse", "HEAD").strip()
+
+def build_manifest():
+ with pwd(os.path.join(os.path.abspath(os.curdir), "w3c", "web-platform-tests")):
+ # TODO: Call the manifest code directly
+ call("python", "manifest")
+
+
+def install_wptrunner():
+ call("git", "clone", "--depth=1", "https://github.com/w3c/wptrunner.git", "w3c/wptrunner")
+ git = get_git_cmd(os.path.join(os.path.abspath(os.curdir), "w3c", "wptrunner"))
+ git("submodule", "update", "--init", "--recursive")
+ call("pip", "install", os.path.join("w3c", "wptrunner"))
+
+
+def get_files_changed():
+ root = os.path.abspath(os.curdir)
+ git = get_git_cmd("%s/w3c/web-platform-tests" % root)
+ branch_point = git("merge-base", "HEAD", "master").strip()
+ logger.debug("Branch point from master: %s" % branch_point)
+ logger.debug(git("log", "--oneline", "%s.." % branch_point))
+ files = git("diff", "--name-only", "-z", "%s.." % branch_point)
+ if not files:
+ return []
+ assert files[-1] == "\0"
+ return ["%s/w3c/web-platform-tests/%s" % (root, item)
+ for item in files[:-1].split("\0")]
+
+
+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, "w3c", "web-platform-tests")
+ args.update(browser.wptrunner_args(root))
+ args.update({
+ "tests_root": wpt_root,
+ "metadata_root": wpt_root,
+ "repeat": iterations,
+ "config": "%s/w3c/wptrunner/wptrunner.default.ini" % root,
+ "test_list": files_changed,
+ "restart_on_unexpected": False,
+ "pause_after_test": 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["test"]][data.get("subtest")][data["status"]] += 1
+
+ def test_end(self, data):
+ self.results[data["test"]][None][data["status"]] += 1
+
+
+def is_inconsistent(results_dict, iterations):
+ return len(results_dict) > 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("%s%s" %
+ (key, ": %s/%s" % (value, iterations) if value != iterations else ""))
+ rv = ", ".join(rv)
+ if total_results < iterations:
+ rv.append("MISSING: %s/%s" % (iterations - total_results, iterations))
+ if len(results_dict) > 1 or total_results != iterations:
+ rv = "**%s**" % 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) > prev[i]
+ else prev[i]
+ for i in cols],
+ data,
+ [len(item) + 2 for item in headings])
+ log("|%s|" % "|".join(item.center(max_widths[i]) for i, item in enumerate(headings)))
+ log("|%s|" % "|".join("-" * max_widths[i] for i in cols))
+ for row in data:
+ log("|%s|" % "|".join(" %s" % row[i].ljust(max_widths[i] - 1) for i in cols))
+
+
+def write_inconsistent(inconsistent, iterations):
+ logger.error("## Unstable results ##\n")
+ strings = [(test, subtest if subtest else "", err_string(results, iterations))
+ for test, subtest, results in inconsistent]
+ table(["Test", "Subtest", "Results"], strings, logger.error)
+
+
+def write_results(results, iterations):
+ logger.info("## All results ##\n")
+ for test, test_results in results.iteritems():
+ logger.info("### %s ###" % test)
+ parent = test_results.pop(None)
+ strings = [("", err_string(parent, iterations))]
+ strings.extend(((subtest if subtest else "", err_string(results, iterations))
+ for subtest, results in test_results.iteritems()))
+ table(["Subtest", "Results"], strings, logger.info)
+
+
+def get_parser():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--root",
+ action="store",
+ default=os.path.join(os.path.expanduser("~"), "build"),
+ help="Root path")
+ parser.add_argument("--iterations",
+ action="store",
+ default=10,
+ type=int,
+ help="Number of times to run tests")
+ parser.add_argument("--gh-token",
+ action="store",
+ default=os.environ.get("GH_TOKEN"),
+ help="OAuth token to use for accessing GitHub api")
+ parser.add_argument("--comment-pr",
+ action="store",
+ default=os.environ.get("TRAVIS_PULL_REQUEST"),
+ help="PR to comment on with stability results")
+ parser.add_argument("browser",
+ action="store",
+ help="Browser to run against")
+ return parser
+
+
+def main():
+ retcode = 0
+ parser = get_parser()
+ args = parser.parse_args()
+
+ if not os.path.exists(args.root):
+ logger.critical("Root directory %s does not exist" % args.root)
+ return 1
+
+ os.chdir(args.root)
+
+ if args.gh_token:
+ gh_handler = setup_github_logging(args)
+ else:
+ logger.warning("Can't log to GitHub")
+ gh_handler = None
+
+ print >> sys.stderr, "travis_fold:start:browser_setup"
+ logger.info("# %s #" % args.browser.title())
+
+ browser_cls = {"firefox": Firefox,
+ "chrome": Chrome}.get(args.browser)
+ if browser_cls is None:
+ logger.critical("Unrecognised browser %s" % args.browser)
+ return 1
+
+ fetch_wpt_master()
+
+ head_sha1 = get_sha1()
+ logger.info("Testing revision %s" % 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("No files changed")
+ return 0
+
+ build_manifest()
+ install_wptrunner()
+ do_delayed_imports()
+
+ logger.debug("Files changed:\n%s" % "".join(" * %s\n" % 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 >> sys.stderr, "travis_fold:end:browser_setup"
+ print >> sys.stderr, "travis_fold:start:running_tests"
+ logger.info("Starting %i test iterations" % args.iterations)
+ with open("raw.log", "wb") as log:
+ wptrunner.setup_logging(kwargs,
+ {"raw": log})
+ # Setup logging for wptrunner that keeps process output and
+ # warning+ level logs only
+ wptrunner.logger.add_handler(
+ LogActionFilter(
+ LogLevelFilter(
+ StreamHandler(
+ sys.stdout,
+ TbplFormatter()
+ ),
+ "WARNING"),
+ ["log", "process_output"]))
+
+ wptrunner.run_tests(**kwargs)
+
+ with open("raw.log", "rb") as log:
+ results, inconsistent = process_results(log, args.iterations)
+
+ print >> sys.stderr, "travis_fold:end:running_tests"
+
+ if results:
+ if inconsistent:
+ write_inconsistent(inconsistent, args.iterations)
+ retcode = 2
+ else:
+ logger.info("All results were stable\n")
+ print >> sys.stderr, "travis_fold:start:full_results"
+ write_results(results, args.iterations)
+ print >> sys.stderr, "travis_fold:end:full_results"
+ else:
+ logger.info("No tests run.")
+
+ try:
+ if gh_handler:
+ gh_handler.send()
+ except Exception:
+ logger.error(traceback.format_exc())
+ return retcode
+
+
+if __name__ == "__main__":
+ 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 "travis_fold:start:hosts_fixup"
+ echo "Rewriting hosts file"
+ echo "## /etc/hosts ##"
+ cat /etc/hosts
+ sudo sed -i 's/^::1\s*localhost/::1/' /etc/hosts
+ sudo sh -c 'echo "
+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
+" >> /etc/hosts'
+ echo "== /etc/hosts =="
+ cat /etc/hosts
+ echo "----------------"
+ echo "travis_fold:end:hosts_fixup"
+}
+
+
+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 <input type=checkbox> assert_true: child pre-click must be triggered expected true got false
+PASS pick the first with activation behavior <a href>
+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>+<!doctype html>
+<title>Synthetic click event "magic"</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+<div id=dump style=display:none></div>
+<script>
+var dump = document.getElementById("dump")
+
+async_test(function(t) {
+ var input = document.createElement("input")
+ input.type = "checkbox"
+ dump.appendChild(input)
+ input.onclick = t.step_func_done(function() {
+ assert_true(input.checked)
+ })
+ input.click()
+}, "basic with click()")
+
+async_test(function(t) {
+ var input = document.createElement("input")
+ input.type = "checkbox"
+ dump.appendChild(input)
+ input.onclick = t.step_func_done(function() {
+ assert_true(input.checked)
+ })
+ input.dispatchEvent(new MouseEvent("click", {bubbles:true})) // equivalent to the above
+}, "basic with dispatchEvent()")
+
+async_test(function(t) {
+ var input = document.createElement("input")
+ input.type = "checkbox"
+ dump.appendChild(input)
+ input.onclick = t.step_func_done(function() {
+ assert_false(input.checked)
+ })
+ input.dispatchEvent(new Event("click", {bubbles:true})) // no MouseEvent
+}, "basic with wrong event class")
+
+async_test(function(t) {
+ var input = document.createElement("input")
+ input.type = "checkbox"
+ dump.appendChild(input)
+ var child = input.appendChild(new Text("does not matter"))
+ child.dispatchEvent(new MouseEvent("click")) // does not bubble
+ assert_false(input.checked)
+ t.done()
+}, "look at parents only when event bubbles")
+
+async_test(function(t) {
+ var input = document.createElement("input")
+ input.type = "checkbox"
+ dump.appendChild(input)
+ input.onclick = t.step_func_done(function() {
+ assert_true(input.checked)
+ })
+ var child = input.appendChild(new Text("does not matter"))
+ child.dispatchEvent(new MouseEvent("click", {bubbles:true}))
+}, "look at parents when event bubbles")
+
+async_test(function(t) {
+ var input = document.createElement("input")
+ input.type = "checkbox"
+ dump.appendChild(input)
+ input.onclick = t.step_func(function() {
+ assert_false(input.checked, "input pre-click must not be triggered")
+ })
+ var child = input.appendChild(document.createElement("input"))
+ child.type = "checkbox"
+ child.onclick = t.step_func(function() {
+ assert_true(input.checked, "child pre-click must be triggered")
+ })
+ child.dispatchEvent(new MouseEvent("click", {bubbles:true}))
+ t.done()
+}, "pick the first with activation behavior <input type=checkbox>")
+
+var globalCounter = 0 // sorry
+async_test(function(t) { // as above with <a>
+ var i = 0
+ var link = document.createElement("a")
+ link.href = "javascript:(function(){globalCounter--})()" // must not be triggered
+ dump.appendChild(link)
+ var child = link.appendChild(document.createElement("a"))
+ child.href = "javascript:(function(){globalCounter++})()"
+ child.dispatchEvent(new MouseEvent("click", {bubbles:true}))
+ assert_equals(globalCounter, 1)
+ t.done()
+}, "pick the first with activation behavior <a href>")
+
+async_test(function(t) {
+ var input = document.createElement("input")
+ input.type = "checkbox"
+ dump.appendChild(input)
+ var clickEvent = new MouseEvent("click")
+ 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)
+}, "event state during post-click handling")
+
+async_test(function(t) {
+ var input = document.createElement("input")
+ input.type = "checkbox"
+ dump.appendChild(input)
+ var clickEvent = new MouseEvent("click")
+ var finalTarget = document.createElement("doesnotmatter")
+ finalTarget.onclick = t.step_func_done(function() {
+ assert_equals(clickEvent.target, finalTarget)
+ })
+ input.onchange = t.step_func(function() {
+ finalTarget.dispatchEvent(clickEvent)
+ })
+ input.dispatchEvent(clickEvent)
+}, "redispatch during post-click handling")
+
+async_test(function(t) {
+ var input = document.createElement("input")
+ input.type = "checkbox"
+ dump.appendChild(input)
+ var child = input.appendChild(document.createElement("input"))
+ child.type = "checkbox"
+ child.disabled = true
+ child.click()
+ assert_false(input.checked)
+ assert_false(child.checked)
+ t.done()
+}, "disabled checkbox still has activation behavior")
+
+async_test(function(t) {
+ var state = "start"
+
+ var form = document.createElement("form")
+ form.onsubmit = t.step_func(() => {
+ if(state == "start" || state == "checkbox") {
+ state = "failure"
+ } else if(state == "form") {
+ state = "done"
+ }
+ return false
+ })
+ dump.appendChild(form)
+ var button = form.appendChild(document.createElement("button"))
+ button.type = "submit"
+ var checkbox = button.appendChild(document.createElement("input"))
+ checkbox.type = "checkbox"
+ checkbox.onclick = t.step_func(() => {
+ if(state == "start") {
+ assert_unreached()
+ } else if(state == "checkbox") {
+ assert_true(checkbox.checked)
+ }
+ })
+ checkbox.disabled = true
+ checkbox.click()
+ assert_equals(state, "start")
+
+ state = "checkbox"
+ checkbox.disabled = false
+ checkbox.click()
+ assert_equals(state, "checkbox")
+
+ state = "form"
+ button.click()
+ assert_equals(state, "done")
+
+ t.done()
+}, "disabled checkbox still has activation behavior, part 2")
+
+async_test(function(t) {
+ var input = document.createElement("input")
+ input.type = "checkbox"
+ input.onclick = t.step_func_done(function() {
+ assert_true(input.checked)
+ })
+ input.click()
+}, "disconnected checkbox should be checked")
+
+async_test(function(t) {
+ var input = document.createElement("input")
+ input.type = "radio"
+ input.onclick = t.step_func_done(function() {
+ assert_true(input.checked)
+ })
+ input.click()
+}, "disconnected radio should be checked")
+
+async_test(function(t) {
+ var form = document.createElement("form")
+ var didSubmit = false
+ form.onsubmit = t.step_func(() => {
+ didSubmit = true
+ return false
+ })
+ var input = form.appendChild(document.createElement("input"))
+ input.type = "submit"
+ input.click()
+ assert_false(didSubmit)
+ t.done()
+}, "disconnected form should not submit")
+</script>
</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 + ".compareDocumentPosition(" + otherName + ")");
</del><ins>+ }, referenceName + ".contains(" + otherName + ")");
</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>+<!DOCTYPE html>
+<title>Range mutation tests - appendChild</title>
+<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
+<meta name=timeout content=long>
+
+<div id=log></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../common.js"></script>
+<script src="Range-mutations.js"></script>
+<script>
+doTests(appendChildTests, function(params) { return params[0] + ".appendChild(" + params[1] + ")" }, testAppendChild);
+testDiv.style.display = "none";
+</script>
</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("foo"), with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.appendData("foo"), with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.appendData("foo"), with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.appendData("foo"), with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.appendData("foo"), with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.appendData("foo"), with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.appendData("foo"), with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.appendData("foo"), with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.appendData("foo"), with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.appendData("foo"), with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.appendData("foo"), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.appendData("foo"), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.appendData("foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.appendData("foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.appendData(""), with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.appendData(""), with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.appendData(""), with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.appendData(""), with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.appendData(""), with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.appendData(""), with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.appendData(""), with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.appendData(""), with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.appendData(""), with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.appendData(""), with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.appendData(""), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.appendData(""), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.appendData(""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.appendData(""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[1].firstChild.appendData("foo"), with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.appendData("foo"), with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.appendData("foo"), with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.appendData("foo"), with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.appendData("foo"), with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.appendData("foo"), with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.appendData("foo"), with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.appendData("foo"), with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.appendData("foo"), with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.appendData("foo"), with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.appendData("foo"), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.appendData("foo"), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.appendData("foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.appendData("foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.appendData(""), with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.appendData(""), with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.appendData(""), with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.appendData(""), with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.appendData(""), with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.appendData(""), with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.appendData(""), with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.appendData(""), with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.appendData(""), with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.appendData(""), with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.appendData(""), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.appendData(""), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.appendData(""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.appendData(""), with selected range on paras[1].firstChild from 1 to 3
+PASS foreignTextNode.appendData("foo"), with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.appendData("foo"), with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.appendData("foo"), with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.appendData("foo"), with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.appendData("foo"), with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.appendData("foo"), with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.appendData("foo"), with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.appendData("foo"), with selected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.appendData("foo"), with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.appendData("foo"), with selected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.appendData("foo"), with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.appendData("foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.appendData("foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.appendData("foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.appendData(""), with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.appendData(""), with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.appendData(""), with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.appendData(""), with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.appendData(""), with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.appendData(""), with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.appendData(""), with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.appendData(""), with selected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.appendData(""), with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.appendData(""), with selected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.appendData(""), with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.appendData(""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.appendData(""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.appendData(""), with selected range on foreignTextNode from 1 to 3
+PASS xmlTextNode.appendData("foo"), with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.appendData("foo"), with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.appendData("foo"), with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.appendData("foo"), with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.appendData("foo"), with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.appendData("foo"), with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.appendData("foo"), with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.appendData("foo"), with selected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.appendData("foo"), with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.appendData("foo"), with selected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.appendData("foo"), with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.appendData("foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.appendData("foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.appendData("foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.appendData(""), with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.appendData(""), with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.appendData(""), with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.appendData(""), with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.appendData(""), with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.appendData(""), with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.appendData(""), with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.appendData(""), with selected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.appendData(""), with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.appendData(""), with selected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.appendData(""), with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.appendData(""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.appendData(""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.appendData(""), with selected range on xmlTextNode from 1 to 3
+PASS detachedTextNode.appendData("foo"), with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.appendData("foo"), with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.appendData("foo"), with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.appendData("foo"), with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.appendData("foo"), with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.appendData("foo"), with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.appendData("foo"), with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.appendData("foo"), with selected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.appendData("foo"), with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.appendData("foo"), with selected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.appendData("foo"), with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.appendData("foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.appendData("foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.appendData("foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.appendData(""), with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.appendData(""), with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.appendData(""), with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.appendData(""), with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.appendData(""), with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.appendData(""), with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.appendData(""), with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.appendData(""), with selected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.appendData(""), with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.appendData(""), with selected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.appendData(""), with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.appendData(""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.appendData(""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.appendData(""), with selected range on detachedTextNode from 1 to 3
+PASS detachedForeignTextNode.appendData("foo"), with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.appendData("foo"), with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.appendData("foo"), with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.appendData("foo"), with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.appendData("foo"), with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.appendData("foo"), with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.appendData("foo"), with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.appendData("foo"), with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.appendData("foo"), with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.appendData("foo"), with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.appendData("foo"), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.appendData("foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.appendData("foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.appendData("foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.appendData(""), with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.appendData(""), with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.appendData(""), with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.appendData(""), with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.appendData(""), with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.appendData(""), with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.appendData(""), with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.appendData(""), with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.appendData(""), with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.appendData(""), with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.appendData(""), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.appendData(""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.appendData(""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.appendData(""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedXmlTextNode.appendData("foo"), with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.appendData("foo"), with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.appendData("foo"), with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.appendData("foo"), with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.appendData("foo"), with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.appendData("foo"), with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.appendData("foo"), with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.appendData("foo"), with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.appendData("foo"), with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.appendData("foo"), with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.appendData("foo"), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.appendData("foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.appendData("foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.appendData("foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.appendData(""), with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.appendData(""), with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.appendData(""), with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.appendData(""), with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.appendData(""), with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.appendData(""), with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.appendData(""), with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.appendData(""), with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.appendData(""), with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.appendData(""), with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.appendData(""), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.appendData(""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.appendData(""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.appendData(""), with selected range on detachedXmlTextNode from 1 to 3
+PASS comment.appendData("foo"), with unselected range on comment from 0 to 1
+PASS comment.appendData("foo"), with selected range on comment from 0 to 1
+PASS comment.appendData("foo"), with unselected range collapsed at (comment, 0)
+PASS comment.appendData("foo"), with selected range collapsed at (comment, 0)
+PASS comment.appendData("foo"), with unselected range collapsed at (comment, 1)
+PASS comment.appendData("foo"), with selected range collapsed at (comment, 1)
+PASS comment.appendData("foo"), with unselected range on comment from 0 to comment.length
+PASS comment.appendData("foo"), with selected range on comment from 0 to comment.length
+PASS comment.appendData("foo"), with unselected range on comment from 1 to comment.length
+PASS comment.appendData("foo"), with selected range on comment from 1 to comment.length
+PASS comment.appendData("foo"), with unselected range collapsed at (comment, comment.length)
+PASS comment.appendData("foo"), with selected range collapsed at (comment, comment.length)
+PASS comment.appendData("foo"), with unselected range on comment from 1 to 3
+PASS comment.appendData("foo"), with selected range on comment from 1 to 3
+PASS comment.appendData(""), with unselected range on comment from 0 to 1
+PASS comment.appendData(""), with selected range on comment from 0 to 1
+PASS comment.appendData(""), with unselected range collapsed at (comment, 0)
+PASS comment.appendData(""), with selected range collapsed at (comment, 0)
+PASS comment.appendData(""), with unselected range collapsed at (comment, 1)
+PASS comment.appendData(""), with selected range collapsed at (comment, 1)
+PASS comment.appendData(""), with unselected range on comment from 0 to comment.length
+PASS comment.appendData(""), with selected range on comment from 0 to comment.length
+PASS comment.appendData(""), with unselected range on comment from 1 to comment.length
+PASS comment.appendData(""), with selected range on comment from 1 to comment.length
+PASS comment.appendData(""), with unselected range collapsed at (comment, comment.length)
+PASS comment.appendData(""), with selected range collapsed at (comment, comment.length)
+PASS comment.appendData(""), with unselected range on comment from 1 to 3
+PASS comment.appendData(""), with selected range on comment from 1 to 3
+PASS foreignComment.appendData("foo"), with unselected range on foreignComment from 0 to 1
+PASS foreignComment.appendData("foo"), with selected range on foreignComment from 0 to 1
+PASS foreignComment.appendData("foo"), with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.appendData("foo"), with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.appendData("foo"), with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.appendData("foo"), with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.appendData("foo"), with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.appendData("foo"), with selected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.appendData("foo"), with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.appendData("foo"), with selected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.appendData("foo"), with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.appendData("foo"), with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.appendData("foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.appendData("foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.appendData(""), with unselected range on foreignComment from 0 to 1
+PASS foreignComment.appendData(""), with selected range on foreignComment from 0 to 1
+PASS foreignComment.appendData(""), with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.appendData(""), with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.appendData(""), with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.appendData(""), with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.appendData(""), with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.appendData(""), with selected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.appendData(""), with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.appendData(""), with selected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.appendData(""), with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.appendData(""), with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.appendData(""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.appendData(""), with selected range on foreignComment from 1 to 3
+PASS xmlComment.appendData("foo"), with unselected range on xmlComment from 0 to 1
+PASS xmlComment.appendData("foo"), with selected range on xmlComment from 0 to 1
+PASS xmlComment.appendData("foo"), with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.appendData("foo"), with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.appendData("foo"), with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.appendData("foo"), with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.appendData("foo"), with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.appendData("foo"), with selected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.appendData("foo"), with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.appendData("foo"), with selected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.appendData("foo"), with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.appendData("foo"), with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.appendData("foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.appendData("foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.appendData(""), with unselected range on xmlComment from 0 to 1
+PASS xmlComment.appendData(""), with selected range on xmlComment from 0 to 1
+PASS xmlComment.appendData(""), with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.appendData(""), with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.appendData(""), with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.appendData(""), with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.appendData(""), with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.appendData(""), with selected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.appendData(""), with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.appendData(""), with selected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.appendData(""), with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.appendData(""), with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.appendData(""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.appendData(""), with selected range on xmlComment from 1 to 3
+PASS detachedComment.appendData("foo"), with unselected range on detachedComment from 0 to 1
+PASS detachedComment.appendData("foo"), with selected range on detachedComment from 0 to 1
+PASS detachedComment.appendData("foo"), with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.appendData("foo"), with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.appendData("foo"), with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.appendData("foo"), with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.appendData("foo"), with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.appendData("foo"), with selected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.appendData("foo"), with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.appendData("foo"), with selected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.appendData("foo"), with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.appendData("foo"), with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.appendData("foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.appendData("foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.appendData(""), with unselected range on detachedComment from 0 to 1
+PASS detachedComment.appendData(""), with selected range on detachedComment from 0 to 1
+PASS detachedComment.appendData(""), with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.appendData(""), with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.appendData(""), with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.appendData(""), with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.appendData(""), with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.appendData(""), with selected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.appendData(""), with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.appendData(""), with selected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.appendData(""), with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.appendData(""), with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.appendData(""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.appendData(""), with selected range on detachedComment from 1 to 3
+PASS detachedForeignComment.appendData("foo"), with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.appendData("foo"), with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.appendData("foo"), with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.appendData("foo"), with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.appendData("foo"), with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.appendData("foo"), with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.appendData("foo"), with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.appendData("foo"), with selected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.appendData("foo"), with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.appendData("foo"), with selected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.appendData("foo"), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.appendData("foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.appendData("foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.appendData("foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.appendData(""), with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.appendData(""), with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.appendData(""), with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.appendData(""), with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.appendData(""), with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.appendData(""), with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.appendData(""), with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.appendData(""), with selected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.appendData(""), with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.appendData(""), with selected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.appendData(""), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.appendData(""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.appendData(""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.appendData(""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedXmlComment.appendData("foo"), with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.appendData("foo"), with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.appendData("foo"), with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.appendData("foo"), with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.appendData("foo"), with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.appendData("foo"), with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.appendData("foo"), with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.appendData("foo"), with selected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.appendData("foo"), with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.appendData("foo"), with selected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.appendData("foo"), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.appendData("foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.appendData("foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.appendData("foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.appendData(""), with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.appendData(""), with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.appendData(""), with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.appendData(""), with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.appendData(""), with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.appendData(""), with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.appendData(""), with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.appendData(""), with selected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.appendData(""), with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.appendData(""), with selected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.appendData(""), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.appendData(""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.appendData(""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.appendData(""), with selected range on detachedXmlComment from 1 to 3
+PASS paras[0].firstChild.appendData(""), with unselected range collapsed at (paras[0], 0)
+PASS paras[0].firstChild.appendData(""), with selected range collapsed at (paras[0], 0)
+PASS paras[0].firstChild.appendData(""), with unselected range on paras[0] from 0 to 1
+PASS paras[0].firstChild.appendData(""), with selected range on paras[0] from 0 to 1
+PASS paras[0].firstChild.appendData(""), with unselected range collapsed at (paras[0], 1)
+PASS paras[0].firstChild.appendData(""), with selected range collapsed at (paras[0], 1)
+PASS paras[0].firstChild.appendData(""), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.appendData(""), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.appendData(""), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.appendData(""), with selected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.appendData("foo"), with unselected range collapsed at (paras[0], 0)
+PASS paras[0].firstChild.appendData("foo"), with selected range collapsed at (paras[0], 0)
+PASS paras[0].firstChild.appendData("foo"), with unselected range on paras[0] from 0 to 1
+PASS paras[0].firstChild.appendData("foo"), with selected range on paras[0] from 0 to 1
+PASS paras[0].firstChild.appendData("foo"), with unselected range collapsed at (paras[0], 1)
+PASS paras[0].firstChild.appendData("foo"), with selected range collapsed at (paras[0], 1)
+PASS paras[0].firstChild.appendData("foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.appendData("foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.appendData("foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.appendData("foo"), 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>+<!doctype html>
+<title>Range mutation tests - appendData</title>
+<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
+<meta name=timeout content=long>
+
+<div id=log></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../common.js"></script>
+<script src="Range-mutations.js"></script>
+<script>
+doTests(appendDataTests, function(params) { return params[0] + ".appendData(" + params[1] + ")" }, testAppendData);
+testDiv.style.display = "none";
+</script>
</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 = "", with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.data = "", with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.data = "foo", with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.data = "foo", 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 += "", with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.data += "", with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.data += "foo", with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.data += "foo", 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 = "", with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.textContent = "", with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.textContent = "foo", with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.textContent = "foo", 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 += "", with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.textContent += "", with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.textContent += "foo", with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.textContent += "foo", 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 = "", with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.nodeValue = "", with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.nodeValue = "foo", with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.nodeValue = "foo", 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 += "", with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.nodeValue += "", with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.nodeValue += "foo", with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.nodeValue += "foo", 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 = "", with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.data = "", with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.data = "foo", with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.data = "foo", 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 += "", with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.data += "", with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.data += "foo", with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.data += "foo", 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 = "", with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.textContent = "", with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.textContent = "foo", with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.textContent = "foo", 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 += "", with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.textContent += "", with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.textContent += "foo", with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.textContent += "foo", 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 = "", with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.nodeValue = "", with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.nodeValue = "foo", with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.nodeValue = "foo", 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 += "", with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.nodeValue += "", with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.nodeValue += "foo", with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.nodeValue += "foo", 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 = "", with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.data = "", with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.data = "foo", with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.data = "foo", 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 += "", with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.data += "", with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.data += "foo", with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.data += "foo", 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 = "", with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.textContent = "", with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.textContent = "foo", with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.textContent = "foo", 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 += "", with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.textContent += "", with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.textContent += "foo", with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.textContent += "foo", 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 = "", with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.nodeValue = "", with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.nodeValue = "foo", with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.nodeValue = "foo", 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 += "", with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.nodeValue += "", with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.nodeValue += "foo", with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.nodeValue += "foo", 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 = "", with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.data = "", with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.data = "foo", with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.data = "foo", 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 += "", with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.data += "", with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.data += "foo", with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.data += "foo", 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 = "", with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.textContent = "", with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.textContent = "foo", with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.textContent = "foo", 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 += "", with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.textContent += "", with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.textContent += "foo", with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.textContent += "foo", 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 = "", with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.nodeValue = "", with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.nodeValue = "foo", with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.nodeValue = "foo", 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 += "", with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.nodeValue += "", with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.nodeValue += "foo", with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length
+PASS paras[0].firstChild.nodeValue += "foo", 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 = "", with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.data = "", with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.data = "foo", with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.data = "foo", 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 += "", with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.data += "", with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.data += "foo", with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.data += "foo", 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 = "", with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.textContent = "", with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.textContent = "foo", with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.textContent = "foo", 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 += "", with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.textContent += "", with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.textContent += "foo", with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.textContent += "foo", 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 = "", with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.nodeValue = "", with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.nodeValue = "foo", with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.nodeValue = "foo", 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 += "", with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.nodeValue += "", with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.nodeValue += "foo", with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length
+PASS paras[0].firstChild.nodeValue += "foo", 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 = "", with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.data = "", with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.data = "foo", with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.data = "foo", 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 += "", with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.data += "", with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.data += "foo", with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.data += "foo", 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 = "", with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.textContent = "", with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.textContent = "foo", with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.textContent = "foo", 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 += "", with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.textContent += "", with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.textContent += "foo", with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.textContent += "foo", 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 = "", with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.nodeValue = "", with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.nodeValue = "foo", with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.nodeValue = "foo", 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 += "", with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.nodeValue += "", with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.nodeValue += "foo", with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.nodeValue += "foo", 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 = "", with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.data = "", with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.data = "foo", with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.data = "foo", 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 += "", with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.data += "", with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.data += "foo", with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.data += "foo", 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 = "", with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.textContent = "", with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.textContent = "foo", with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.textContent = "foo", 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 += "", with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.textContent += "", with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.textContent += "foo", with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.textContent += "foo", 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 = "", with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.nodeValue = "", with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.nodeValue = "foo", with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.nodeValue = "foo", 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 += "", with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.nodeValue += "", with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.nodeValue += "foo", with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.nodeValue += "foo", 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 = "", with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.data = "", with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.data = "foo", with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.data = "foo", 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 += "", with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.data += "", with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.data += "foo", with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.data += "foo", 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 = "", with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.textContent = "", with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.textContent = "foo", with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.textContent = "foo", 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 += "", with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.textContent += "", with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.textContent += "foo", with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.textContent += "foo", 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 = "", with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.nodeValue = "", with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.nodeValue = "foo", with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.nodeValue = "foo", 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 += "", with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.nodeValue += "", with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.nodeValue += "foo", with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.nodeValue += "foo", 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 = "", with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.data = "", with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.data = "foo", with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.data = "foo", 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 += "", with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.data += "", with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.data += "foo", with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.data += "foo", 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 = "", with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.textContent = "", with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.textContent = "foo", with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.textContent = "foo", 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 += "", with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.textContent += "", with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.textContent += "foo", with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.textContent += "foo", 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 = "", with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.nodeValue = "", with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.nodeValue = "foo", with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.nodeValue = "foo", 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 += "", with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.nodeValue += "", with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.nodeValue += "foo", with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.nodeValue += "foo", 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 = "", with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.data = "", with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.data = "foo", with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.data = "foo", 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 += "", with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.data += "", with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.data += "foo", with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.data += "foo", 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 = "", with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.textContent = "", with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.textContent = "foo", with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.textContent = "foo", 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 += "", with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.textContent += "", with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.textContent += "foo", with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.textContent += "foo", 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 = "", with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.nodeValue = "", with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.nodeValue = "foo", with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.nodeValue = "foo", 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 += "", with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.nodeValue += "", with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.nodeValue += "foo", with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length
+PASS paras[1].firstChild.nodeValue += "foo", 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 = "", with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.data = "", with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.data = "foo", with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.data = "foo", 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 += "", with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.data += "", with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.data += "foo", with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.data += "foo", 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 = "", with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.textContent = "", with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.textContent = "foo", with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.textContent = "foo", 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 += "", with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.textContent += "", with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.textContent += "foo", with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.textContent += "foo", 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 = "", with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.nodeValue = "", with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.nodeValue = "foo", with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.nodeValue = "foo", 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 += "", with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.nodeValue += "", with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.nodeValue += "foo", with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length
+PASS paras[1].firstChild.nodeValue += "foo", 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 = "", with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.data = "", with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.data = "foo", with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.data = "foo", 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 += "", with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.data += "", with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.data += "foo", with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.data += "foo", 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 = "", with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.textContent = "", with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.textContent = "foo", with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.textContent = "foo", 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 += "", with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.textContent += "", with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.textContent += "foo", with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.textContent += "foo", 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 = "", with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.nodeValue = "", with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.nodeValue = "foo", with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.nodeValue = "foo", 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 += "", with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.nodeValue += "", with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.nodeValue += "foo", with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.nodeValue += "foo", 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 = "", with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.data = "", with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.data = "foo", with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.data = "foo", 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 += "", with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.data += "", with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.data += "foo", with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.data += "foo", 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 = "", with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.textContent = "", with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.textContent = "foo", with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.textContent += "", with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.textContent += "foo", with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.nodeValue = "", with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.nodeValue = "foo", with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.nodeValue += "", with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.nodeValue += "foo", with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.nodeValue += "foo", 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 = "", with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.data = "", with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.data = "foo", with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.data = "foo", 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 += "", with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.data += "", with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.data += "foo", with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.data += "foo", 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 = "", with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.textContent = "", with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.textContent = "foo", with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.textContent = "foo", 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 += "", with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.textContent += "", with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.textContent += "foo", with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.textContent += "foo", 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 = "", with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.nodeValue = "", with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.nodeValue = "foo", with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.nodeValue = "foo", 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 += "", with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.nodeValue += "", with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.nodeValue += "foo", with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.data = "", with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.data = "foo", with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.data = "foo", 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 += "", with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.data += "", with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.data += "foo", with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.data += "foo", 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 = "", with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.textContent = "", with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.textContent = "foo", with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.textContent += "", with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.textContent += "foo", with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.nodeValue = "", with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.nodeValue = "foo", with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.nodeValue += "", with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.nodeValue += "foo", with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.nodeValue += "foo", 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 = "", with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.data = "", with selected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.data = "foo", with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.data = "foo", 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 += "", with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.data += "", with selected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.data += "foo", with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.data += "foo", 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 = "", with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.textContent = "", with selected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.textContent = "foo", with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.textContent = "foo", 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 += "", with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.textContent += "", with selected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.textContent += "foo", with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.textContent += "foo", 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 = "", with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.nodeValue = "", with selected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.nodeValue = "foo", with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.nodeValue = "foo", 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 += "", with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.nodeValue += "", with selected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.nodeValue += "foo", with unselected range on foreignTextNode from 0 to foreignTextNode.length
+PASS foreignTextNode.nodeValue += "foo", 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 = "", with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.data = "", with selected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.data = "foo", with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.data = "foo", 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 += "", with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.data += "", with selected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.data += "foo", with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.data += "foo", 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 = "", with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.textContent = "", with selected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.textContent = "foo", with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.textContent = "foo", 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 += "", with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.textContent += "", with selected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.textContent += "foo", with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.textContent += "foo", 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 = "", with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.nodeValue = "", with selected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.nodeValue = "foo", with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.nodeValue = "foo", 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 += "", with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.nodeValue += "", with selected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.nodeValue += "foo", with unselected range on foreignTextNode from 1 to foreignTextNode.length
+PASS foreignTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.data = "", with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.data = "foo", with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.data = "foo", 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 += "", with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.data += "", with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.data += "foo", with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.data += "foo", 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 = "", with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.textContent = "", with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.textContent = "foo", with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.textContent += "", with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.textContent += "foo", with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.nodeValue = "", with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.nodeValue = "foo", with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.nodeValue += "", with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.nodeValue += "foo", with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.data = "", with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.data = "foo", with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.data = "foo", 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 += "", with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.data += "", with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.data += "foo", with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.data += "foo", 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 = "", with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.textContent = "", with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.textContent = "foo", with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.textContent += "", with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.textContent += "foo", with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.nodeValue = "", with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.nodeValue = "foo", with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.nodeValue += "", with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.nodeValue += "foo", with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.nodeValue += "foo", 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 = "", with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.data = "", with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.data = "foo", with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.data = "foo", 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 += "", with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.data += "", with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.data += "foo", with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.data += "foo", 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 = "", with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.textContent = "", with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.textContent = "foo", with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.textContent = "foo", 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 += "", with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.textContent += "", with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.textContent += "foo", with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.textContent += "foo", 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 = "", with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.nodeValue = "", with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.nodeValue = "foo", with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.nodeValue = "foo", 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 += "", with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.nodeValue += "", with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.nodeValue += "foo", with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.data = "", with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.data = "foo", with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.data = "foo", 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 += "", with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.data += "", with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.data += "foo", with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.data += "foo", 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 = "", with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.textContent = "", with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.textContent = "foo", with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.textContent += "", with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.textContent += "foo", with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.nodeValue = "", with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.nodeValue = "foo", with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.nodeValue += "", with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.nodeValue += "foo", with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.nodeValue += "foo", 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 = "", with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.data = "", with selected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.data = "foo", with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.data = "foo", 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 += "", with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.data += "", with selected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.data += "foo", with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.data += "foo", 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 = "", with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.textContent = "", with selected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.textContent = "foo", with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.textContent = "foo", 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 += "", with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.textContent += "", with selected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.textContent += "foo", with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.textContent += "foo", 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 = "", with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.nodeValue = "", with selected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.nodeValue = "foo", with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.nodeValue = "foo", 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 += "", with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.nodeValue += "", with selected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.nodeValue += "foo", with unselected range on xmlTextNode from 0 to xmlTextNode.length
+PASS xmlTextNode.nodeValue += "foo", 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 = "", with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.data = "", with selected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.data = "foo", with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.data = "foo", 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 += "", with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.data += "", with selected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.data += "foo", with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.data += "foo", 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 = "", with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.textContent = "", with selected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.textContent = "foo", with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.textContent = "foo", 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 += "", with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.textContent += "", with selected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.textContent += "foo", with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.textContent += "foo", 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 = "", with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.nodeValue = "", with selected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.nodeValue = "foo", with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.nodeValue = "foo", 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 += "", with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.nodeValue += "", with selected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.nodeValue += "foo", with unselected range on xmlTextNode from 1 to xmlTextNode.length
+PASS xmlTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.data = "", with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.data = "foo", with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.data = "foo", 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 += "", with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.data += "", with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.data += "foo", with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.data += "foo", 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 = "", with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.textContent = "", with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.textContent = "foo", with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.textContent += "", with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.textContent += "foo", with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.nodeValue = "", with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.nodeValue = "foo", with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.nodeValue += "", with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.nodeValue += "foo", with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.data = "", with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.data = "foo", with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.data = "foo", 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 += "", with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.data += "", with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.data += "foo", with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.data += "foo", 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 = "", with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.textContent = "", with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.textContent = "foo", with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.textContent += "", with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.textContent += "foo", with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.nodeValue = "", with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.nodeValue = "foo", with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.nodeValue += "", with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.nodeValue += "foo", with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.nodeValue += "foo", 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 = "", with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.data = "", with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.data = "foo", with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.data = "foo", 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 += "", with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.data += "", with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.data += "foo", with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.data += "foo", 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 = "", with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.textContent = "", with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.textContent = "foo", with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.textContent = "foo", 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 += "", with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.textContent += "", with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.textContent += "foo", with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.textContent += "foo", 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 = "", with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.nodeValue = "", with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.nodeValue = "foo", with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.nodeValue = "foo", 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 += "", with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.nodeValue += "", with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.nodeValue += "foo", with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.data = "", with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.data = "foo", with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.data = "foo", 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 += "", with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.data += "", with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.data += "foo", with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.data += "foo", 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 = "", with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.textContent = "", with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.textContent = "foo", with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.textContent += "", with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.textContent += "foo", with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.nodeValue = "", with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.nodeValue = "foo", with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.nodeValue += "", with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.nodeValue += "foo", with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.nodeValue += "foo", 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 = "", with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.data = "", with selected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.data = "foo", with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.data = "foo", 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 += "", with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.data += "", with selected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.data += "foo", with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.data += "foo", 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 = "", with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.textContent = "", with selected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.textContent = "foo", with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.textContent = "foo", 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 += "", with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.textContent += "", with selected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.textContent += "foo", with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.textContent += "foo", 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 = "", with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.nodeValue = "", with selected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.nodeValue = "foo", with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.nodeValue = "foo", 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 += "", with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.nodeValue += "", with selected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.nodeValue += "foo", with unselected range on detachedTextNode from 0 to detachedTextNode.length
+PASS detachedTextNode.nodeValue += "foo", 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 = "", with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.data = "", with selected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.data = "foo", with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.data = "foo", 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 += "", with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.data += "", with selected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.data += "foo", with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.data += "foo", 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 = "", with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.textContent = "", with selected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.textContent = "foo", with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.textContent = "foo", 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 += "", with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.textContent += "", with selected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.textContent += "foo", with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.textContent += "foo", 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 = "", with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.nodeValue = "", with selected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.nodeValue = "foo", with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.nodeValue = "foo", 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 += "", with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.nodeValue += "", with selected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.nodeValue += "foo", with unselected range on detachedTextNode from 1 to detachedTextNode.length
+PASS detachedTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.data = "", with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.data = "foo", with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.data = "foo", 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 += "", with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.data += "", with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.data += "foo", with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.data += "foo", 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 = "", with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.textContent = "", with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.textContent = "foo", with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.textContent += "", with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.textContent += "foo", with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.nodeValue = "", with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.nodeValue = "foo", with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.nodeValue += "", with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.nodeValue += "foo", with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.data = "", with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.data = "foo", with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.data = "foo", 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 += "", with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.data += "", with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.data += "foo", with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.data += "foo", 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 = "", with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.textContent = "", with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.textContent = "foo", with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.textContent += "", with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.textContent += "foo", with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.nodeValue = "", with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.nodeValue = "foo", with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.nodeValue += "", with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.nodeValue += "foo", with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.nodeValue += "foo", 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 = "", with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.data = "", with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.data = "foo", with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.data = "foo", 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 += "", with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.data += "", with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.data += "foo", with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.data += "foo", 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 = "", with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.textContent = "", with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.textContent = "foo", with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.textContent = "foo", 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 += "", with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.textContent += "", with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.textContent += "foo", with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.textContent += "foo", 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 = "", with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.nodeValue = "", with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.nodeValue = "foo", with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.nodeValue = "foo", 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 += "", with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.nodeValue += "", with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.nodeValue += "foo", with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.data = "", with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.data = "foo", with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.data = "foo", 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 += "", with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.data += "", with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.data += "foo", with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.data += "foo", 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 = "", with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.textContent = "", with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.textContent = "foo", with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.textContent += "", with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.textContent += "foo", with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.nodeValue = "", with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.nodeValue = "foo", with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.nodeValue += "", with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.nodeValue += "foo", with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.nodeValue += "foo", 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 = "", with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.data = "", with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.data = "foo", with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.data = "foo", 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 += "", with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.data += "", with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.data += "foo", with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.data += "foo", 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 = "", with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.textContent = "", with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.textContent = "foo", with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.textContent = "foo", 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 += "", with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.textContent += "", with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.textContent += "foo", with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.textContent += "foo", 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 = "", with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.nodeValue = "", with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.nodeValue = "foo", with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.nodeValue = "foo", 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 += "", with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.nodeValue += "", with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.nodeValue += "foo", with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.nodeValue += "foo", 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 = "", with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.data = "", with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.data = "foo", with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.data = "foo", 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 += "", with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.data += "", with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.data += "foo", with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.data += "foo", 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 = "", with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.textContent = "", with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.textContent = "foo", with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.textContent = "foo", 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 += "", with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.textContent += "", with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.textContent += "foo", with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.textContent += "foo", 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 = "", with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.nodeValue = "", with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.nodeValue = "foo", with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.nodeValue = "foo", 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 += "", with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.nodeValue += "", with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.nodeValue += "foo", with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length
+PASS detachedForeignTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.data = "", with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.data = "foo", with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.data = "foo", 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 += "", with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.data += "", with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.data += "foo", with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.data += "foo", 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 = "", with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.textContent = "", with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.textContent = "foo", with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.textContent += "", with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.textContent += "foo", with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.nodeValue = "", with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.nodeValue = "foo", with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.nodeValue += "", with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.nodeValue += "foo", with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.data = "", with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.data = "foo", with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.data = "foo", 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 += "", with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.data += "", with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.data += "foo", with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.data += "foo", 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 = "", with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.textContent = "", with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.textContent = "foo", with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.textContent += "", with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.textContent += "foo", with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.nodeValue = "", with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.nodeValue = "foo", with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.nodeValue += "", with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.nodeValue += "foo", with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.nodeValue += "foo", 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 = "", with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.data = "", with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.data = "foo", with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.data = "foo", 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 += "", with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.data += "", with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.data += "foo", with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.data += "foo", 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 = "", with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.textContent = "", with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.textContent = "foo", with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.textContent = "foo", 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 += "", with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.textContent += "", with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.textContent += "foo", with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.textContent += "foo", 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 = "", with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.nodeValue = "", with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.nodeValue = "foo", with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.nodeValue = "foo", 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 += "", with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.nodeValue += "", with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.nodeValue += "foo", with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.data = "", with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.data = "foo", with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.data = "foo", 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 += "", with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.data += "", with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.data += "foo", with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.data += "foo", 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 = "", with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.textContent = "", with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.textContent = "foo", with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.textContent += "", with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.textContent += "foo", with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.nodeValue = "", with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.nodeValue = "foo", with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.nodeValue += "", with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.nodeValue += "foo", with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.nodeValue += "foo", 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 = "", with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.data = "", with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.data = "foo", with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.data = "foo", 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 += "", with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.data += "", with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.data += "foo", with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.data += "foo", 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 = "", with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.textContent = "", with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.textContent = "foo", with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.textContent = "foo", 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 += "", with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.textContent += "", with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.textContent += "foo", with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.textContent += "foo", 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 = "", with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.nodeValue = "", with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.nodeValue = "foo", with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.nodeValue = "foo", 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 += "", with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.nodeValue += "", with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.nodeValue += "foo", with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.nodeValue += "foo", 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 = "", with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.data = "", with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.data = "foo", with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.data = "foo", 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 += "", with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.data += "", with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.data += "foo", with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.data += "foo", 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 = "", with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.textContent = "", with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.textContent = "foo", with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.textContent = "foo", 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 += "", with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.textContent += "", with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.textContent += "foo", with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.textContent += "foo", 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 = "", with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.nodeValue = "", with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.nodeValue = "foo", with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.nodeValue = "foo", 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 += "", with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.nodeValue += "", with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.nodeValue += "foo", with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length
+PASS detachedXmlTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.data = "", with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.data = "foo", with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.data = "foo", 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 += "", with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.data += "", with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.data += "foo", with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.data += "foo", 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 = "", with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.textContent = "", with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.textContent = "foo", with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.textContent = "foo", 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 += "", with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.textContent += "", with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.textContent += "foo", with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.textContent += "foo", 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 = "", with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.nodeValue = "", with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.nodeValue = "foo", with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.nodeValue += "", with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.nodeValue += "foo", with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.nodeValue += "foo", 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 = "", with unselected range collapsed at (comment, 0)
+PASS comment.data = "", with selected range collapsed at (comment, 0)
+PASS comment.data = "foo", with unselected range collapsed at (comment, 0)
+PASS comment.data = "foo", 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 += "", with unselected range collapsed at (comment, 0)
+PASS comment.data += "", with selected range collapsed at (comment, 0)
+PASS comment.data += "foo", with unselected range collapsed at (comment, 0)
+PASS comment.data += "foo", 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 = "", with unselected range collapsed at (comment, 0)
+PASS comment.textContent = "", with selected range collapsed at (comment, 0)
+PASS comment.textContent = "foo", with unselected range collapsed at (comment, 0)
+PASS comment.textContent = "foo", 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 += "", with unselected range collapsed at (comment, 0)
+PASS comment.textContent += "", with selected range collapsed at (comment, 0)
+PASS comment.textContent += "foo", with unselected range collapsed at (comment, 0)
+PASS comment.textContent += "foo", 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 = "", with unselected range collapsed at (comment, 0)
+PASS comment.nodeValue = "", with selected range collapsed at (comment, 0)
+PASS comment.nodeValue = "foo", with unselected range collapsed at (comment, 0)
+PASS comment.nodeValue = "foo", 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 += "", with unselected range collapsed at (comment, 0)
+PASS comment.nodeValue += "", with selected range collapsed at (comment, 0)
+PASS comment.nodeValue += "foo", with unselected range collapsed at (comment, 0)
+PASS comment.nodeValue += "foo", 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 = "", with unselected range on comment from 0 to 1
+PASS comment.data = "", with selected range on comment from 0 to 1
+PASS comment.data = "foo", with unselected range on comment from 0 to 1
+PASS comment.data = "foo", 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 += "", with unselected range on comment from 0 to 1
+PASS comment.data += "", with selected range on comment from 0 to 1
+PASS comment.data += "foo", with unselected range on comment from 0 to 1
+PASS comment.data += "foo", 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 = "", with unselected range on comment from 0 to 1
+PASS comment.textContent = "", with selected range on comment from 0 to 1
+PASS comment.textContent = "foo", with unselected range on comment from 0 to 1
+PASS comment.textContent = "foo", 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 += "", with unselected range on comment from 0 to 1
+PASS comment.textContent += "", with selected range on comment from 0 to 1
+PASS comment.textContent += "foo", with unselected range on comment from 0 to 1
+PASS comment.textContent += "foo", 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 = "", with unselected range on comment from 0 to 1
+PASS comment.nodeValue = "", with selected range on comment from 0 to 1
+PASS comment.nodeValue = "foo", with unselected range on comment from 0 to 1
+PASS comment.nodeValue = "foo", 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 += "", with unselected range on comment from 0 to 1
+PASS comment.nodeValue += "", with selected range on comment from 0 to 1
+PASS comment.nodeValue += "foo", with unselected range on comment from 0 to 1
+PASS comment.nodeValue += "foo", 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 = "", with unselected range collapsed at (comment, 1)
+PASS comment.data = "", with selected range collapsed at (comment, 1)
+PASS comment.data = "foo", with unselected range collapsed at (comment, 1)
+PASS comment.data = "foo", 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 += "", with unselected range collapsed at (comment, 1)
+PASS comment.data += "", with selected range collapsed at (comment, 1)
+PASS comment.data += "foo", with unselected range collapsed at (comment, 1)
+PASS comment.data += "foo", 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 = "", with unselected range collapsed at (comment, 1)
+PASS comment.textContent = "", with selected range collapsed at (comment, 1)
+PASS comment.textContent = "foo", with unselected range collapsed at (comment, 1)
+PASS comment.textContent = "foo", 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 += "", with unselected range collapsed at (comment, 1)
+PASS comment.textContent += "", with selected range collapsed at (comment, 1)
+PASS comment.textContent += "foo", with unselected range collapsed at (comment, 1)
+PASS comment.textContent += "foo", 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 = "", with unselected range collapsed at (comment, 1)
+PASS comment.nodeValue = "", with selected range collapsed at (comment, 1)
+PASS comment.nodeValue = "foo", with unselected range collapsed at (comment, 1)
+PASS comment.nodeValue = "foo", 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 += "", with unselected range collapsed at (comment, 1)
+PASS comment.nodeValue += "", with selected range collapsed at (comment, 1)
+PASS comment.nodeValue += "foo", with unselected range collapsed at (comment, 1)
+PASS comment.nodeValue += "foo", 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 = "", with unselected range on comment from 0 to comment.length
+PASS comment.data = "", with selected range on comment from 0 to comment.length
+PASS comment.data = "foo", with unselected range on comment from 0 to comment.length
+PASS comment.data = "foo", 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 += "", with unselected range on comment from 0 to comment.length
+PASS comment.data += "", with selected range on comment from 0 to comment.length
+PASS comment.data += "foo", with unselected range on comment from 0 to comment.length
+PASS comment.data += "foo", 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 = "", with unselected range on comment from 0 to comment.length
+PASS comment.textContent = "", with selected range on comment from 0 to comment.length
+PASS comment.textContent = "foo", with unselected range on comment from 0 to comment.length
+PASS comment.textContent = "foo", 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 += "", with unselected range on comment from 0 to comment.length
+PASS comment.textContent += "", with selected range on comment from 0 to comment.length
+PASS comment.textContent += "foo", with unselected range on comment from 0 to comment.length
+PASS comment.textContent += "foo", 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 = "", with unselected range on comment from 0 to comment.length
+PASS comment.nodeValue = "", with selected range on comment from 0 to comment.length
+PASS comment.nodeValue = "foo", with unselected range on comment from 0 to comment.length
+PASS comment.nodeValue = "foo", 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 += "", with unselected range on comment from 0 to comment.length
+PASS comment.nodeValue += "", with selected range on comment from 0 to comment.length
+PASS comment.nodeValue += "foo", with unselected range on comment from 0 to comment.length
+PASS comment.nodeValue += "foo", 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 = "", with unselected range on comment from 1 to comment.length
+PASS comment.data = "", with selected range on comment from 1 to comment.length
+PASS comment.data = "foo", with unselected range on comment from 1 to comment.length
+PASS comment.data = "foo", 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 += "", with unselected range on comment from 1 to comment.length
+PASS comment.data += "", with selected range on comment from 1 to comment.length
+PASS comment.data += "foo", with unselected range on comment from 1 to comment.length
+PASS comment.data += "foo", 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 = "", with unselected range on comment from 1 to comment.length
+PASS comment.textContent = "", with selected range on comment from 1 to comment.length
+PASS comment.textContent = "foo", with unselected range on comment from 1 to comment.length
+PASS comment.textContent = "foo", 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 += "", with unselected range on comment from 1 to comment.length
+PASS comment.textContent += "", with selected range on comment from 1 to comment.length
+PASS comment.textContent += "foo", with unselected range on comment from 1 to comment.length
+PASS comment.textContent += "foo", 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 = "", with unselected range on comment from 1 to comment.length
+PASS comment.nodeValue = "", with selected range on comment from 1 to comment.length
+PASS comment.nodeValue = "foo", with unselected range on comment from 1 to comment.length
+PASS comment.nodeValue = "foo", 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 += "", with unselected range on comment from 1 to comment.length
+PASS comment.nodeValue += "", with selected range on comment from 1 to comment.length
+PASS comment.nodeValue += "foo", with unselected range on comment from 1 to comment.length
+PASS comment.nodeValue += "foo", 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 = "", with unselected range collapsed at (comment, comment.length)
+PASS comment.data = "", with selected range collapsed at (comment, comment.length)
+PASS comment.data = "foo", with unselected range collapsed at (comment, comment.length)
+PASS comment.data = "foo", 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 += "", with unselected range collapsed at (comment, comment.length)
+PASS comment.data += "", with selected range collapsed at (comment, comment.length)
+PASS comment.data += "foo", with unselected range collapsed at (comment, comment.length)
+PASS comment.data += "foo", 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 = "", with unselected range collapsed at (comment, comment.length)
+PASS comment.textContent = "", with selected range collapsed at (comment, comment.length)
+PASS comment.textContent = "foo", with unselected range collapsed at (comment, comment.length)
+PASS comment.textContent = "foo", 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 += "", with unselected range collapsed at (comment, comment.length)
+PASS comment.textContent += "", with selected range collapsed at (comment, comment.length)
+PASS comment.textContent += "foo", with unselected range collapsed at (comment, comment.length)
+PASS comment.textContent += "foo", 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 = "", with unselected range collapsed at (comment, comment.length)
+PASS comment.nodeValue = "", with selected range collapsed at (comment, comment.length)
+PASS comment.nodeValue = "foo", with unselected range collapsed at (comment, comment.length)
+PASS comment.nodeValue = "foo", 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 += "", with unselected range collapsed at (comment, comment.length)
+PASS comment.nodeValue += "", with selected range collapsed at (comment, comment.length)
+PASS comment.nodeValue += "foo", with unselected range collapsed at (comment, comment.length)
+PASS comment.nodeValue += "foo", 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 = "", with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.data = "", with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.data = "foo", with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.data = "foo", 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 += "", with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.data += "", with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.data += "foo", with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.data += "foo", 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 = "", with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.textContent = "", with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.textContent = "foo", with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.textContent = "foo", 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 += "", with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.textContent += "", with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.textContent += "foo", with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.textContent += "foo", 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 = "", with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.nodeValue = "", with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.nodeValue = "foo", with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.nodeValue += "", with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.nodeValue += "foo", with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.nodeValue += "foo", 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 = "", with unselected range on foreignComment from 0 to 1
+PASS foreignComment.data = "", with selected range on foreignComment from 0 to 1
+PASS foreignComment.data = "foo", with unselected range on foreignComment from 0 to 1
+PASS foreignComment.data = "foo", 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 += "", with unselected range on foreignComment from 0 to 1
+PASS foreignComment.data += "", with selected range on foreignComment from 0 to 1
+PASS foreignComment.data += "foo", with unselected range on foreignComment from 0 to 1
+PASS foreignComment.data += "foo", 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 = "", with unselected range on foreignComment from 0 to 1
+PASS foreignComment.textContent = "", with selected range on foreignComment from 0 to 1
+PASS foreignComment.textContent = "foo", with unselected range on foreignComment from 0 to 1
+PASS foreignComment.textContent = "foo", 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 += "", with unselected range on foreignComment from 0 to 1
+PASS foreignComment.textContent += "", with selected range on foreignComment from 0 to 1
+PASS foreignComment.textContent += "foo", with unselected range on foreignComment from 0 to 1
+PASS foreignComment.textContent += "foo", 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 = "", with unselected range on foreignComment from 0 to 1
+PASS foreignComment.nodeValue = "", with selected range on foreignComment from 0 to 1
+PASS foreignComment.nodeValue = "foo", with unselected range on foreignComment from 0 to 1
+PASS foreignComment.nodeValue = "foo", 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 += "", with unselected range on foreignComment from 0 to 1
+PASS foreignComment.nodeValue += "", with selected range on foreignComment from 0 to 1
+PASS foreignComment.nodeValue += "foo", with unselected range on foreignComment from 0 to 1
+PASS foreignComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.data = "", with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.data = "foo", with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.data = "foo", 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 += "", with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.data += "", with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.data += "foo", with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.data += "foo", 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 = "", with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.textContent = "", with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.textContent = "foo", with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.textContent = "foo", 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 += "", with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.textContent += "", with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.textContent += "foo", with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.textContent += "foo", 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 = "", with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.nodeValue = "", with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.nodeValue = "foo", with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.nodeValue += "", with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.nodeValue += "foo", with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.nodeValue += "foo", 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 = "", with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.data = "", with selected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.data = "foo", with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.data = "foo", 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 += "", with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.data += "", with selected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.data += "foo", with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.data += "foo", 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 = "", with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.textContent = "", with selected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.textContent = "foo", with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.textContent = "foo", 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 += "", with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.textContent += "", with selected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.textContent += "foo", with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.textContent += "foo", 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 = "", with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.nodeValue = "", with selected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.nodeValue = "foo", with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.nodeValue = "foo", 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 += "", with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.nodeValue += "", with selected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.nodeValue += "foo", with unselected range on foreignComment from 0 to foreignComment.length
+PASS foreignComment.nodeValue += "foo", 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 = "", with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.data = "", with selected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.data = "foo", with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.data = "foo", 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 += "", with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.data += "", with selected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.data += "foo", with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.data += "foo", 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 = "", with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.textContent = "", with selected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.textContent = "foo", with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.textContent = "foo", 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 += "", with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.textContent += "", with selected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.textContent += "foo", with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.textContent += "foo", 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 = "", with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.nodeValue = "", with selected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.nodeValue = "foo", with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.nodeValue = "foo", 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 += "", with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.nodeValue += "", with selected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.nodeValue += "foo", with unselected range on foreignComment from 1 to foreignComment.length
+PASS foreignComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.data = "", with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.data = "foo", with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.data = "foo", 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 += "", with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.data += "", with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.data += "foo", with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.data += "foo", 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 = "", with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.textContent = "", with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.textContent = "foo", with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.textContent = "foo", 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 += "", with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.textContent += "", with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.textContent += "foo", with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.textContent += "foo", 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 = "", with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.nodeValue = "", with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.nodeValue = "foo", with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.nodeValue += "", with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.nodeValue += "foo", with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.data = "", with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.data = "foo", with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.data = "foo", 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 += "", with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.data += "", with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.data += "foo", with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.data += "foo", 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 = "", with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.textContent = "", with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.textContent = "foo", with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.textContent = "foo", 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 += "", with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.textContent += "", with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.textContent += "foo", with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.textContent += "foo", 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 = "", with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.nodeValue = "", with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.nodeValue = "foo", with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.nodeValue += "", with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.nodeValue += "foo", with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.nodeValue += "foo", 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 = "", with unselected range on xmlComment from 0 to 1
+PASS xmlComment.data = "", with selected range on xmlComment from 0 to 1
+PASS xmlComment.data = "foo", with unselected range on xmlComment from 0 to 1
+PASS xmlComment.data = "foo", 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 += "", with unselected range on xmlComment from 0 to 1
+PASS xmlComment.data += "", with selected range on xmlComment from 0 to 1
+PASS xmlComment.data += "foo", with unselected range on xmlComment from 0 to 1
+PASS xmlComment.data += "foo", 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 = "", with unselected range on xmlComment from 0 to 1
+PASS xmlComment.textContent = "", with selected range on xmlComment from 0 to 1
+PASS xmlComment.textContent = "foo", with unselected range on xmlComment from 0 to 1
+PASS xmlComment.textContent = "foo", 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 += "", with unselected range on xmlComment from 0 to 1
+PASS xmlComment.textContent += "", with selected range on xmlComment from 0 to 1
+PASS xmlComment.textContent += "foo", with unselected range on xmlComment from 0 to 1
+PASS xmlComment.textContent += "foo", 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 = "", with unselected range on xmlComment from 0 to 1
+PASS xmlComment.nodeValue = "", with selected range on xmlComment from 0 to 1
+PASS xmlComment.nodeValue = "foo", with unselected range on xmlComment from 0 to 1
+PASS xmlComment.nodeValue = "foo", 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 += "", with unselected range on xmlComment from 0 to 1
+PASS xmlComment.nodeValue += "", with selected range on xmlComment from 0 to 1
+PASS xmlComment.nodeValue += "foo", with unselected range on xmlComment from 0 to 1
+PASS xmlComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.data = "", with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.data = "foo", with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.data = "foo", 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 += "", with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.data += "", with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.data += "foo", with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.data += "foo", 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 = "", with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.textContent = "", with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.textContent = "foo", with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.textContent = "foo", 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 += "", with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.textContent += "", with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.textContent += "foo", with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.textContent += "foo", 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 = "", with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.nodeValue = "", with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.nodeValue = "foo", with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.nodeValue += "", with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.nodeValue += "foo", with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.nodeValue += "foo", 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 = "", with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.data = "", with selected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.data = "foo", with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.data = "foo", 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 += "", with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.data += "", with selected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.data += "foo", with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.data += "foo", 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 = "", with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.textContent = "", with selected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.textContent = "foo", with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.textContent = "foo", 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 += "", with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.textContent += "", with selected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.textContent += "foo", with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.textContent += "foo", 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 = "", with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.nodeValue = "", with selected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.nodeValue = "foo", with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.nodeValue = "foo", 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 += "", with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.nodeValue += "", with selected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.nodeValue += "foo", with unselected range on xmlComment from 0 to xmlComment.length
+PASS xmlComment.nodeValue += "foo", 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 = "", with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.data = "", with selected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.data = "foo", with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.data = "foo", 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 += "", with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.data += "", with selected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.data += "foo", with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.data += "foo", 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 = "", with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.textContent = "", with selected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.textContent = "foo", with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.textContent = "foo", 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 += "", with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.textContent += "", with selected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.textContent += "foo", with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.textContent += "foo", 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 = "", with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.nodeValue = "", with selected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.nodeValue = "foo", with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.nodeValue = "foo", 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 += "", with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.nodeValue += "", with selected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.nodeValue += "foo", with unselected range on xmlComment from 1 to xmlComment.length
+PASS xmlComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.data = "", with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.data = "foo", with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.data = "foo", 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 += "", with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.data += "", with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.data += "foo", with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.data += "foo", 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 = "", with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.textContent = "", with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.textContent = "foo", with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.textContent = "foo", 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 += "", with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.textContent += "", with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.textContent += "foo", with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.textContent += "foo", 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 = "", with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.nodeValue = "", with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.nodeValue = "foo", with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.nodeValue += "", with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.nodeValue += "foo", with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.data = "", with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.data = "foo", with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.data = "foo", 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 += "", with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.data += "", with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.data += "foo", with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.data += "foo", 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 = "", with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.textContent = "", with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.textContent = "foo", with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.textContent = "foo", 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 += "", with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.textContent += "", with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.textContent += "foo", with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.textContent += "foo", 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 = "", with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.nodeValue = "", with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.nodeValue = "foo", with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.nodeValue += "", with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.nodeValue += "foo", with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.nodeValue += "foo", 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 = "", with unselected range on detachedComment from 0 to 1
+PASS detachedComment.data = "", with selected range on detachedComment from 0 to 1
+PASS detachedComment.data = "foo", with unselected range on detachedComment from 0 to 1
+PASS detachedComment.data = "foo", 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 += "", with unselected range on detachedComment from 0 to 1
+PASS detachedComment.data += "", with selected range on detachedComment from 0 to 1
+PASS detachedComment.data += "foo", with unselected range on detachedComment from 0 to 1
+PASS detachedComment.data += "foo", 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 = "", with unselected range on detachedComment from 0 to 1
+PASS detachedComment.textContent = "", with selected range on detachedComment from 0 to 1
+PASS detachedComment.textContent = "foo", with unselected range on detachedComment from 0 to 1
+PASS detachedComment.textContent = "foo", 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 += "", with unselected range on detachedComment from 0 to 1
+PASS detachedComment.textContent += "", with selected range on detachedComment from 0 to 1
+PASS detachedComment.textContent += "foo", with unselected range on detachedComment from 0 to 1
+PASS detachedComment.textContent += "foo", 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 = "", with unselected range on detachedComment from 0 to 1
+PASS detachedComment.nodeValue = "", with selected range on detachedComment from 0 to 1
+PASS detachedComment.nodeValue = "foo", with unselected range on detachedComment from 0 to 1
+PASS detachedComment.nodeValue = "foo", 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 += "", with unselected range on detachedComment from 0 to 1
+PASS detachedComment.nodeValue += "", with selected range on detachedComment from 0 to 1
+PASS detachedComment.nodeValue += "foo", with unselected range on detachedComment from 0 to 1
+PASS detachedComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.data = "", with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.data = "foo", with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.data = "foo", 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 += "", with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.data += "", with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.data += "foo", with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.data += "foo", 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 = "", with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.textContent = "", with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.textContent = "foo", with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.textContent = "foo", 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 += "", with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.textContent += "", with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.textContent += "foo", with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.textContent += "foo", 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 = "", with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.nodeValue = "", with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.nodeValue = "foo", with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.nodeValue += "", with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.nodeValue += "foo", with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.nodeValue += "foo", 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 = "", with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.data = "", with selected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.data = "foo", with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.data = "foo", 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 += "", with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.data += "", with selected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.data += "foo", with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.data += "foo", 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 = "", with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.textContent = "", with selected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.textContent = "foo", with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.textContent = "foo", 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 += "", with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.textContent += "", with selected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.textContent += "foo", with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.textContent += "foo", 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 = "", with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.nodeValue = "", with selected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.nodeValue = "foo", with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.nodeValue = "foo", 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 += "", with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.nodeValue += "", with selected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.nodeValue += "foo", with unselected range on detachedComment from 0 to detachedComment.length
+PASS detachedComment.nodeValue += "foo", 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 = "", with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.data = "", with selected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.data = "foo", with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.data = "foo", 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 += "", with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.data += "", with selected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.data += "foo", with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.data += "foo", 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 = "", with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.textContent = "", with selected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.textContent = "foo", with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.textContent = "foo", 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 += "", with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.textContent += "", with selected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.textContent += "foo", with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.textContent += "foo", 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 = "", with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.nodeValue = "", with selected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.nodeValue = "foo", with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.nodeValue = "foo", 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 += "", with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.nodeValue += "", with selected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.nodeValue += "foo", with unselected range on detachedComment from 1 to detachedComment.length
+PASS detachedComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.data = "", with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.data = "foo", with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.data = "foo", 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 += "", with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.data += "", with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.data += "foo", with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.data += "foo", 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 = "", with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.textContent = "", with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.textContent = "foo", with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.textContent = "foo", 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 += "", with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.textContent += "", with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.textContent += "foo", with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.textContent += "foo", 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 = "", with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.nodeValue = "", with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.nodeValue = "foo", with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.nodeValue += "", with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.nodeValue += "foo", with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.data = "", with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.data = "foo", with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.data = "foo", 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 += "", with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.data += "", with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.data += "foo", with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.data += "foo", 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 = "", with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.textContent = "", with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.textContent = "foo", with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.textContent = "foo", 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 += "", with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.textContent += "", with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.textContent += "foo", with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.textContent += "foo", 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 = "", with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.nodeValue = "", with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.nodeValue = "foo", with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.nodeValue += "", with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.nodeValue += "foo", with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.nodeValue += "foo", 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 = "", with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.data = "", with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.data = "foo", with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.data = "foo", 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 += "", with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.data += "", with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.data += "foo", with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.data += "foo", 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 = "", with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.textContent = "", with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.textContent = "foo", with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.textContent = "foo", 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 += "", with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.textContent += "", with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.textContent += "foo", with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.textContent += "foo", 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 = "", with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.nodeValue = "", with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.nodeValue = "foo", with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.nodeValue = "foo", 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 += "", with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.nodeValue += "", with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.nodeValue += "foo", with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.data = "", with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.data = "foo", with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.data = "foo", 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 += "", with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.data += "", with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.data += "foo", with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.data += "foo", 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 = "", with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.textContent = "", with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.textContent = "foo", with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.textContent = "foo", 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 += "", with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.textContent += "", with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.textContent += "foo", with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.textContent += "foo", 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 = "", with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.nodeValue = "", with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.nodeValue = "foo", with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.nodeValue += "", with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.nodeValue += "foo", with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.nodeValue += "foo", 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 = "", with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.data = "", with selected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.data = "foo", with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.data = "foo", 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 += "", with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.data += "", with selected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.data += "foo", with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.data += "foo", 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 = "", with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.textContent = "", with selected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.textContent = "foo", with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.textContent = "foo", 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 += "", with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.textContent += "", with selected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.textContent += "foo", with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.textContent += "foo", 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 = "", with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.nodeValue = "", with selected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.nodeValue = "foo", with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.nodeValue = "foo", 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 += "", with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.nodeValue += "", with selected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.nodeValue += "foo", with unselected range on detachedForeignComment from 0 to detachedForeignComment.length
+PASS detachedForeignComment.nodeValue += "foo", 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 = "", with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.data = "", with selected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.data = "foo", with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.data = "foo", 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 += "", with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.data += "", with selected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.data += "foo", with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.data += "foo", 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 = "", with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.textContent = "", with selected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.textContent = "foo", with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.textContent = "foo", 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 += "", with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.textContent += "", with selected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.textContent += "foo", with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.textContent += "foo", 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 = "", with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.nodeValue = "", with selected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.nodeValue = "foo", with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.nodeValue = "foo", 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 += "", with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.nodeValue += "", with selected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.nodeValue += "foo", with unselected range on detachedForeignComment from 1 to detachedForeignComment.length
+PASS detachedForeignComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.data = "", with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.data = "foo", with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.data = "foo", 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 += "", with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.data += "", with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.data += "foo", with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.data += "foo", 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 = "", with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.textContent = "", with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.textContent = "foo", with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.textContent = "foo", 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 += "", with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.textContent += "", with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.textContent += "foo", with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.textContent += "foo", 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 = "", with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.nodeValue = "", with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.nodeValue = "foo", with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.nodeValue += "", with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.nodeValue += "foo", with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.data = "", with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.data = "foo", with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.data = "foo", 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 += "", with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.data += "", with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.data += "foo", with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.data += "foo", 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 = "", with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.textContent = "", with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.textContent = "foo", with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.textContent = "foo", 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 += "", with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.textContent += "", with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.textContent += "foo", with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.textContent += "foo", 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 = "", with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.nodeValue = "", with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.nodeValue = "foo", with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.nodeValue += "", with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.nodeValue += "foo", with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.nodeValue += "foo", 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 = "", with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.data = "", with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.data = "foo", with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.data = "foo", 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 += "", with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.data += "", with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.data += "foo", with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.data += "foo", 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 = "", with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.textContent = "", with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.textContent = "foo", with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.textContent = "foo", 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 += "", with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.textContent += "", with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.textContent += "foo", with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.textContent += "foo", 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 = "", with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.nodeValue = "", with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.nodeValue = "foo", with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.nodeValue = "foo", 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 += "", with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.nodeValue += "", with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.nodeValue += "foo", with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.data = "", with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.data = "foo", with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.data = "foo", 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 += "", with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.data += "", with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.data += "foo", with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.data += "foo", 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 = "", with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.textContent = "", with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.textContent = "foo", with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.textContent = "foo", 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 += "", with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.textContent += "", with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.textContent += "foo", with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.textContent += "foo", 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 = "", with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.nodeValue = "", with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.nodeValue = "foo", with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.nodeValue += "", with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.nodeValue += "foo", with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.nodeValue += "foo", 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 = "", with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.data = "", with selected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.data = "foo", with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.data = "foo", 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 += "", with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.data += "", with selected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.data += "foo", with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.data += "foo", 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 = "", with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.textContent = "", with selected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.textContent = "foo", with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.textContent = "foo", 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 += "", with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.textContent += "", with selected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.textContent += "foo", with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.textContent += "foo", 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 = "", with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.nodeValue = "", with selected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.nodeValue = "foo", with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.nodeValue = "foo", 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 += "", with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.nodeValue += "", with selected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.nodeValue += "foo", with unselected range on detachedXmlComment from 0 to detachedXmlComment.length
+PASS detachedXmlComment.nodeValue += "foo", 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 = "", with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.data = "", with selected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.data = "foo", with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.data = "foo", 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 += "", with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.data += "", with selected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.data += "foo", with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.data += "foo", 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 = "", with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.textContent = "", with selected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.textContent = "foo", with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.textContent = "foo", 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 += "", with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.textContent += "", with selected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.textContent += "foo", with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.textContent += "foo", 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 = "", with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.nodeValue = "", with selected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.nodeValue = "foo", with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.nodeValue = "foo", 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 += "", with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.nodeValue += "", with selected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.nodeValue += "foo", with unselected range on detachedXmlComment from 1 to detachedXmlComment.length
+PASS detachedXmlComment.nodeValue += "foo", 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 = "", with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.data = "", with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.data = "foo", with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.data = "foo", 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 += "", with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.data += "", with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.data += "foo", with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.data += "foo", 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 = "", with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.textContent = "", with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.textContent = "foo", with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.textContent = "foo", 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 += "", with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.textContent += "", with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.textContent += "foo", with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.textContent += "foo", 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 = "", with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.nodeValue = "", with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.nodeValue = "foo", with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.nodeValue = "foo", 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 += "", with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.nodeValue += "", with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.nodeValue += "foo", with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.nodeValue += "foo", 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>+<!doctype html>
+<title>Range mutation tests - update data by IDL attributes</title>
+<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
+<meta name=timeout content=long>
+
+<div id=log></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../common.js"></script>
+<script src="Range-mutations.js"></script>
+<script>
+doTests(dataChangeTests, function(params) { return params[0] + "." + eval(params[1]) + " " + eval(params[2]) + ' ' + params[3] }, testDataChange);
+testDiv.style.display = "none";
+</script>
</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>+<!doctype html>
+<title>Range mutation tests - deleteData</title>
+<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
+<meta name=timeout content=long>
+
+<div id=log></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../common.js"></script>
+<script src="Range-mutations.js"></script>
+<script>
+doTests(deleteDataTests, function(params) { return params[0] + ".deleteData(" + params[1] + ", " + params[2] + ")" }, testDeleteData);
+testDiv.style.display = "none";
+</script>
</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>+<!doctype html>
+<title>Range mutation tests - insertBefore</title>
+<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
+<meta name=timeout content=long>
+
+<div id=log></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../common.js"></script>
+<script src="Range-mutations.js"></script>
+<script>
+doTests(insertBeforeTests, function(params) { return params[0] + ".insertBefore(" + params[1] + ", " + params[2] + ")" }, testInsertBefore);
+testDiv.style.display = "none";
+</script>
</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, "foo"), with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.insertData(376, "foo"), with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.insertData(0, "foo"), with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.insertData(0, "foo"), with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.insertData(1, "foo"), with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.insertData(1, "foo"), with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.insertData(paras[0].firstChild.length, "foo"), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.insertData(paras[0].firstChild.length, "foo"), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.insertData(1, "foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.insertData(1, "foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.insertData(2, "foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.insertData(2, "foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.insertData(3, "foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.insertData(3, "foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.insertData(376, ""), with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.insertData(376, ""), with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.insertData(0, ""), with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.insertData(0, ""), with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.insertData(1, ""), with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.insertData(1, ""), with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.insertData(paras[0].firstChild.length, ""), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.insertData(paras[0].firstChild.length, ""), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.insertData(1, ""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.insertData(1, ""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.insertData(2, ""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.insertData(2, ""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.insertData(3, ""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.insertData(3, ""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[1].firstChild.insertData(376, "foo"), with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.insertData(376, "foo"), with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.insertData(0, "foo"), with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.insertData(0, "foo"), with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.insertData(1, "foo"), with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.insertData(1, "foo"), with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.insertData(paras[1].firstChild.length, "foo"), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.insertData(paras[1].firstChild.length, "foo"), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.insertData(1, "foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.insertData(1, "foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.insertData(2, "foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.insertData(2, "foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.insertData(3, "foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.insertData(3, "foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.insertData(376, ""), with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.insertData(376, ""), with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.insertData(0, ""), with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.insertData(0, ""), with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.insertData(1, ""), with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.insertData(1, ""), with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.insertData(paras[1].firstChild.length, ""), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.insertData(paras[1].firstChild.length, ""), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.insertData(1, ""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.insertData(1, ""), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.insertData(2, ""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.insertData(2, ""), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.insertData(3, ""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.insertData(3, ""), with selected range on paras[1].firstChild from 1 to 3
+PASS foreignTextNode.insertData(376, "foo"), with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.insertData(376, "foo"), with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.insertData(0, "foo"), with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.insertData(0, "foo"), with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.insertData(1, "foo"), with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.insertData(1, "foo"), with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.insertData(foreignTextNode.length, "foo"), with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.insertData(foreignTextNode.length, "foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.insertData(1, "foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.insertData(1, "foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.insertData(2, "foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.insertData(2, "foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.insertData(3, "foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.insertData(3, "foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.insertData(376, ""), with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.insertData(376, ""), with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.insertData(0, ""), with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.insertData(0, ""), with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.insertData(1, ""), with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.insertData(1, ""), with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.insertData(foreignTextNode.length, ""), with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.insertData(foreignTextNode.length, ""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.insertData(1, ""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.insertData(1, ""), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.insertData(2, ""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.insertData(2, ""), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.insertData(3, ""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.insertData(3, ""), with selected range on foreignTextNode from 1 to 3
+PASS xmlTextNode.insertData(376, "foo"), with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.insertData(376, "foo"), with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.insertData(0, "foo"), with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.insertData(0, "foo"), with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.insertData(1, "foo"), with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.insertData(1, "foo"), with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.insertData(xmlTextNode.length, "foo"), with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.insertData(xmlTextNode.length, "foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.insertData(1, "foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.insertData(1, "foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.insertData(2, "foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.insertData(2, "foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.insertData(3, "foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.insertData(3, "foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.insertData(376, ""), with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.insertData(376, ""), with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.insertData(0, ""), with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.insertData(0, ""), with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.insertData(1, ""), with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.insertData(1, ""), with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.insertData(xmlTextNode.length, ""), with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.insertData(xmlTextNode.length, ""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.insertData(1, ""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.insertData(1, ""), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.insertData(2, ""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.insertData(2, ""), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.insertData(3, ""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.insertData(3, ""), with selected range on xmlTextNode from 1 to 3
+PASS detachedTextNode.insertData(376, "foo"), with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.insertData(376, "foo"), with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.insertData(0, "foo"), with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.insertData(0, "foo"), with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.insertData(1, "foo"), with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.insertData(1, "foo"), with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.insertData(detachedTextNode.length, "foo"), with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.insertData(detachedTextNode.length, "foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.insertData(1, "foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.insertData(1, "foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.insertData(2, "foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.insertData(2, "foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.insertData(3, "foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.insertData(3, "foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.insertData(376, ""), with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.insertData(376, ""), with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.insertData(0, ""), with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.insertData(0, ""), with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.insertData(1, ""), with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.insertData(1, ""), with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.insertData(detachedTextNode.length, ""), with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.insertData(detachedTextNode.length, ""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.insertData(1, ""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.insertData(1, ""), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.insertData(2, ""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.insertData(2, ""), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.insertData(3, ""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.insertData(3, ""), with selected range on detachedTextNode from 1 to 3
+PASS detachedForeignTextNode.insertData(376, "foo"), with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.insertData(376, "foo"), with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.insertData(0, "foo"), with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.insertData(0, "foo"), with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.insertData(1, "foo"), with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.insertData(1, "foo"), with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.insertData(detachedForeignTextNode.length, "foo"), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.insertData(detachedForeignTextNode.length, "foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.insertData(1, "foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.insertData(1, "foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.insertData(2, "foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.insertData(2, "foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.insertData(3, "foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.insertData(3, "foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.insertData(376, ""), with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.insertData(376, ""), with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.insertData(0, ""), with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.insertData(0, ""), with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.insertData(1, ""), with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.insertData(1, ""), with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.insertData(detachedForeignTextNode.length, ""), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.insertData(detachedForeignTextNode.length, ""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.insertData(1, ""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.insertData(1, ""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.insertData(2, ""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.insertData(2, ""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.insertData(3, ""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.insertData(3, ""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedXmlTextNode.insertData(376, "foo"), with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.insertData(376, "foo"), with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.insertData(0, "foo"), with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.insertData(0, "foo"), with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.insertData(1, "foo"), with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.insertData(1, "foo"), with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.insertData(detachedXmlTextNode.length, "foo"), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.insertData(detachedXmlTextNode.length, "foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.insertData(1, "foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.insertData(1, "foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.insertData(2, "foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.insertData(2, "foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.insertData(3, "foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.insertData(3, "foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.insertData(376, ""), with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.insertData(376, ""), with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.insertData(0, ""), with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.insertData(0, ""), with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.insertData(1, ""), with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.insertData(1, ""), with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.insertData(detachedXmlTextNode.length, ""), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.insertData(detachedXmlTextNode.length, ""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.insertData(1, ""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.insertData(1, ""), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.insertData(2, ""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.insertData(2, ""), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.insertData(3, ""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.insertData(3, ""), with selected range on detachedXmlTextNode from 1 to 3
+PASS comment.insertData(376, "foo"), with unselected range on comment from 0 to 1
+PASS comment.insertData(376, "foo"), with selected range on comment from 0 to 1
+PASS comment.insertData(0, "foo"), with unselected range collapsed at (comment, 0)
+PASS comment.insertData(0, "foo"), with selected range collapsed at (comment, 0)
+PASS comment.insertData(1, "foo"), with unselected range collapsed at (comment, 1)
+PASS comment.insertData(1, "foo"), with selected range collapsed at (comment, 1)
+PASS comment.insertData(comment.length, "foo"), with unselected range collapsed at (comment, comment.length)
+PASS comment.insertData(comment.length, "foo"), with selected range collapsed at (comment, comment.length)
+PASS comment.insertData(1, "foo"), with unselected range on comment from 1 to 3
+PASS comment.insertData(1, "foo"), with selected range on comment from 1 to 3
+PASS comment.insertData(2, "foo"), with unselected range on comment from 1 to 3
+PASS comment.insertData(2, "foo"), with selected range on comment from 1 to 3
+PASS comment.insertData(3, "foo"), with unselected range on comment from 1 to 3
+PASS comment.insertData(3, "foo"), with selected range on comment from 1 to 3
+PASS comment.insertData(376, ""), with unselected range on comment from 0 to 1
+PASS comment.insertData(376, ""), with selected range on comment from 0 to 1
+PASS comment.insertData(0, ""), with unselected range collapsed at (comment, 0)
+PASS comment.insertData(0, ""), with selected range collapsed at (comment, 0)
+PASS comment.insertData(1, ""), with unselected range collapsed at (comment, 1)
+PASS comment.insertData(1, ""), with selected range collapsed at (comment, 1)
+PASS comment.insertData(comment.length, ""), with unselected range collapsed at (comment, comment.length)
+PASS comment.insertData(comment.length, ""), with selected range collapsed at (comment, comment.length)
+PASS comment.insertData(1, ""), with unselected range on comment from 1 to 3
+PASS comment.insertData(1, ""), with selected range on comment from 1 to 3
+PASS comment.insertData(2, ""), with unselected range on comment from 1 to 3
+PASS comment.insertData(2, ""), with selected range on comment from 1 to 3
+PASS comment.insertData(3, ""), with unselected range on comment from 1 to 3
+PASS comment.insertData(3, ""), with selected range on comment from 1 to 3
+PASS foreignComment.insertData(376, "foo"), with unselected range on foreignComment from 0 to 1
+PASS foreignComment.insertData(376, "foo"), with selected range on foreignComment from 0 to 1
+PASS foreignComment.insertData(0, "foo"), with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.insertData(0, "foo"), with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.insertData(1, "foo"), with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.insertData(1, "foo"), with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.insertData(foreignComment.length, "foo"), with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.insertData(foreignComment.length, "foo"), with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.insertData(1, "foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.insertData(1, "foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.insertData(2, "foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.insertData(2, "foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.insertData(3, "foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.insertData(3, "foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.insertData(376, ""), with unselected range on foreignComment from 0 to 1
+PASS foreignComment.insertData(376, ""), with selected range on foreignComment from 0 to 1
+PASS foreignComment.insertData(0, ""), with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.insertData(0, ""), with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.insertData(1, ""), with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.insertData(1, ""), with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.insertData(foreignComment.length, ""), with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.insertData(foreignComment.length, ""), with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.insertData(1, ""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.insertData(1, ""), with selected range on foreignComment from 1 to 3
+PASS foreignComment.insertData(2, ""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.insertData(2, ""), with selected range on foreignComment from 1 to 3
+PASS foreignComment.insertData(3, ""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.insertData(3, ""), with selected range on foreignComment from 1 to 3
+PASS xmlComment.insertData(376, "foo"), with unselected range on xmlComment from 0 to 1
+PASS xmlComment.insertData(376, "foo"), with selected range on xmlComment from 0 to 1
+PASS xmlComment.insertData(0, "foo"), with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.insertData(0, "foo"), with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.insertData(1, "foo"), with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.insertData(1, "foo"), with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.insertData(xmlComment.length, "foo"), with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.insertData(xmlComment.length, "foo"), with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.insertData(1, "foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.insertData(1, "foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.insertData(2, "foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.insertData(2, "foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.insertData(3, "foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.insertData(3, "foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.insertData(376, ""), with unselected range on xmlComment from 0 to 1
+PASS xmlComment.insertData(376, ""), with selected range on xmlComment from 0 to 1
+PASS xmlComment.insertData(0, ""), with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.insertData(0, ""), with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.insertData(1, ""), with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.insertData(1, ""), with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.insertData(xmlComment.length, ""), with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.insertData(xmlComment.length, ""), with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.insertData(1, ""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.insertData(1, ""), with selected range on xmlComment from 1 to 3
+PASS xmlComment.insertData(2, ""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.insertData(2, ""), with selected range on xmlComment from 1 to 3
+PASS xmlComment.insertData(3, ""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.insertData(3, ""), with selected range on xmlComment from 1 to 3
+PASS detachedComment.insertData(376, "foo"), with unselected range on detachedComment from 0 to 1
+PASS detachedComment.insertData(376, "foo"), with selected range on detachedComment from 0 to 1
+PASS detachedComment.insertData(0, "foo"), with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.insertData(0, "foo"), with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.insertData(1, "foo"), with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.insertData(1, "foo"), with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.insertData(detachedComment.length, "foo"), with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.insertData(detachedComment.length, "foo"), with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.insertData(1, "foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.insertData(1, "foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.insertData(2, "foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.insertData(2, "foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.insertData(3, "foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.insertData(3, "foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.insertData(376, ""), with unselected range on detachedComment from 0 to 1
+PASS detachedComment.insertData(376, ""), with selected range on detachedComment from 0 to 1
+PASS detachedComment.insertData(0, ""), with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.insertData(0, ""), with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.insertData(1, ""), with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.insertData(1, ""), with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.insertData(detachedComment.length, ""), with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.insertData(detachedComment.length, ""), with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.insertData(1, ""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.insertData(1, ""), with selected range on detachedComment from 1 to 3
+PASS detachedComment.insertData(2, ""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.insertData(2, ""), with selected range on detachedComment from 1 to 3
+PASS detachedComment.insertData(3, ""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.insertData(3, ""), with selected range on detachedComment from 1 to 3
+PASS detachedForeignComment.insertData(376, "foo"), with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.insertData(376, "foo"), with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.insertData(0, "foo"), with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.insertData(0, "foo"), with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.insertData(1, "foo"), with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.insertData(1, "foo"), with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.insertData(detachedForeignComment.length, "foo"), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.insertData(detachedForeignComment.length, "foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.insertData(1, "foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.insertData(1, "foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.insertData(2, "foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.insertData(2, "foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.insertData(3, "foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.insertData(3, "foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.insertData(376, ""), with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.insertData(376, ""), with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.insertData(0, ""), with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.insertData(0, ""), with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.insertData(1, ""), with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.insertData(1, ""), with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.insertData(detachedForeignComment.length, ""), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.insertData(detachedForeignComment.length, ""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.insertData(1, ""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.insertData(1, ""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.insertData(2, ""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.insertData(2, ""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.insertData(3, ""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.insertData(3, ""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedXmlComment.insertData(376, "foo"), with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.insertData(376, "foo"), with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.insertData(0, "foo"), with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.insertData(0, "foo"), with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.insertData(1, "foo"), with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.insertData(1, "foo"), with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.insertData(detachedXmlComment.length, "foo"), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.insertData(detachedXmlComment.length, "foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.insertData(1, "foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.insertData(1, "foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.insertData(2, "foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.insertData(2, "foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.insertData(3, "foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.insertData(3, "foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.insertData(376, ""), with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.insertData(376, ""), with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.insertData(0, ""), with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.insertData(0, ""), with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.insertData(1, ""), with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.insertData(1, ""), with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.insertData(detachedXmlComment.length, ""), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.insertData(detachedXmlComment.length, ""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.insertData(1, ""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.insertData(1, ""), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.insertData(2, ""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.insertData(2, ""), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.insertData(3, ""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.insertData(3, ""), with selected range on detachedXmlComment from 1 to 3
+PASS paras[0].firstChild.insertData(1, "foo"), with unselected range collapsed at (paras[0], 0)
+PASS paras[0].firstChild.insertData(1, "foo"), with selected range collapsed at (paras[0], 0)
+PASS paras[0].firstChild.insertData(1, "foo"), with unselected range on paras[0] from 0 to 1
+PASS paras[0].firstChild.insertData(1, "foo"), with selected range on paras[0] from 0 to 1
+PASS paras[0].firstChild.insertData(1, "foo"), with unselected range collapsed at (paras[0], 1)
+PASS paras[0].firstChild.insertData(1, "foo"), with selected range collapsed at (paras[0], 1)
+PASS paras[0].firstChild.insertData(1, "foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.insertData(1, "foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.insertData(2, "foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.insertData(2, "foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.insertData(3, "foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.insertData(3, "foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.insertData(1, "foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.insertData(1, "foo"), with selected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.insertData(2, "foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.insertData(2, "foo"), with selected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.insertData(3, "foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.insertData(3, "foo"), 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>+<!doctype html>
+<title>Range mutation tests - insertData</title>
+<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
+<meta name=timeout content=long>
+
+<div id=log></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../common.js"></script>
+<script src="Range-mutations.js"></script>
+<script>
+doTests(insertDataTests, function(params) { return params[0] + ".insertData(" + params[1] + ", " + params[2] + ")" }, testInsertData);
+testDiv.style.display = "none";
+</script>
</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>+<!doctype html>
+<title>Range mutation tests - removeChild</title>
+<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
+<meta name=timeout content=long>
+
+<div id=log></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../common.js"></script>
+<script src="Range-mutations.js"></script>
+<script>
+doTests(removeChildTests, function(params) { return params[0] + ".parentNode.removeChild(" + params[0] + ")" }, testRemoveChild);
+testDiv.style.display = "none";
+</script>
</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>+<!doctype html>
+<title>Range mutation tests - replaceChild</title>
+<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
+<meta name=timeout content=long>
+
+<div id=log></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../common.js"></script>
+<script src="Range-mutations.js"></script>
+<script>
+doTests(replaceChildTests, function(params) { return params[0] + ".replaceChild(" + params[1] + ", " + params[2] + ")" }, testReplaceChild);
+testDiv.style.display = "none";
+</script>
</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, "foo"), with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.replaceData(376, 0, "foo"), with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.replaceData(0, 0, "foo"), with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.replaceData(0, 0, "foo"), with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, "foo"), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, "foo"), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(2, 0, "foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(2, 0, "foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(3, 0, "foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(3, 0, "foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(376, 0, ""), with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.replaceData(376, 0, ""), with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.replaceData(0, 0, ""), with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.replaceData(0, 0, ""), with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.replaceData(1, 0, ""), with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.replaceData(1, 0, ""), with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, ""), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, ""), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.replaceData(1, 0, ""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(1, 0, ""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(2, 0, ""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(2, 0, ""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(3, 0, ""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(3, 0, ""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(376, 1, "foo"), with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.replaceData(376, 1, "foo"), with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.replaceData(0, 1, "foo"), with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.replaceData(0, 1, "foo"), with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, "foo"), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, "foo"), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(2, 1, "foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(2, 1, "foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(3, 1, "foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(3, 1, "foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(376, 1, ""), with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.replaceData(376, 1, ""), with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.replaceData(0, 1, ""), with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.replaceData(0, 1, ""), with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.replaceData(1, 1, ""), with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.replaceData(1, 1, ""), with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, ""), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, ""), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.replaceData(1, 1, ""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(1, 1, ""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(2, 1, ""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(2, 1, ""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(3, 1, ""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(3, 1, ""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(376, 47, "foo"), with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.replaceData(376, 47, "foo"), with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.replaceData(0, 47, "foo"), with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.replaceData(0, 47, "foo"), with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, "foo"), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, "foo"), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(2, 47, "foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(2, 47, "foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(3, 47, "foo"), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(3, 47, "foo"), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(376, 47, ""), with unselected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.replaceData(376, 47, ""), with selected range on paras[0].firstChild from 0 to 1
+PASS paras[0].firstChild.replaceData(0, 47, ""), with unselected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.replaceData(0, 47, ""), with selected range collapsed at (paras[0].firstChild, 0)
+PASS paras[0].firstChild.replaceData(1, 47, ""), with unselected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.replaceData(1, 47, ""), with selected range collapsed at (paras[0].firstChild, 1)
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, ""), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, ""), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length)
+PASS paras[0].firstChild.replaceData(1, 47, ""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(1, 47, ""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(2, 47, ""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(2, 47, ""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(3, 47, ""), with unselected range on paras[0].firstChild from 1 to 3
+PASS paras[0].firstChild.replaceData(3, 47, ""), with selected range on paras[0].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(376, 0, "foo"), with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.replaceData(376, 0, "foo"), with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.replaceData(0, 0, "foo"), with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.replaceData(0, 0, "foo"), with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.replaceData(1, 0, "foo"), with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.replaceData(1, 0, "foo"), with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, "foo"), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, "foo"), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.replaceData(1, 0, "foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(1, 0, "foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(2, 0, "foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(2, 0, "foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(3, 0, "foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(3, 0, "foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(376, 0, ""), with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.replaceData(376, 0, ""), with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.replaceData(0, 0, ""), with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.replaceData(0, 0, ""), with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.replaceData(1, 0, ""), with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.replaceData(1, 0, ""), with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, ""), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, ""), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.replaceData(1, 0, ""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(1, 0, ""), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(2, 0, ""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(2, 0, ""), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(3, 0, ""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(3, 0, ""), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(376, 1, "foo"), with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.replaceData(376, 1, "foo"), with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.replaceData(0, 1, "foo"), with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.replaceData(0, 1, "foo"), with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.replaceData(1, 1, "foo"), with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.replaceData(1, 1, "foo"), with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, "foo"), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, "foo"), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.replaceData(1, 1, "foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(1, 1, "foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(2, 1, "foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(2, 1, "foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(3, 1, "foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(3, 1, "foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(376, 1, ""), with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.replaceData(376, 1, ""), with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.replaceData(0, 1, ""), with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.replaceData(0, 1, ""), with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.replaceData(1, 1, ""), with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.replaceData(1, 1, ""), with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, ""), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, ""), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.replaceData(1, 1, ""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(1, 1, ""), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(2, 1, ""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(2, 1, ""), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(3, 1, ""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(3, 1, ""), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(376, 47, "foo"), with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.replaceData(376, 47, "foo"), with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.replaceData(0, 47, "foo"), with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.replaceData(0, 47, "foo"), with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.replaceData(1, 47, "foo"), with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.replaceData(1, 47, "foo"), with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, "foo"), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, "foo"), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.replaceData(1, 47, "foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(1, 47, "foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(2, 47, "foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(2, 47, "foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(3, 47, "foo"), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(3, 47, "foo"), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(376, 47, ""), with unselected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.replaceData(376, 47, ""), with selected range on paras[1].firstChild from 0 to 1
+PASS paras[1].firstChild.replaceData(0, 47, ""), with unselected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.replaceData(0, 47, ""), with selected range collapsed at (paras[1].firstChild, 0)
+PASS paras[1].firstChild.replaceData(1, 47, ""), with unselected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.replaceData(1, 47, ""), with selected range collapsed at (paras[1].firstChild, 1)
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, ""), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, ""), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length)
+PASS paras[1].firstChild.replaceData(1, 47, ""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(1, 47, ""), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(2, 47, ""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(2, 47, ""), with selected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(3, 47, ""), with unselected range on paras[1].firstChild from 1 to 3
+PASS paras[1].firstChild.replaceData(3, 47, ""), with selected range on paras[1].firstChild from 1 to 3
+PASS foreignTextNode.replaceData(376, 0, "foo"), with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.replaceData(376, 0, "foo"), with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.replaceData(0, 0, "foo"), with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.replaceData(1, 0, "foo"), with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.replaceData(foreignTextNode.length, 0, "foo"), with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.replaceData(foreignTextNode.length, 0, "foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.replaceData(1, 0, "foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(1, 0, "foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(2, 0, "foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(2, 0, "foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(3, 0, "foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(3, 0, "foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(376, 0, ""), with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.replaceData(376, 0, ""), with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.replaceData(0, 0, ""), with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.replaceData(0, 0, ""), with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.replaceData(1, 0, ""), with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.replaceData(1, 0, ""), with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.replaceData(foreignTextNode.length, 0, ""), with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.replaceData(foreignTextNode.length, 0, ""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.replaceData(1, 0, ""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(1, 0, ""), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(2, 0, ""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(2, 0, ""), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(3, 0, ""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(3, 0, ""), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(376, 1, "foo"), with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.replaceData(376, 1, "foo"), with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.replaceData(0, 1, "foo"), with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.replaceData(1, 1, "foo"), with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.replaceData(foreignTextNode.length, 1, "foo"), with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.replaceData(foreignTextNode.length, 1, "foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.replaceData(1, 1, "foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(1, 1, "foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(2, 1, "foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(2, 1, "foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(3, 1, "foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(3, 1, "foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(376, 1, ""), with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.replaceData(376, 1, ""), with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.replaceData(0, 1, ""), with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.replaceData(0, 1, ""), with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.replaceData(1, 1, ""), with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.replaceData(1, 1, ""), with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.replaceData(foreignTextNode.length, 1, ""), with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.replaceData(foreignTextNode.length, 1, ""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.replaceData(1, 1, ""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(1, 1, ""), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(2, 1, ""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(2, 1, ""), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(3, 1, ""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(3, 1, ""), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(376, 47, "foo"), with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.replaceData(376, 47, "foo"), with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.replaceData(0, 47, "foo"), with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.replaceData(1, 47, "foo"), with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.replaceData(foreignTextNode.length, 47, "foo"), with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.replaceData(foreignTextNode.length, 47, "foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.replaceData(1, 47, "foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(1, 47, "foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(2, 47, "foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(2, 47, "foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(3, 47, "foo"), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(3, 47, "foo"), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(376, 47, ""), with unselected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.replaceData(376, 47, ""), with selected range on foreignTextNode from 0 to 1
+PASS foreignTextNode.replaceData(0, 47, ""), with unselected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.replaceData(0, 47, ""), with selected range collapsed at (foreignTextNode, 0)
+PASS foreignTextNode.replaceData(1, 47, ""), with unselected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.replaceData(1, 47, ""), with selected range collapsed at (foreignTextNode, 1)
+PASS foreignTextNode.replaceData(foreignTextNode.length, 47, ""), with unselected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.replaceData(foreignTextNode.length, 47, ""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)
+PASS foreignTextNode.replaceData(1, 47, ""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(1, 47, ""), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(2, 47, ""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(2, 47, ""), with selected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(3, 47, ""), with unselected range on foreignTextNode from 1 to 3
+PASS foreignTextNode.replaceData(3, 47, ""), with selected range on foreignTextNode from 1 to 3
+PASS xmlTextNode.replaceData(376, 0, "foo"), with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.replaceData(376, 0, "foo"), with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.replaceData(0, 0, "foo"), with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.replaceData(1, 0, "foo"), with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.replaceData(xmlTextNode.length, 0, "foo"), with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.replaceData(xmlTextNode.length, 0, "foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.replaceData(1, 0, "foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(1, 0, "foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(2, 0, "foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(2, 0, "foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(3, 0, "foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(3, 0, "foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(376, 0, ""), with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.replaceData(376, 0, ""), with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.replaceData(0, 0, ""), with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.replaceData(0, 0, ""), with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.replaceData(1, 0, ""), with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.replaceData(1, 0, ""), with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.replaceData(xmlTextNode.length, 0, ""), with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.replaceData(xmlTextNode.length, 0, ""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.replaceData(1, 0, ""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(1, 0, ""), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(2, 0, ""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(2, 0, ""), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(3, 0, ""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(3, 0, ""), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(376, 1, "foo"), with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.replaceData(376, 1, "foo"), with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.replaceData(0, 1, "foo"), with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.replaceData(1, 1, "foo"), with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.replaceData(xmlTextNode.length, 1, "foo"), with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.replaceData(xmlTextNode.length, 1, "foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.replaceData(1, 1, "foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(1, 1, "foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(2, 1, "foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(2, 1, "foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(3, 1, "foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(3, 1, "foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(376, 1, ""), with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.replaceData(376, 1, ""), with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.replaceData(0, 1, ""), with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.replaceData(0, 1, ""), with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.replaceData(1, 1, ""), with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.replaceData(1, 1, ""), with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.replaceData(xmlTextNode.length, 1, ""), with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.replaceData(xmlTextNode.length, 1, ""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.replaceData(1, 1, ""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(1, 1, ""), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(2, 1, ""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(2, 1, ""), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(3, 1, ""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(3, 1, ""), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(376, 47, "foo"), with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.replaceData(376, 47, "foo"), with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.replaceData(0, 47, "foo"), with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.replaceData(1, 47, "foo"), with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.replaceData(xmlTextNode.length, 47, "foo"), with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.replaceData(xmlTextNode.length, 47, "foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.replaceData(1, 47, "foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(1, 47, "foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(2, 47, "foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(2, 47, "foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(3, 47, "foo"), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(3, 47, "foo"), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(376, 47, ""), with unselected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.replaceData(376, 47, ""), with selected range on xmlTextNode from 0 to 1
+PASS xmlTextNode.replaceData(0, 47, ""), with unselected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.replaceData(0, 47, ""), with selected range collapsed at (xmlTextNode, 0)
+PASS xmlTextNode.replaceData(1, 47, ""), with unselected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.replaceData(1, 47, ""), with selected range collapsed at (xmlTextNode, 1)
+PASS xmlTextNode.replaceData(xmlTextNode.length, 47, ""), with unselected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.replaceData(xmlTextNode.length, 47, ""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)
+PASS xmlTextNode.replaceData(1, 47, ""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(1, 47, ""), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(2, 47, ""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(2, 47, ""), with selected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(3, 47, ""), with unselected range on xmlTextNode from 1 to 3
+PASS xmlTextNode.replaceData(3, 47, ""), with selected range on xmlTextNode from 1 to 3
+PASS detachedTextNode.replaceData(376, 0, "foo"), with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.replaceData(376, 0, "foo"), with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.replaceData(0, 0, "foo"), with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.replaceData(1, 0, "foo"), with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.replaceData(detachedTextNode.length, 0, "foo"), with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.replaceData(detachedTextNode.length, 0, "foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.replaceData(1, 0, "foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(1, 0, "foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(2, 0, "foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(2, 0, "foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(3, 0, "foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(3, 0, "foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(376, 0, ""), with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.replaceData(376, 0, ""), with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.replaceData(0, 0, ""), with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.replaceData(0, 0, ""), with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.replaceData(1, 0, ""), with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.replaceData(1, 0, ""), with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.replaceData(detachedTextNode.length, 0, ""), with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.replaceData(detachedTextNode.length, 0, ""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.replaceData(1, 0, ""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(1, 0, ""), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(2, 0, ""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(2, 0, ""), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(3, 0, ""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(3, 0, ""), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(376, 1, "foo"), with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.replaceData(376, 1, "foo"), with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.replaceData(0, 1, "foo"), with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.replaceData(1, 1, "foo"), with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.replaceData(detachedTextNode.length, 1, "foo"), with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.replaceData(detachedTextNode.length, 1, "foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.replaceData(1, 1, "foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(1, 1, "foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(2, 1, "foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(2, 1, "foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(3, 1, "foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(3, 1, "foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(376, 1, ""), with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.replaceData(376, 1, ""), with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.replaceData(0, 1, ""), with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.replaceData(0, 1, ""), with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.replaceData(1, 1, ""), with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.replaceData(1, 1, ""), with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.replaceData(detachedTextNode.length, 1, ""), with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.replaceData(detachedTextNode.length, 1, ""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.replaceData(1, 1, ""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(1, 1, ""), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(2, 1, ""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(2, 1, ""), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(3, 1, ""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(3, 1, ""), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(376, 47, "foo"), with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.replaceData(376, 47, "foo"), with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.replaceData(0, 47, "foo"), with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.replaceData(1, 47, "foo"), with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.replaceData(detachedTextNode.length, 47, "foo"), with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.replaceData(detachedTextNode.length, 47, "foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.replaceData(1, 47, "foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(1, 47, "foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(2, 47, "foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(2, 47, "foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(3, 47, "foo"), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(3, 47, "foo"), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(376, 47, ""), with unselected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.replaceData(376, 47, ""), with selected range on detachedTextNode from 0 to 1
+PASS detachedTextNode.replaceData(0, 47, ""), with unselected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.replaceData(0, 47, ""), with selected range collapsed at (detachedTextNode, 0)
+PASS detachedTextNode.replaceData(1, 47, ""), with unselected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.replaceData(1, 47, ""), with selected range collapsed at (detachedTextNode, 1)
+PASS detachedTextNode.replaceData(detachedTextNode.length, 47, ""), with unselected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.replaceData(detachedTextNode.length, 47, ""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)
+PASS detachedTextNode.replaceData(1, 47, ""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(1, 47, ""), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(2, 47, ""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(2, 47, ""), with selected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(3, 47, ""), with unselected range on detachedTextNode from 1 to 3
+PASS detachedTextNode.replaceData(3, 47, ""), with selected range on detachedTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(376, 0, "foo"), with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.replaceData(376, 0, "foo"), with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.replaceData(0, 0, "foo"), with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.replaceData(1, 0, "foo"), with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, "foo"), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, "foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.replaceData(1, 0, "foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(1, 0, "foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(2, 0, "foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(2, 0, "foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(3, 0, "foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(3, 0, "foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(376, 0, ""), with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.replaceData(376, 0, ""), with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.replaceData(0, 0, ""), with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.replaceData(0, 0, ""), with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.replaceData(1, 0, ""), with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.replaceData(1, 0, ""), with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, ""), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, ""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.replaceData(1, 0, ""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(1, 0, ""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(2, 0, ""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(2, 0, ""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(3, 0, ""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(3, 0, ""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(376, 1, "foo"), with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.replaceData(376, 1, "foo"), with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.replaceData(0, 1, "foo"), with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.replaceData(1, 1, "foo"), with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, "foo"), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, "foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.replaceData(1, 1, "foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(1, 1, "foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(2, 1, "foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(2, 1, "foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(3, 1, "foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(3, 1, "foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(376, 1, ""), with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.replaceData(376, 1, ""), with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.replaceData(0, 1, ""), with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.replaceData(0, 1, ""), with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.replaceData(1, 1, ""), with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.replaceData(1, 1, ""), with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, ""), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, ""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.replaceData(1, 1, ""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(1, 1, ""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(2, 1, ""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(2, 1, ""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(3, 1, ""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(3, 1, ""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(376, 47, "foo"), with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.replaceData(376, 47, "foo"), with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.replaceData(0, 47, "foo"), with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.replaceData(1, 47, "foo"), with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, "foo"), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, "foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.replaceData(1, 47, "foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(1, 47, "foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(2, 47, "foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(2, 47, "foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(3, 47, "foo"), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(3, 47, "foo"), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(376, 47, ""), with unselected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.replaceData(376, 47, ""), with selected range on detachedForeignTextNode from 0 to 1
+PASS detachedForeignTextNode.replaceData(0, 47, ""), with unselected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.replaceData(0, 47, ""), with selected range collapsed at (detachedForeignTextNode, 0)
+PASS detachedForeignTextNode.replaceData(1, 47, ""), with unselected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.replaceData(1, 47, ""), with selected range collapsed at (detachedForeignTextNode, 1)
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, ""), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, ""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)
+PASS detachedForeignTextNode.replaceData(1, 47, ""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(1, 47, ""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(2, 47, ""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(2, 47, ""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(3, 47, ""), with unselected range on detachedForeignTextNode from 1 to 3
+PASS detachedForeignTextNode.replaceData(3, 47, ""), with selected range on detachedForeignTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(376, 0, "foo"), with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.replaceData(376, 0, "foo"), with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.replaceData(0, 0, "foo"), with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.replaceData(1, 0, "foo"), with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, "foo"), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, "foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.replaceData(1, 0, "foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(1, 0, "foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(2, 0, "foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(2, 0, "foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(3, 0, "foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(3, 0, "foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(376, 0, ""), with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.replaceData(376, 0, ""), with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.replaceData(0, 0, ""), with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.replaceData(0, 0, ""), with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.replaceData(1, 0, ""), with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.replaceData(1, 0, ""), with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, ""), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, ""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.replaceData(1, 0, ""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(1, 0, ""), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(2, 0, ""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(2, 0, ""), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(3, 0, ""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(3, 0, ""), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(376, 1, "foo"), with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.replaceData(376, 1, "foo"), with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.replaceData(0, 1, "foo"), with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.replaceData(1, 1, "foo"), with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, "foo"), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, "foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.replaceData(1, 1, "foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(1, 1, "foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(2, 1, "foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(2, 1, "foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(3, 1, "foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(3, 1, "foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(376, 1, ""), with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.replaceData(376, 1, ""), with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.replaceData(0, 1, ""), with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.replaceData(0, 1, ""), with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.replaceData(1, 1, ""), with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.replaceData(1, 1, ""), with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, ""), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, ""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.replaceData(1, 1, ""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(1, 1, ""), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(2, 1, ""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(2, 1, ""), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(3, 1, ""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(3, 1, ""), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(376, 47, "foo"), with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.replaceData(376, 47, "foo"), with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.replaceData(0, 47, "foo"), with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.replaceData(1, 47, "foo"), with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, "foo"), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, "foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.replaceData(1, 47, "foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(1, 47, "foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(2, 47, "foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(2, 47, "foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(3, 47, "foo"), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(3, 47, "foo"), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(376, 47, ""), with unselected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.replaceData(376, 47, ""), with selected range on detachedXmlTextNode from 0 to 1
+PASS detachedXmlTextNode.replaceData(0, 47, ""), with unselected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.replaceData(0, 47, ""), with selected range collapsed at (detachedXmlTextNode, 0)
+PASS detachedXmlTextNode.replaceData(1, 47, ""), with unselected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.replaceData(1, 47, ""), with selected range collapsed at (detachedXmlTextNode, 1)
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, ""), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, ""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)
+PASS detachedXmlTextNode.replaceData(1, 47, ""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(1, 47, ""), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(2, 47, ""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(2, 47, ""), with selected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(3, 47, ""), with unselected range on detachedXmlTextNode from 1 to 3
+PASS detachedXmlTextNode.replaceData(3, 47, ""), with selected range on detachedXmlTextNode from 1 to 3
+PASS comment.replaceData(376, 0, "foo"), with unselected range on comment from 0 to 1
+PASS comment.replaceData(376, 0, "foo"), with selected range on comment from 0 to 1
+PASS comment.replaceData(0, 0, "foo"), with unselected range collapsed at (comment, 0)
+PASS comment.replaceData(0, 0, "foo"), with selected range collapsed at (comment, 0)
+PASS comment.replaceData(1, 0, "foo"), with unselected range collapsed at (comment, 1)
+PASS comment.replaceData(1, 0, "foo"), with selected range collapsed at (comment, 1)
+PASS comment.replaceData(comment.length, 0, "foo"), with unselected range collapsed at (comment, comment.length)
+PASS comment.replaceData(comment.length, 0, "foo"), with selected range collapsed at (comment, comment.length)
+PASS comment.replaceData(1, 0, "foo"), with unselected range on comment from 1 to 3
+PASS comment.replaceData(1, 0, "foo"), with selected range on comment from 1 to 3
+PASS comment.replaceData(2, 0, "foo"), with unselected range on comment from 1 to 3
+PASS comment.replaceData(2, 0, "foo"), with selected range on comment from 1 to 3
+PASS comment.replaceData(3, 0, "foo"), with unselected range on comment from 1 to 3
+PASS comment.replaceData(3, 0, "foo"), with selected range on comment from 1 to 3
+PASS comment.replaceData(376, 0, ""), with unselected range on comment from 0 to 1
+PASS comment.replaceData(376, 0, ""), with selected range on comment from 0 to 1
+PASS comment.replaceData(0, 0, ""), with unselected range collapsed at (comment, 0)
+PASS comment.replaceData(0, 0, ""), with selected range collapsed at (comment, 0)
+PASS comment.replaceData(1, 0, ""), with unselected range collapsed at (comment, 1)
+PASS comment.replaceData(1, 0, ""), with selected range collapsed at (comment, 1)
+PASS comment.replaceData(comment.length, 0, ""), with unselected range collapsed at (comment, comment.length)
+PASS comment.replaceData(comment.length, 0, ""), with selected range collapsed at (comment, comment.length)
+PASS comment.replaceData(1, 0, ""), with unselected range on comment from 1 to 3
+PASS comment.replaceData(1, 0, ""), with selected range on comment from 1 to 3
+PASS comment.replaceData(2, 0, ""), with unselected range on comment from 1 to 3
+PASS comment.replaceData(2, 0, ""), with selected range on comment from 1 to 3
+PASS comment.replaceData(3, 0, ""), with unselected range on comment from 1 to 3
+PASS comment.replaceData(3, 0, ""), with selected range on comment from 1 to 3
+PASS comment.replaceData(376, 1, "foo"), with unselected range on comment from 0 to 1
+PASS comment.replaceData(376, 1, "foo"), with selected range on comment from 0 to 1
+PASS comment.replaceData(0, 1, "foo"), with unselected range collapsed at (comment, 0)
+PASS comment.replaceData(0, 1, "foo"), with selected range collapsed at (comment, 0)
+PASS comment.replaceData(1, 1, "foo"), with unselected range collapsed at (comment, 1)
+PASS comment.replaceData(1, 1, "foo"), with selected range collapsed at (comment, 1)
+PASS comment.replaceData(comment.length, 1, "foo"), with unselected range collapsed at (comment, comment.length)
+PASS comment.replaceData(comment.length, 1, "foo"), with selected range collapsed at (comment, comment.length)
+PASS comment.replaceData(1, 1, "foo"), with unselected range on comment from 1 to 3
+PASS comment.replaceData(1, 1, "foo"), with selected range on comment from 1 to 3
+PASS comment.replaceData(2, 1, "foo"), with unselected range on comment from 1 to 3
+PASS comment.replaceData(2, 1, "foo"), with selected range on comment from 1 to 3
+PASS comment.replaceData(3, 1, "foo"), with unselected range on comment from 1 to 3
+PASS comment.replaceData(3, 1, "foo"), with selected range on comment from 1 to 3
+PASS comment.replaceData(376, 1, ""), with unselected range on comment from 0 to 1
+PASS comment.replaceData(376, 1, ""), with selected range on comment from 0 to 1
+PASS comment.replaceData(0, 1, ""), with unselected range collapsed at (comment, 0)
+PASS comment.replaceData(0, 1, ""), with selected range collapsed at (comment, 0)
+PASS comment.replaceData(1, 1, ""), with unselected range collapsed at (comment, 1)
+PASS comment.replaceData(1, 1, ""), with selected range collapsed at (comment, 1)
+PASS comment.replaceData(comment.length, 1, ""), with unselected range collapsed at (comment, comment.length)
+PASS comment.replaceData(comment.length, 1, ""), with selected range collapsed at (comment, comment.length)
+PASS comment.replaceData(1, 1, ""), with unselected range on comment from 1 to 3
+PASS comment.replaceData(1, 1, ""), with selected range on comment from 1 to 3
+PASS comment.replaceData(2, 1, ""), with unselected range on comment from 1 to 3
+PASS comment.replaceData(2, 1, ""), with selected range on comment from 1 to 3
+PASS comment.replaceData(3, 1, ""), with unselected range on comment from 1 to 3
+PASS comment.replaceData(3, 1, ""), with selected range on comment from 1 to 3
+PASS comment.replaceData(376, 47, "foo"), with unselected range on comment from 0 to 1
+PASS comment.replaceData(376, 47, "foo"), with selected range on comment from 0 to 1
+PASS comment.replaceData(0, 47, "foo"), with unselected range collapsed at (comment, 0)
+PASS comment.replaceData(0, 47, "foo"), with selected range collapsed at (comment, 0)
+PASS comment.replaceData(1, 47, "foo"), with unselected range collapsed at (comment, 1)
+PASS comment.replaceData(1, 47, "foo"), with selected range collapsed at (comment, 1)
+PASS comment.replaceData(comment.length, 47, "foo"), with unselected range collapsed at (comment, comment.length)
+PASS comment.replaceData(comment.length, 47, "foo"), with selected range collapsed at (comment, comment.length)
+PASS comment.replaceData(1, 47, "foo"), with unselected range on comment from 1 to 3
+PASS comment.replaceData(1, 47, "foo"), with selected range on comment from 1 to 3
+PASS comment.replaceData(2, 47, "foo"), with unselected range on comment from 1 to 3
+PASS comment.replaceData(2, 47, "foo"), with selected range on comment from 1 to 3
+PASS comment.replaceData(3, 47, "foo"), with unselected range on comment from 1 to 3
+PASS comment.replaceData(3, 47, "foo"), with selected range on comment from 1 to 3
+PASS comment.replaceData(376, 47, ""), with unselected range on comment from 0 to 1
+PASS comment.replaceData(376, 47, ""), with selected range on comment from 0 to 1
+PASS comment.replaceData(0, 47, ""), with unselected range collapsed at (comment, 0)
+PASS comment.replaceData(0, 47, ""), with selected range collapsed at (comment, 0)
+PASS comment.replaceData(1, 47, ""), with unselected range collapsed at (comment, 1)
+PASS comment.replaceData(1, 47, ""), with selected range collapsed at (comment, 1)
+PASS comment.replaceData(comment.length, 47, ""), with unselected range collapsed at (comment, comment.length)
+PASS comment.replaceData(comment.length, 47, ""), with selected range collapsed at (comment, comment.length)
+PASS comment.replaceData(1, 47, ""), with unselected range on comment from 1 to 3
+PASS comment.replaceData(1, 47, ""), with selected range on comment from 1 to 3
+PASS comment.replaceData(2, 47, ""), with unselected range on comment from 1 to 3
+PASS comment.replaceData(2, 47, ""), with selected range on comment from 1 to 3
+PASS comment.replaceData(3, 47, ""), with unselected range on comment from 1 to 3
+PASS comment.replaceData(3, 47, ""), with selected range on comment from 1 to 3
+PASS foreignComment.replaceData(376, 0, "foo"), with unselected range on foreignComment from 0 to 1
+PASS foreignComment.replaceData(376, 0, "foo"), with selected range on foreignComment from 0 to 1
+PASS foreignComment.replaceData(0, 0, "foo"), with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.replaceData(0, 0, "foo"), with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.replaceData(1, 0, "foo"), with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.replaceData(1, 0, "foo"), with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.replaceData(foreignComment.length, 0, "foo"), with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.replaceData(foreignComment.length, 0, "foo"), with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.replaceData(1, 0, "foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(1, 0, "foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(2, 0, "foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(2, 0, "foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(3, 0, "foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(3, 0, "foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(376, 0, ""), with unselected range on foreignComment from 0 to 1
+PASS foreignComment.replaceData(376, 0, ""), with selected range on foreignComment from 0 to 1
+PASS foreignComment.replaceData(0, 0, ""), with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.replaceData(0, 0, ""), with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.replaceData(1, 0, ""), with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.replaceData(1, 0, ""), with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.replaceData(foreignComment.length, 0, ""), with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.replaceData(foreignComment.length, 0, ""), with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.replaceData(1, 0, ""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(1, 0, ""), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(2, 0, ""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(2, 0, ""), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(3, 0, ""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(3, 0, ""), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(376, 1, "foo"), with unselected range on foreignComment from 0 to 1
+PASS foreignComment.replaceData(376, 1, "foo"), with selected range on foreignComment from 0 to 1
+PASS foreignComment.replaceData(0, 1, "foo"), with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.replaceData(0, 1, "foo"), with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.replaceData(1, 1, "foo"), with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.replaceData(1, 1, "foo"), with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.replaceData(foreignComment.length, 1, "foo"), with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.replaceData(foreignComment.length, 1, "foo"), with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.replaceData(1, 1, "foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(1, 1, "foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(2, 1, "foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(2, 1, "foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(3, 1, "foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(3, 1, "foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(376, 1, ""), with unselected range on foreignComment from 0 to 1
+PASS foreignComment.replaceData(376, 1, ""), with selected range on foreignComment from 0 to 1
+PASS foreignComment.replaceData(0, 1, ""), with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.replaceData(0, 1, ""), with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.replaceData(1, 1, ""), with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.replaceData(1, 1, ""), with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.replaceData(foreignComment.length, 1, ""), with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.replaceData(foreignComment.length, 1, ""), with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.replaceData(1, 1, ""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(1, 1, ""), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(2, 1, ""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(2, 1, ""), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(3, 1, ""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(3, 1, ""), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(376, 47, "foo"), with unselected range on foreignComment from 0 to 1
+PASS foreignComment.replaceData(376, 47, "foo"), with selected range on foreignComment from 0 to 1
+PASS foreignComment.replaceData(0, 47, "foo"), with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.replaceData(0, 47, "foo"), with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.replaceData(1, 47, "foo"), with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.replaceData(1, 47, "foo"), with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.replaceData(foreignComment.length, 47, "foo"), with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.replaceData(foreignComment.length, 47, "foo"), with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.replaceData(1, 47, "foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(1, 47, "foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(2, 47, "foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(2, 47, "foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(3, 47, "foo"), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(3, 47, "foo"), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(376, 47, ""), with unselected range on foreignComment from 0 to 1
+PASS foreignComment.replaceData(376, 47, ""), with selected range on foreignComment from 0 to 1
+PASS foreignComment.replaceData(0, 47, ""), with unselected range collapsed at (foreignComment, 0)
+PASS foreignComment.replaceData(0, 47, ""), with selected range collapsed at (foreignComment, 0)
+PASS foreignComment.replaceData(1, 47, ""), with unselected range collapsed at (foreignComment, 1)
+PASS foreignComment.replaceData(1, 47, ""), with selected range collapsed at (foreignComment, 1)
+PASS foreignComment.replaceData(foreignComment.length, 47, ""), with unselected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.replaceData(foreignComment.length, 47, ""), with selected range collapsed at (foreignComment, foreignComment.length)
+PASS foreignComment.replaceData(1, 47, ""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(1, 47, ""), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(2, 47, ""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(2, 47, ""), with selected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(3, 47, ""), with unselected range on foreignComment from 1 to 3
+PASS foreignComment.replaceData(3, 47, ""), with selected range on foreignComment from 1 to 3
+PASS xmlComment.replaceData(376, 0, "foo"), with unselected range on xmlComment from 0 to 1
+PASS xmlComment.replaceData(376, 0, "foo"), with selected range on xmlComment from 0 to 1
+PASS xmlComment.replaceData(0, 0, "foo"), with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.replaceData(0, 0, "foo"), with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.replaceData(1, 0, "foo"), with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.replaceData(1, 0, "foo"), with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.replaceData(xmlComment.length, 0, "foo"), with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.replaceData(xmlComment.length, 0, "foo"), with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.replaceData(1, 0, "foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(1, 0, "foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(2, 0, "foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(2, 0, "foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(3, 0, "foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(3, 0, "foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(376, 0, ""), with unselected range on xmlComment from 0 to 1
+PASS xmlComment.replaceData(376, 0, ""), with selected range on xmlComment from 0 to 1
+PASS xmlComment.replaceData(0, 0, ""), with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.replaceData(0, 0, ""), with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.replaceData(1, 0, ""), with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.replaceData(1, 0, ""), with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.replaceData(xmlComment.length, 0, ""), with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.replaceData(xmlComment.length, 0, ""), with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.replaceData(1, 0, ""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(1, 0, ""), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(2, 0, ""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(2, 0, ""), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(3, 0, ""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(3, 0, ""), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(376, 1, "foo"), with unselected range on xmlComment from 0 to 1
+PASS xmlComment.replaceData(376, 1, "foo"), with selected range on xmlComment from 0 to 1
+PASS xmlComment.replaceData(0, 1, "foo"), with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.replaceData(0, 1, "foo"), with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.replaceData(1, 1, "foo"), with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.replaceData(1, 1, "foo"), with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.replaceData(xmlComment.length, 1, "foo"), with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.replaceData(xmlComment.length, 1, "foo"), with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.replaceData(1, 1, "foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(1, 1, "foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(2, 1, "foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(2, 1, "foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(3, 1, "foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(3, 1, "foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(376, 1, ""), with unselected range on xmlComment from 0 to 1
+PASS xmlComment.replaceData(376, 1, ""), with selected range on xmlComment from 0 to 1
+PASS xmlComment.replaceData(0, 1, ""), with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.replaceData(0, 1, ""), with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.replaceData(1, 1, ""), with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.replaceData(1, 1, ""), with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.replaceData(xmlComment.length, 1, ""), with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.replaceData(xmlComment.length, 1, ""), with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.replaceData(1, 1, ""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(1, 1, ""), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(2, 1, ""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(2, 1, ""), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(3, 1, ""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(3, 1, ""), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(376, 47, "foo"), with unselected range on xmlComment from 0 to 1
+PASS xmlComment.replaceData(376, 47, "foo"), with selected range on xmlComment from 0 to 1
+PASS xmlComment.replaceData(0, 47, "foo"), with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.replaceData(0, 47, "foo"), with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.replaceData(1, 47, "foo"), with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.replaceData(1, 47, "foo"), with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.replaceData(xmlComment.length, 47, "foo"), with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.replaceData(xmlComment.length, 47, "foo"), with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.replaceData(1, 47, "foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(1, 47, "foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(2, 47, "foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(2, 47, "foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(3, 47, "foo"), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(3, 47, "foo"), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(376, 47, ""), with unselected range on xmlComment from 0 to 1
+PASS xmlComment.replaceData(376, 47, ""), with selected range on xmlComment from 0 to 1
+PASS xmlComment.replaceData(0, 47, ""), with unselected range collapsed at (xmlComment, 0)
+PASS xmlComment.replaceData(0, 47, ""), with selected range collapsed at (xmlComment, 0)
+PASS xmlComment.replaceData(1, 47, ""), with unselected range collapsed at (xmlComment, 1)
+PASS xmlComment.replaceData(1, 47, ""), with selected range collapsed at (xmlComment, 1)
+PASS xmlComment.replaceData(xmlComment.length, 47, ""), with unselected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.replaceData(xmlComment.length, 47, ""), with selected range collapsed at (xmlComment, xmlComment.length)
+PASS xmlComment.replaceData(1, 47, ""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(1, 47, ""), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(2, 47, ""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(2, 47, ""), with selected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(3, 47, ""), with unselected range on xmlComment from 1 to 3
+PASS xmlComment.replaceData(3, 47, ""), with selected range on xmlComment from 1 to 3
+PASS detachedComment.replaceData(376, 0, "foo"), with unselected range on detachedComment from 0 to 1
+PASS detachedComment.replaceData(376, 0, "foo"), with selected range on detachedComment from 0 to 1
+PASS detachedComment.replaceData(0, 0, "foo"), with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.replaceData(0, 0, "foo"), with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.replaceData(1, 0, "foo"), with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.replaceData(1, 0, "foo"), with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.replaceData(detachedComment.length, 0, "foo"), with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.replaceData(detachedComment.length, 0, "foo"), with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.replaceData(1, 0, "foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(1, 0, "foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(2, 0, "foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(2, 0, "foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(3, 0, "foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(3, 0, "foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(376, 0, ""), with unselected range on detachedComment from 0 to 1
+PASS detachedComment.replaceData(376, 0, ""), with selected range on detachedComment from 0 to 1
+PASS detachedComment.replaceData(0, 0, ""), with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.replaceData(0, 0, ""), with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.replaceData(1, 0, ""), with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.replaceData(1, 0, ""), with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.replaceData(detachedComment.length, 0, ""), with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.replaceData(detachedComment.length, 0, ""), with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.replaceData(1, 0, ""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(1, 0, ""), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(2, 0, ""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(2, 0, ""), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(3, 0, ""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(3, 0, ""), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(376, 1, "foo"), with unselected range on detachedComment from 0 to 1
+PASS detachedComment.replaceData(376, 1, "foo"), with selected range on detachedComment from 0 to 1
+PASS detachedComment.replaceData(0, 1, "foo"), with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.replaceData(0, 1, "foo"), with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.replaceData(1, 1, "foo"), with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.replaceData(1, 1, "foo"), with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.replaceData(detachedComment.length, 1, "foo"), with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.replaceData(detachedComment.length, 1, "foo"), with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.replaceData(1, 1, "foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(1, 1, "foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(2, 1, "foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(2, 1, "foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(3, 1, "foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(3, 1, "foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(376, 1, ""), with unselected range on detachedComment from 0 to 1
+PASS detachedComment.replaceData(376, 1, ""), with selected range on detachedComment from 0 to 1
+PASS detachedComment.replaceData(0, 1, ""), with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.replaceData(0, 1, ""), with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.replaceData(1, 1, ""), with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.replaceData(1, 1, ""), with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.replaceData(detachedComment.length, 1, ""), with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.replaceData(detachedComment.length, 1, ""), with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.replaceData(1, 1, ""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(1, 1, ""), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(2, 1, ""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(2, 1, ""), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(3, 1, ""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(3, 1, ""), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(376, 47, "foo"), with unselected range on detachedComment from 0 to 1
+PASS detachedComment.replaceData(376, 47, "foo"), with selected range on detachedComment from 0 to 1
+PASS detachedComment.replaceData(0, 47, "foo"), with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.replaceData(0, 47, "foo"), with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.replaceData(1, 47, "foo"), with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.replaceData(1, 47, "foo"), with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.replaceData(detachedComment.length, 47, "foo"), with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.replaceData(detachedComment.length, 47, "foo"), with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.replaceData(1, 47, "foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(1, 47, "foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(2, 47, "foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(2, 47, "foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(3, 47, "foo"), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(3, 47, "foo"), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(376, 47, ""), with unselected range on detachedComment from 0 to 1
+PASS detachedComment.replaceData(376, 47, ""), with selected range on detachedComment from 0 to 1
+PASS detachedComment.replaceData(0, 47, ""), with unselected range collapsed at (detachedComment, 0)
+PASS detachedComment.replaceData(0, 47, ""), with selected range collapsed at (detachedComment, 0)
+PASS detachedComment.replaceData(1, 47, ""), with unselected range collapsed at (detachedComment, 1)
+PASS detachedComment.replaceData(1, 47, ""), with selected range collapsed at (detachedComment, 1)
+PASS detachedComment.replaceData(detachedComment.length, 47, ""), with unselected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.replaceData(detachedComment.length, 47, ""), with selected range collapsed at (detachedComment, detachedComment.length)
+PASS detachedComment.replaceData(1, 47, ""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(1, 47, ""), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(2, 47, ""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(2, 47, ""), with selected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(3, 47, ""), with unselected range on detachedComment from 1 to 3
+PASS detachedComment.replaceData(3, 47, ""), with selected range on detachedComment from 1 to 3
+PASS detachedForeignComment.replaceData(376, 0, "foo"), with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.replaceData(376, 0, "foo"), with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.replaceData(0, 0, "foo"), with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.replaceData(0, 0, "foo"), with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.replaceData(1, 0, "foo"), with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.replaceData(1, 0, "foo"), with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 0, "foo"), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 0, "foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.replaceData(1, 0, "foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(1, 0, "foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(2, 0, "foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(2, 0, "foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(3, 0, "foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(3, 0, "foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(376, 0, ""), with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.replaceData(376, 0, ""), with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.replaceData(0, 0, ""), with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.replaceData(0, 0, ""), with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.replaceData(1, 0, ""), with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.replaceData(1, 0, ""), with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 0, ""), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 0, ""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.replaceData(1, 0, ""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(1, 0, ""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(2, 0, ""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(2, 0, ""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(3, 0, ""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(3, 0, ""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(376, 1, "foo"), with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.replaceData(376, 1, "foo"), with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.replaceData(0, 1, "foo"), with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.replaceData(0, 1, "foo"), with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.replaceData(1, 1, "foo"), with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.replaceData(1, 1, "foo"), with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 1, "foo"), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 1, "foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.replaceData(1, 1, "foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(1, 1, "foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(2, 1, "foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(2, 1, "foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(3, 1, "foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(3, 1, "foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(376, 1, ""), with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.replaceData(376, 1, ""), with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.replaceData(0, 1, ""), with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.replaceData(0, 1, ""), with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.replaceData(1, 1, ""), with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.replaceData(1, 1, ""), with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 1, ""), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 1, ""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.replaceData(1, 1, ""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(1, 1, ""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(2, 1, ""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(2, 1, ""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(3, 1, ""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(3, 1, ""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(376, 47, "foo"), with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.replaceData(376, 47, "foo"), with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.replaceData(0, 47, "foo"), with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.replaceData(0, 47, "foo"), with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.replaceData(1, 47, "foo"), with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.replaceData(1, 47, "foo"), with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 47, "foo"), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 47, "foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.replaceData(1, 47, "foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(1, 47, "foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(2, 47, "foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(2, 47, "foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(3, 47, "foo"), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(3, 47, "foo"), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(376, 47, ""), with unselected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.replaceData(376, 47, ""), with selected range on detachedForeignComment from 0 to 1
+PASS detachedForeignComment.replaceData(0, 47, ""), with unselected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.replaceData(0, 47, ""), with selected range collapsed at (detachedForeignComment, 0)
+PASS detachedForeignComment.replaceData(1, 47, ""), with unselected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.replaceData(1, 47, ""), with selected range collapsed at (detachedForeignComment, 1)
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 47, ""), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 47, ""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)
+PASS detachedForeignComment.replaceData(1, 47, ""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(1, 47, ""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(2, 47, ""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(2, 47, ""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(3, 47, ""), with unselected range on detachedForeignComment from 1 to 3
+PASS detachedForeignComment.replaceData(3, 47, ""), with selected range on detachedForeignComment from 1 to 3
+PASS detachedXmlComment.replaceData(376, 0, "foo"), with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.replaceData(376, 0, "foo"), with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.replaceData(0, 0, "foo"), with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.replaceData(0, 0, "foo"), with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.replaceData(1, 0, "foo"), with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.replaceData(1, 0, "foo"), with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 0, "foo"), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 0, "foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.replaceData(1, 0, "foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(1, 0, "foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(2, 0, "foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(2, 0, "foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(3, 0, "foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(3, 0, "foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(376, 0, ""), with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.replaceData(376, 0, ""), with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.replaceData(0, 0, ""), with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.replaceData(0, 0, ""), with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.replaceData(1, 0, ""), with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.replaceData(1, 0, ""), with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 0, ""), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 0, ""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.replaceData(1, 0, ""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(1, 0, ""), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(2, 0, ""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(2, 0, ""), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(3, 0, ""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(3, 0, ""), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(376, 1, "foo"), with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.replaceData(376, 1, "foo"), with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.replaceData(0, 1, "foo"), with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.replaceData(0, 1, "foo"), with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.replaceData(1, 1, "foo"), with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.replaceData(1, 1, "foo"), with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 1, "foo"), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 1, "foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.replaceData(1, 1, "foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(1, 1, "foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(2, 1, "foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(2, 1, "foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(3, 1, "foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(3, 1, "foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(376, 1, ""), with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.replaceData(376, 1, ""), with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.replaceData(0, 1, ""), with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.replaceData(0, 1, ""), with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.replaceData(1, 1, ""), with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.replaceData(1, 1, ""), with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 1, ""), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 1, ""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.replaceData(1, 1, ""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(1, 1, ""), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(2, 1, ""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(2, 1, ""), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(3, 1, ""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(3, 1, ""), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(376, 47, "foo"), with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.replaceData(376, 47, "foo"), with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.replaceData(0, 47, "foo"), with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.replaceData(0, 47, "foo"), with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.replaceData(1, 47, "foo"), with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.replaceData(1, 47, "foo"), with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 47, "foo"), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 47, "foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.replaceData(1, 47, "foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(1, 47, "foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(2, 47, "foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(2, 47, "foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(3, 47, "foo"), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(3, 47, "foo"), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(376, 47, ""), with unselected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.replaceData(376, 47, ""), with selected range on detachedXmlComment from 0 to 1
+PASS detachedXmlComment.replaceData(0, 47, ""), with unselected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.replaceData(0, 47, ""), with selected range collapsed at (detachedXmlComment, 0)
+PASS detachedXmlComment.replaceData(1, 47, ""), with unselected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.replaceData(1, 47, ""), with selected range collapsed at (detachedXmlComment, 1)
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 47, ""), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 47, ""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)
+PASS detachedXmlComment.replaceData(1, 47, ""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(1, 47, ""), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(2, 47, ""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(2, 47, ""), with selected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(3, 47, ""), with unselected range on detachedXmlComment from 1 to 3
+PASS detachedXmlComment.replaceData(3, 47, ""), with selected range on detachedXmlComment from 1 to 3
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with unselected range collapsed at (paras[0], 0)
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with selected range collapsed at (paras[0], 0)
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with unselected range on paras[0] from 0 to 1
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with selected range on paras[0] from 0 to 1
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with unselected range collapsed at (paras[0], 1)
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with selected range collapsed at (paras[0], 1)
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(2, 0, "foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(2, 0, "foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(3, 0, "foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(3, 0, "foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(1, 0, "foo"), with selected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(2, 0, "foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(2, 0, "foo"), with selected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(3, 0, "foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(3, 0, "foo"), with selected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with unselected range collapsed at (paras[0], 0)
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with selected range collapsed at (paras[0], 0)
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with unselected range on paras[0] from 0 to 1
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with selected range on paras[0] from 0 to 1
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with unselected range collapsed at (paras[0], 1)
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with selected range collapsed at (paras[0], 1)
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(2, 1, "foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(2, 1, "foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(3, 1, "foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(3, 1, "foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(1, 1, "foo"), with selected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(2, 1, "foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(2, 1, "foo"), with selected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(3, 1, "foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(3, 1, "foo"), with selected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with unselected range collapsed at (paras[0], 0)
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with selected range collapsed at (paras[0], 0)
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with unselected range on paras[0] from 0 to 1
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with selected range on paras[0] from 0 to 1
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with unselected range collapsed at (paras[0], 1)
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with selected range collapsed at (paras[0], 1)
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(2, 47, "foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(2, 47, "foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(3, 47, "foo"), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(3, 47, "foo"), with selected range from (paras[0].firstChild, 1) to (paras[0], 1)
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(1, 47, "foo"), with selected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(2, 47, "foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(2, 47, "foo"), with selected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(3, 47, "foo"), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3)
+PASS paras[0].firstChild.replaceData(3, 47, "foo"), 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>+<!doctype html>
+<title>Range mutation tests - replaceData</title>
+<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
+<meta name=timeout content=long>
+
+<div id=log></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../common.js"></script>
+<script src="Range-mutations.js"></script>
+<script>
+doTests(replaceDataTests, function(params) { return params[0] + ".replaceData(" + params[1] + ", " + params[2] + ", " + params[3] + ")" }, testReplaceData);
+testDiv.style.display = "none";
+</script>
</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>+<!doctype html>
+<title>Range mutation tests - splitText</title>
+<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
+<meta name=timeout content=long>
+
+<div id=log></div>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../common.js"></script>
+<script src="Range-mutations.js"></script>
+<script>
+doTests(splitTextTests, function(params) { return params[0] + ".splitText(" + params[1] + ")" }, testSplitText);
+testDiv.style.display = "none";
+</script>
</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>+"use strict";
+
+// 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 && startOffset == endOffset) {
+ return "range collapsed at (" + startContainer + ", " + startOffset + ")";
+ } else if (startContainer == endContainer) {
+ return "range on " + startContainer + " from " + startOffset + " to " + endOffset;
+ } else {
+ return "range from (" + startContainer + ", " + startOffset + ") to (" + endContainer + ", " + endOffset + ")";
+ }
+}
+
+// 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 = [
+ "paras[0].firstChild",
+ "paras[1].firstChild",
+ "foreignTextNode",
+ "xmlTextNode",
+ "detachedTextNode",
+ "detachedForeignTextNode",
+ "detachedXmlTextNode",
+];
+var commentNodes = [
+ "comment",
+ "foreignComment",
+ "xmlComment",
+ "detachedComment",
+ "detachedForeignComment",
+ "detachedXmlComment",
+];
+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 < sourceTests.length; i++) {
+ var params = sourceTests[i];
+ var len = params.length;
+ tests.push([
+ descFn(params) + ", with unselected " + 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 < evaledParams.length; i++) {
+ assert_true(typeof evaledParams[i] != "undefined",
+ "Test bug: " + params[i] + " is undefined");
+ }
+ return testFn.apply(null, evaledParams);
+ } }(params),
+ false,
+ params[len - 4],
+ params[len - 3],
+ params[len - 2],
+ params[len - 1]
+ ]);
+ tests.push([
+ descFn(params) + ", with selected " + 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 < evaledParams.length; i++) {
+ assert_true(typeof evaledParams[i] != "undefined",
+ "Test bug: " + params[i] + " is undefined");
+ }
+ // 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],
+ "Wrong start container");
+ assert_equals(range.startOffset, expected[1],
+ "Wrong start offset");
+ assert_equals(range.endContainer, expected[2],
+ "Wrong end container");
+ assert_equals(range.endOffset, expected[3],
+ "Wrong end offset");
+}
+
+
+// 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:
+ //
+ // "Replace data with offset offset, count count, and data the empty
+ // string."
+ //
+ // That translates to offset = offset, count = originalLength - offset,
+ // data = "". node is oldNode.
+ //
+ // "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."
+ if (startContainer == oldNode
+ && startOffset > offset
+ && startOffset <= originalLength) {
+ startOffset = offset;
+ }
+
+ if (endContainer == oldNode
+ && endOffset > offset
+ && endOffset <= originalLength) {
+ endOffset = offset;
+ }
+
+ // "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."
+ //
+ // Can't happen: offset plus count is originalLength.
+
+ // Now we insert a node, if oldNode's parent isn't null: "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."
+ if (startContainer == oldNode.parentNode
+ && startOffset > 1 + indexOf(oldNode)) {
+ startOffset++;
+ }
+
+ if (endContainer == oldNode.parentNode
+ && endOffset > 1 + indexOf(oldNode)) {
+ endOffset++;
+ }
+
+ // Finally, the splitText stuff itself:
+ //
+ // "If parent is not null, run these substeps:
+ //
+ // * "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.
+ //
+ // * "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.
+ //
+ // * "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.
+ //
+ // * "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."
+ if (oldNode.parentNode) {
+ if (startContainer == oldNode && originalStartOffset > offset) {
+ startContainer = newNode;
+ startOffset = originalStartOffset - offset;
+ }
+
+ if (endContainer == oldNode && originalEndOffset > offset) {
+ endContainer = newNode;
+ endOffset = originalEndOffset - offset;
+ }
+
+ if (startContainer == oldNode.parentNode
+ && startOffset == 1 + indexOf(oldNode)) {
+ startOffset++;
+ }
+
+ if (endContainer == oldNode.parentNode
+ && 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 < 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 + ".length", node, node + ".length", node, node + ".length"]);
+ 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(
+ ["paras[0].firstChild", 1, "paras[0]", 0, "paras[0]", 0],
+ ["paras[0].firstChild", 1, "paras[0]", 0, "paras[0]", 1],
+ ["paras[0].firstChild", 1, "paras[0]", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 1, "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 2, "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 3, "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 1, "paras[0]", 0, "paras[0].firstChild", 3],
+ ["paras[0].firstChild", 2, "paras[0]", 0, "paras[0].firstChild", 3],
+ ["paras[0].firstChild", 3, "paras[0]", 0, "paras[0].firstChild", 3]
+);
+
+
+function testReplaceDataAlgorithm(node, offset, count, data, callback, startContainer, startOffset, endContainer, endOffset) {
+ // Mutation works the same any time DOM Core's "replace data" 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,
+ "Sanity check failed: changing data changed the parent");
+
+ // "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."
+ if (exceptionThrown) {
+ assert_equals(node.data, originalData,
+ "Sanity check failed: exception thrown but data changed");
+ } else {
+ assert_equals(node.data,
+ originalData.substr(0, offset) + data + originalData.substr(offset + count),
+ "Sanity check failed: data not changed as expected");
+ }
+
+ // "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."
+ if (!exceptionThrown
+ && startContainer == node
+ && startOffset > offset
+ && startOffset <= offset + count) {
+ expectedStartOffset = offset;
+ }
+
+ if (!exceptionThrown
+ && endContainer == node
+ && endOffset > offset
+ && endOffset <= offset + count) {
+ expectedEndOffset = offset;
+ }
+
+ // "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."
+ if (!exceptionThrown
+ && startContainer == node
+ && startOffset > offset + count) {
+ expectedStartOffset += data.length - count;
+ }
+
+ if (!exceptionThrown
+ && endContainer == node
+ && endOffset > 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 < characterDataNodes.length; i++) {
+ var node = characterDataNodes[i];
+ insertDataTests.push([node, 376, '"foo"', node, 0, node, 1]);
+ insertDataTests.push([node, 0, '"foo"', node, 0, node, 0]);
+ insertDataTests.push([node, 1, '"foo"', node, 1, node, 1]);
+ insertDataTests.push([node, node + ".length", '"foo"', node, node + ".length", node, node + ".length"]);
+ insertDataTests.push([node, 1, '"foo"', node, 1, node, 3]);
+ insertDataTests.push([node, 2, '"foo"', node, 1, node, 3]);
+ insertDataTests.push([node, 3, '"foo"', node, 1, node, 3]);
+
+ insertDataTests.push([node, 376, '""', node, 0, node, 1]);
+ insertDataTests.push([node, 0, '""', node, 0, node, 0]);
+ insertDataTests.push([node, 1, '""', node, 1, node, 1]);
+ insertDataTests.push([node, node + ".length", '""', node, node + ".length", node, node + ".length"]);
+ insertDataTests.push([node, 1, '""', node, 1, node, 3]);
+ insertDataTests.push([node, 2, '""', node, 1, node, 3]);
+ insertDataTests.push([node, 3, '""', node, 1, node, 3]);
+}
+
+insertDataTests.push(
+ ["paras[0].firstChild", 1, '"foo"', "paras[0]", 0, "paras[0]", 0],
+ ["paras[0].firstChild", 1, '"foo"', "paras[0]", 0, "paras[0]", 1],
+ ["paras[0].firstChild", 1, '"foo"', "paras[0]", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 1, '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 2, '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 3, '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 1, '"foo"', "paras[0]", 0, "paras[0].firstChild", 3],
+ ["paras[0].firstChild", 2, '"foo"', "paras[0]", 0, "paras[0].firstChild", 3],
+ ["paras[0].firstChild", 3, '"foo"', "paras[0]", 0, "paras[0].firstChild", 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 < characterDataNodes.length; i++) {
+ var node = characterDataNodes[i];
+ appendDataTests.push([node, '"foo"', node, 0, node, 1]);
+ appendDataTests.push([node, '"foo"', node, 0, node, 0]);
+ appendDataTests.push([node, '"foo"', node, 1, node, 1]);
+ appendDataTests.push([node, '"foo"', node, 0, node, node + ".length"]);
+ appendDataTests.push([node, '"foo"', node, 1, node, node + ".length"]);
+ appendDataTests.push([node, '"foo"', node, node + ".length", node, node + ".length"]);
+ appendDataTests.push([node, '"foo"', node, 1, node, 3]);
+
+ appendDataTests.push([node, '""', node, 0, node, 1]);
+ appendDataTests.push([node, '""', node, 0, node, 0]);
+ appendDataTests.push([node, '""', node, 1, node, 1]);
+ appendDataTests.push([node, '""', node, 0, node, node + ".length"]);
+ appendDataTests.push([node, '""', node, 1, node, node + ".length"]);
+ appendDataTests.push([node, '""', node, node + ".length", node, node + ".length"]);
+ appendDataTests.push([node, '""', node, 1, node, 3]);
+}
+
+appendDataTests.push(
+ ["paras[0].firstChild", '""', "paras[0]", 0, "paras[0]", 0],
+ ["paras[0].firstChild", '""', "paras[0]", 0, "paras[0]", 1],
+ ["paras[0].firstChild", '""', "paras[0]", 1, "paras[0]", 1],
+ ["paras[0].firstChild", '""', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", '""', "paras[0]", 0, "paras[0].firstChild", 3],
+
+ ["paras[0].firstChild", '"foo"', "paras[0]", 0, "paras[0]", 0],
+ ["paras[0].firstChild", '"foo"', "paras[0]", 0, "paras[0]", 1],
+ ["paras[0].firstChild", '"foo"', "paras[0]", 1, "paras[0]", 1],
+ ["paras[0].firstChild", '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", '"foo"', "paras[0]", 0, "paras[0].firstChild", 3]
+);
+
+
+function testDeleteData(node, offset, count, startContainer, startOffset, endContainer, endOffset) {
+ return testReplaceDataAlgorithm(node, offset, count, "",
+ function() { node.deleteData(offset, count) },
+ startContainer, startOffset, endContainer, endOffset);
+}
+
+var deleteDataTests = [];
+for (var i = 0; i < 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 + ".length", 2, node, node + ".length", node, node + ".length"]);
+ 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 + ".length", 0, node, node + ".length", node, node + ".length"]);
+ 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 + ".length", 631, node, node + ".length", node, node + ".length"]);
+ 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(
+ ["paras[0].firstChild", 1, 2, "paras[0]", 0, "paras[0]", 0],
+ ["paras[0].firstChild", 1, 2, "paras[0]", 0, "paras[0]", 1],
+ ["paras[0].firstChild", 1, 2, "paras[0]", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 1, 2, "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 2, 2, "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 3, 2, "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 1, 2, "paras[0]", 0, "paras[0].firstChild", 3],
+ ["paras[0].firstChild", 2, 2, "paras[0]", 0, "paras[0].firstChild", 3],
+ ["paras[0].firstChild", 3, 2, "paras[0]", 0, "paras[0].firstChild", 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 < characterDataNodes.length; i++) {
+ var node = characterDataNodes[i];
+ replaceDataTests.push([node, 376, 0, '"foo"', node, 0, node, 1]);
+ replaceDataTests.push([node, 0, 0, '"foo"', node, 0, node, 0]);
+ replaceDataTests.push([node, 1, 0, '"foo"', node, 1, node, 1]);
+ replaceDataTests.push([node, node + ".length", 0, '"foo"', node, node + ".length", node, node + ".length"]);
+ replaceDataTests.push([node, 1, 0, '"foo"', node, 1, node, 3]);
+ replaceDataTests.push([node, 2, 0, '"foo"', node, 1, node, 3]);
+ replaceDataTests.push([node, 3, 0, '"foo"', node, 1, node, 3]);
+
+ replaceDataTests.push([node, 376, 0, '""', node, 0, node, 1]);
+ replaceDataTests.push([node, 0, 0, '""', node, 0, node, 0]);
+ replaceDataTests.push([node, 1, 0, '""', node, 1, node, 1]);
+ replaceDataTests.push([node, node + ".length", 0, '""', node, node + ".length", node, node + ".length"]);
+ replaceDataTests.push([node, 1, 0, '""', node, 1, node, 3]);
+ replaceDataTests.push([node, 2, 0, '""', node, 1, node, 3]);
+ replaceDataTests.push([node, 3, 0, '""', node, 1, node, 3]);
+
+ replaceDataTests.push([node, 376, 1, '"foo"', node, 0, node, 1]);
+ replaceDataTests.push([node, 0, 1, '"foo"', node, 0, node, 0]);
+ replaceDataTests.push([node, 1, 1, '"foo"', node, 1, node, 1]);
+ replaceDataTests.push([node, node + ".length", 1, '"foo"', node, node + ".length", node, node + ".length"]);
+ replaceDataTests.push([node, 1, 1, '"foo"', node, 1, node, 3]);
+ replaceDataTests.push([node, 2, 1, '"foo"', node, 1, node, 3]);
+ replaceDataTests.push([node, 3, 1, '"foo"', node, 1, node, 3]);
+
+ replaceDataTests.push([node, 376, 1, '""', node, 0, node, 1]);
+ replaceDataTests.push([node, 0, 1, '""', node, 0, node, 0]);
+ replaceDataTests.push([node, 1, 1, '""', node, 1, node, 1]);
+ replaceDataTests.push([node, node + ".length", 1, '""', node, node + ".length", node, node + ".length"]);
+ replaceDataTests.push([node, 1, 1, '""', node, 1, node, 3]);
+ replaceDataTests.push([node, 2, 1, '""', node, 1, node, 3]);
+ replaceDataTests.push([node, 3, 1, '""', node, 1, node, 3]);
+
+ replaceDataTests.push([node, 376, 47, '"foo"', node, 0, node, 1]);
+ replaceDataTests.push([node, 0, 47, '"foo"', node, 0, node, 0]);
+ replaceDataTests.push([node, 1, 47, '"foo"', node, 1, node, 1]);
+ replaceDataTests.push([node, node + ".length", 47, '"foo"', node, node + ".length", node, node + ".length"]);
+ replaceDataTests.push([node, 1, 47, '"foo"', node, 1, node, 3]);
+ replaceDataTests.push([node, 2, 47, '"foo"', node, 1, node, 3]);
+ replaceDataTests.push([node, 3, 47, '"foo"', node, 1, node, 3]);
+
+ replaceDataTests.push([node, 376, 47, '""', node, 0, node, 1]);
+ replaceDataTests.push([node, 0, 47, '""', node, 0, node, 0]);
+ replaceDataTests.push([node, 1, 47, '""', node, 1, node, 1]);
+ replaceDataTests.push([node, node + ".length", 47, '""', node, node + ".length", node, node + ".length"]);
+ replaceDataTests.push([node, 1, 47, '""', node, 1, node, 3]);
+ replaceDataTests.push([node, 2, 47, '""', node, 1, node, 3]);
+ replaceDataTests.push([node, 3, 47, '""', node, 1, node, 3]);
+}
+
+replaceDataTests.push(
+ ["paras[0].firstChild", 1, 0, '"foo"', "paras[0]", 0, "paras[0]", 0],
+ ["paras[0].firstChild", 1, 0, '"foo"', "paras[0]", 0, "paras[0]", 1],
+ ["paras[0].firstChild", 1, 0, '"foo"', "paras[0]", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 1, 0, '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 2, 0, '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 3, 0, '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 1, 0, '"foo"', "paras[0]", 0, "paras[0].firstChild", 3],
+ ["paras[0].firstChild", 2, 0, '"foo"', "paras[0]", 0, "paras[0].firstChild", 3],
+ ["paras[0].firstChild", 3, 0, '"foo"', "paras[0]", 0, "paras[0].firstChild", 3],
+
+ ["paras[0].firstChild", 1, 1, '"foo"', "paras[0]", 0, "paras[0]", 0],
+ ["paras[0].firstChild", 1, 1, '"foo"', "paras[0]", 0, "paras[0]", 1],
+ ["paras[0].firstChild", 1, 1, '"foo"', "paras[0]", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 1, 1, '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 2, 1, '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 3, 1, '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 1, 1, '"foo"', "paras[0]", 0, "paras[0].firstChild", 3],
+ ["paras[0].firstChild", 2, 1, '"foo"', "paras[0]", 0, "paras[0].firstChild", 3],
+ ["paras[0].firstChild", 3, 1, '"foo"', "paras[0]", 0, "paras[0].firstChild", 3],
+
+ ["paras[0].firstChild", 1, 47, '"foo"', "paras[0]", 0, "paras[0]", 0],
+ ["paras[0].firstChild", 1, 47, '"foo"', "paras[0]", 0, "paras[0]", 1],
+ ["paras[0].firstChild", 1, 47, '"foo"', "paras[0]", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 1, 47, '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 2, 47, '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 3, 47, '"foo"', "paras[0].firstChild", 1, "paras[0]", 1],
+ ["paras[0].firstChild", 1, 47, '"foo"', "paras[0]", 0, "paras[0].firstChild", 3],
+ ["paras[0].firstChild", 2, 47, '"foo"', "paras[0]", 0, "paras[0].firstChild", 3],
+ ["paras[0].firstChild", 3, 47, '"foo"', "paras[0]", 0, "paras[0].firstChild", 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 == "=" ? rval : node[attr] + rval,
+ function() {
+ if (op == "=") {
+ node[attr] = rval;
+ } else if (op == "+=") {
+ node[attr] += rval;
+ } else {
+ throw "Unknown op " + op;
+ }
+ },
+ startContainer, startOffset, endContainer, endOffset);
+}
+
+var dataChangeTests = [];
+var dataChangeTestAttrs = ["data", "textContent", "nodeValue"];
+for (var i = 0; i < 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 + ".length"],
+ [node, 1, node, node + ".length"],
+ [node, node + ".length", node, node + ".length"],
+ ];
+
+ for (var j = 0; j < dataChangeTestRanges.length; j++) {
+ for (var k = 0; k < dataChangeTestAttrs.length; k++) {
+ dataChangeTests.push([
+ node,
+ '"' + dataChangeTestAttrs[k] + '"',
+ '"="',
+ '""',
+ ].concat(dataChangeTestRanges[j]));
+
+ dataChangeTests.push([
+ node,
+ '"' + dataChangeTestAttrs[k] + '"',
+ '"="',
+ '"foo"',
+ ].concat(dataChangeTestRanges[j]));
+
+ dataChangeTests.push([
+ node,
+ '"' + dataChangeTestAttrs[k] + '"',
+ '"="',
+ node + "." + dataChangeTestAttrs[k],
+ ].concat(dataChangeTestRanges[j]));
+
+ dataChangeTests.push([
+ node,
+ '"' + dataChangeTestAttrs[k] + '"',
+ '"+="',
+ '""',
+ ].concat(dataChangeTestRanges[j]));
+
+ dataChangeTests.push([
+ node,
+ '"' + dataChangeTestAttrs[k] + '"',
+ '"+="',
+ '"foo"',
+ ].concat(dataChangeTestRanges[j]));
+
+ dataChangeTests.push([
+ node,
+ '"' + dataChangeTestAttrs[k] + '"',
+ '"+="',
+ node + "." + 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;
+ }
+
+ // "For each boundary point whose node is removed node or a descendant of
+ // it, set the boundary point to (old parent, old index)."
+ if (point[0] == removedNode || isDescendant(point[0], removedNode)) {
+ return [oldParent, oldIndex];
+ }
+
+ // "For each boundary point whose node is old parent and whose offset is
+ // greater than old index, subtract one from its offset."
+ if (point[0] == oldParent && point[1] > 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) {
+ // "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."
+ if (point[0] == insertedNode.parentNode && point[1] > 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
+ ["testDiv", "paras[0]", "paras[1]", "paras[0]", 0, "paras[0]", 0],
+ ["testDiv", "paras[0]", "paras[1]", "paras[0]", 0, "paras[0]", 1],
+ ["testDiv", "paras[0]", "paras[1]", "paras[0]", 1, "paras[0]", 1],
+ ["testDiv", "paras[0]", "paras[1]", "testDiv", 0, "testDiv", 2],
+ ["testDiv", "paras[0]", "paras[1]", "testDiv", 1, "testDiv", 1],
+ ["testDiv", "paras[0]", "paras[1]", "testDiv", 1, "testDiv", 2],
+ ["testDiv", "paras[0]", "paras[1]", "testDiv", 2, "testDiv", 2],
+
+ // Stuff that actually moves something. Note that paras[0] and paras[1]
+ // are both children of testDiv.
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 0],
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "paras[0]", 1, "paras[0]", 1],
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "testDiv", 0, "testDiv", 1],
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "testDiv", 0, "testDiv", 2],
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "testDiv", 1, "testDiv", 1],
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "testDiv", 1, "testDiv", 2],
+ ["paras[0]", "paras[1]", "null", "paras[0]", 0, "paras[0]", 0],
+ ["paras[0]", "paras[1]", "null", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "paras[1]", "null", "paras[0]", 1, "paras[0]", 1],
+ ["paras[0]", "paras[1]", "null", "testDiv", 0, "testDiv", 1],
+ ["paras[0]", "paras[1]", "null", "testDiv", 0, "testDiv", 2],
+ ["paras[0]", "paras[1]", "null", "testDiv", 1, "testDiv", 1],
+ ["paras[0]", "paras[1]", "null", "testDiv", 1, "testDiv", 2],
+ ["foreignDoc", "detachedComment", "foreignDoc.documentElement", "foreignDoc", 0, "foreignDoc", 0],
+ ["foreignDoc", "detachedComment", "foreignDoc.documentElement", "foreignDoc", 0, "foreignDoc", 1],
+ ["foreignDoc", "detachedComment", "foreignDoc.documentElement", "foreignDoc", 0, "foreignDoc", 2],
+ ["foreignDoc", "detachedComment", "foreignDoc.documentElement", "foreignDoc", 1, "foreignDoc", 1],
+ ["foreignDoc", "detachedComment", "foreignDoc.doctype", "foreignDoc", 0, "foreignDoc", 0],
+ ["foreignDoc", "detachedComment", "foreignDoc.doctype", "foreignDoc", 0, "foreignDoc", 1],
+ ["foreignDoc", "detachedComment", "foreignDoc.doctype", "foreignDoc", 0, "foreignDoc", 2],
+ ["foreignDoc", "detachedComment", "foreignDoc.doctype", "foreignDoc", 1, "foreignDoc", 1],
+ ["foreignDoc", "detachedComment", "null", "foreignDoc", 0, "foreignDoc", 1],
+ ["paras[0]", "xmlTextNode", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 0],
+ ["paras[0]", "xmlTextNode", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "xmlTextNode", "paras[0].firstChild", "paras[0]", 1, "paras[0]", 1],
+
+ // Stuff that throws exceptions
+ ["paras[0]", "paras[0]", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "testDiv", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "document", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "foreignDoc", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "document.doctype", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 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
+ ["testDiv", "paras[0]", "paras[0]", "paras[0]", 0, "paras[0]", 0],
+ ["testDiv", "paras[0]", "paras[0]", "paras[0]", 0, "paras[0]", 1],
+ ["testDiv", "paras[0]", "paras[0]", "paras[0]", 1, "paras[0]", 1],
+ ["testDiv", "paras[0]", "paras[0]", "testDiv", 0, "testDiv", 2],
+ ["testDiv", "paras[0]", "paras[0]", "testDiv", 1, "testDiv", 1],
+ ["testDiv", "paras[0]", "paras[0]", "testDiv", 1, "testDiv", 2],
+ ["testDiv", "paras[0]", "paras[0]", "testDiv", 2, "testDiv", 2],
+
+ // Stuff that actually moves something.
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 0],
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "paras[0]", 1, "paras[0]", 1],
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "testDiv", 0, "testDiv", 1],
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "testDiv", 0, "testDiv", 2],
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "testDiv", 1, "testDiv", 1],
+ ["paras[0]", "paras[1]", "paras[0].firstChild", "testDiv", 1, "testDiv", 2],
+ ["foreignDoc", "detachedComment", "foreignDoc.documentElement", "foreignDoc", 0, "foreignDoc", 0],
+ ["foreignDoc", "detachedComment", "foreignDoc.documentElement", "foreignDoc", 0, "foreignDoc", 1],
+ ["foreignDoc", "detachedComment", "foreignDoc.documentElement", "foreignDoc", 0, "foreignDoc", 2],
+ ["foreignDoc", "detachedComment", "foreignDoc.documentElement", "foreignDoc", 1, "foreignDoc", 1],
+ ["foreignDoc", "detachedComment", "foreignDoc.doctype", "foreignDoc", 0, "foreignDoc", 0],
+ ["foreignDoc", "detachedComment", "foreignDoc.doctype", "foreignDoc", 0, "foreignDoc", 1],
+ ["foreignDoc", "detachedComment", "foreignDoc.doctype", "foreignDoc", 0, "foreignDoc", 2],
+ ["foreignDoc", "detachedComment", "foreignDoc.doctype", "foreignDoc", 1, "foreignDoc", 1],
+ ["paras[0]", "xmlTextNode", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 0],
+ ["paras[0]", "xmlTextNode", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "xmlTextNode", "paras[0].firstChild", "paras[0]", 1, "paras[0]", 1],
+
+ // Stuff that throws exceptions
+ ["paras[0]", "paras[0]", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "testDiv", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "document", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "foreignDoc", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "document.doctype", "paras[0].firstChild", "paras[0]", 0, "paras[0]", 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
+ ["testDiv", "testDiv.lastChild", "testDiv.lastChild", 0, "testDiv.lastChild", 0],
+ ["testDiv", "testDiv.lastChild", "testDiv.lastChild", 0, "testDiv.lastChild", 1],
+ ["testDiv", "testDiv.lastChild", "testDiv.lastChild", 1, "testDiv.lastChild", 1],
+ ["testDiv", "testDiv.lastChild", "testDiv", "testDiv.childNodes.length - 2", "testDiv", "testDiv.childNodes.length"],
+ ["testDiv", "testDiv.lastChild", "testDiv", "testDiv.childNodes.length - 2", "testDiv", "testDiv.childNodes.length - 1"],
+ ["testDiv", "testDiv.lastChild", "testDiv", "testDiv.childNodes.length - 1", "testDiv", "testDiv.childNodes.length"],
+ ["testDiv", "testDiv.lastChild", "testDiv", "testDiv.childNodes.length - 1", "testDiv", "testDiv.childNodes.length - 1"],
+ ["testDiv", "testDiv.lastChild", "testDiv", "testDiv.childNodes.length", "testDiv", "testDiv.childNodes.length"],
+ ["detachedDiv", "detachedDiv.lastChild", "detachedDiv.lastChild", 0, "detachedDiv.lastChild", 0],
+ ["detachedDiv", "detachedDiv.lastChild", "detachedDiv.lastChild", 0, "detachedDiv.lastChild", 1],
+ ["detachedDiv", "detachedDiv.lastChild", "detachedDiv.lastChild", 1, "detachedDiv.lastChild", 1],
+ ["detachedDiv", "detachedDiv.lastChild", "detachedDiv", "detachedDiv.childNodes.length - 2", "detachedDiv", "detachedDiv.childNodes.length"],
+ ["detachedDiv", "detachedDiv.lastChild", "detachedDiv", "detachedDiv.childNodes.length - 2", "detachedDiv", "detachedDiv.childNodes.length - 1"],
+ ["detachedDiv", "detachedDiv.lastChild", "detachedDiv", "detachedDiv.childNodes.length - 1", "detachedDiv", "detachedDiv.childNodes.length"],
+ ["detachedDiv", "detachedDiv.lastChild", "detachedDiv", "detachedDiv.childNodes.length - 1", "detachedDiv", "detachedDiv.childNodes.length - 1"],
+ ["detachedDiv", "detachedDiv.lastChild", "detachedDiv", "detachedDiv.childNodes.length", "detachedDiv", "detachedDiv.childNodes.length"],
+
+ // Stuff that actually moves something
+ ["paras[0]", "paras[1]", "paras[0]", 0, "paras[0]", 0],
+ ["paras[0]", "paras[1]", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "paras[1]", "paras[0]", 1, "paras[0]", 1],
+ ["paras[0]", "paras[1]", "testDiv", 0, "testDiv", 1],
+ ["paras[0]", "paras[1]", "testDiv", 0, "testDiv", 2],
+ ["paras[0]", "paras[1]", "testDiv", 1, "testDiv", 1],
+ ["paras[0]", "paras[1]", "testDiv", 1, "testDiv", 2],
+ ["foreignDoc", "detachedComment", "foreignDoc", "foreignDoc.childNodes.length - 1", "foreignDoc", "foreignDoc.childNodes.length"],
+ ["foreignDoc", "detachedComment", "foreignDoc", "foreignDoc.childNodes.length - 1", "foreignDoc", "foreignDoc.childNodes.length - 1"],
+ ["foreignDoc", "detachedComment", "foreignDoc", "foreignDoc.childNodes.length", "foreignDoc", "foreignDoc.childNodes.length"],
+ ["foreignDoc", "detachedComment", "detachedComment", 0, "detachedComment", 5],
+ ["paras[0]", "xmlTextNode", "paras[0]", 0, "paras[0]", 0],
+ ["paras[0]", "xmlTextNode", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "xmlTextNode", "paras[0]", 1, "paras[0]", 1],
+
+ // Stuff that throws exceptions
+ ["paras[0]", "paras[0]", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "testDiv", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "document", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "foreignDoc", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "document.doctype", "paras[0]", 0, "paras[0]", 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 = [
+ ["paras[0]", "paras[0]", 0, "paras[0]", 0],
+ ["paras[0]", "paras[0]", 0, "paras[0]", 1],
+ ["paras[0]", "paras[0]", 1, "paras[0]", 1],
+ ["paras[0]", "testDiv", 0, "testDiv", 0],
+ ["paras[0]", "testDiv", 0, "testDiv", 1],
+ ["paras[0]", "testDiv", 1, "testDiv", 1],
+ ["paras[0]", "testDiv", 0, "testDiv", 2],
+ ["paras[0]", "testDiv", 1, "testDiv", 2],
+ ["paras[0]", "testDiv", 2, "testDiv", 2],
+
+ ["foreignDoc.documentElement", "foreignDoc", 0, "foreignDoc", "foreignDoc.childNodes.length"],
+];
</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"> </script>
</span><span class="cx"> </body>
</span><del>-</html>
</del><span class="cx">\ No newline at end of file
</span><ins>+</html>
</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"> <html>
</span><span class="cx"> <head>
</span><span class="cx"> <meta charset=utf-8>
</span><ins>+ <meta name="timeout" content="long">
</ins><span class="cx"> <title>Encrypted Media Extensions: Successful Playback, Temporary session with DRM, mp4, expired license</title>
</span><span class="cx"> <link rel="help" href="https://w3c.github.io/encrypted-media/">
</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"> <script>
</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: "event is of correct class" } );
- assertions.push( { expected: 'message', actual: messageevent.type, message: "event type is message" } );
- assertions.push( { expected: 'license-release', actual: messageevent.messageType, message: "message type is license-release" } );
</del><ins>+ assertions.push({expected: true, actual: messageevent instanceof window.MediaKeyMessageEvent, message: "event is of correct class"});
+ assertions.push({expected: 'message', actual: messageevent.type, message: "event type is message"});
+ assertions.push({expected: 'license-release', actual: messageevent.messageType, message: "message type is license-release"});
</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 > ( config.duration || 1 ) ) {
</del><ins>+ if (config.video.currentTime > (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: "Load of removed session should fail" } );
</del><ins>+ var mediaKeySession = _mediaKeys.createSession('persistent-license');
+ mediaKeySession.load(event.data.sessionId ).then( function(success) {
+ assertions.push({expected: false, actual: success, message: "Load of removed session should fail"});
</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: "Expect load session to succeed" } );
- if ( !success ) throw new DOMException();
</del><ins>+ return _mediaKeySession.load(event.data.sessionId);
+ }).then(function(success) {
+ assertions.push({actual: success, expected: true, message: "Expect load session to succeed"});
+ 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 "temporary" 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'
- ],
- "Expected events sequence" );
</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'
- ],
- "Expected events sequence" );
</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 > (config.duration || 1) && !_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'
- ],
- "Expected events sequence");
</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, "expiration attribute should equal provided expiration time");
</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, "Starting play before license expired");
</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 > 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, "Video readyState should be HAVE_METADATA on watingforkey event");
</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, "Video readyState should be HAVE_CURRENT_DATA on watingforkey event");
</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 "'" + ac.contentType + "'"; } ).join(',') : '',
</span><span class="cx"> videocontenttypes = videoCapabilities ? videoCapabilities.map( function(ac) { return "'" + ac.contentType + "'"; } ).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 "." (%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 "."');
+ 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, "invalid");
</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, ["invalid", "upsupported"]);
</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("Unexpected secret length: " + 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 && !videoSourceBuffer.updating) {
+ if (source.readyState !== 'open') {
+ rejectsource(new Error("Media source error"));
+ } 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 < 4 ? ["th", "st", "nd", "rd"][i] : "th"); }
+ var i = 0, j=0, k=0;
+ while(i < events.length && j < pattern.length) {
+ if (!Array.isArray(pattern[j])) {
+ assert_equals(events[i], pattern[j], "Expected " + th(i+1) + " event to be '" + pattern[j] + "'");
+ ++i;
+ ++j;
+ } else {
+ assert_equals(events[i], pattern[j][k], "Expected " + th(i+1) + " event to be '" + pattern[j][k] + "'");
+ ++i;
+ k = (k+1)%pattern[j].length;
+ if (k === 0 && events[i] !== pattern[j][0]) {
+ ++j;
+ }
+ }
+ }
+ assert_equals(i,events.length,"Received more events than expected");
+ assert_equals(j,pattern.length,"Expected more events than received");
+}
</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"> <body>
</span><span class="cx"> <div id="log"></div>
</span><span class="cx"> <script>
</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) => {
</span><span class="cx"> validateBufferFromString(value.value, "TEST_CHUNK", "Should receive first chunk");
</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) => {
</span><span class="cx"> return fetch("../resources/bad-chunk-encoding.py?count=1").then((response) => {
</span><del>- return checkReader(test, response.body.getReader(), true);
</del><ins>+ return checkReader(test, response.body.getReader(), reader => reader.read());
</ins><span class="cx"> });
</span><span class="cx"> }, "Response reader read() promise should reject after a network error happening after resolving fetch promise");
</span><span class="cx">
</span><span class="cx"> promise_test((test) => {
</span><span class="cx"> return fetch("../resources/bad-chunk-encoding.py?count=1").then((response) => {
</span><del>- return checkReader(test, response.body.getReader(), false);
</del><ins>+ return checkReader(test, response.body.getReader(), reader => reader.closed);
</ins><span class="cx"> });
</span><span class="cx"> }, "Response reader closed promise should reject after a network error happening after resolving fetch promise");
</span><span class="cx"> </script>
</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("../resources/utils.js");
</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 >= 40) ? "[...]" : "";
</span><del>- desc = "Fetching " + url.substring(0, 40) + cut + " is OK";
- var init = { };
</del><ins>+ desc = "Fetching " + (method ? "[" + method + "] " : "") + url.substring(0, 40) + cut + " is OK";
+ var init = {"method": method || "GET"};
</ins><span class="cx"> if (fetchMode) {
</span><span class="cx"> init.mode = fetchMode;
</span><span class="cx"> desc += " (" + fetchMode + ")";
</span><span class="lines">@@ -31,6 +31,8 @@
</span><span class="cx"> checkFetchResponse("data:image/png;base64,cmVzcG9uc2UncyBib2R5",
</span><span class="cx"> "response's body",
</span><span class="cx"> "image/png");
</span><ins>+checkFetchResponse("data:,response%27s%20body", "response's body", "text/plain;charset=US-ASCII", null, "POST");
+checkFetchResponse("data:,response%27s%20body", "response's body", "text/plain;charset=US-ASCII", null, "HEAD");
</ins><span class="cx">
</span><span class="cx"> function checkKoUrl(url, method, desc) {
</span><span class="cx"> var cut = (url.length >= 40) ? "[...]" : "";
</span><span class="lines">@@ -41,7 +43,5 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> checkKoUrl("data:notAdataUrl.com", "GET");
</span><del>-checkKoUrl("data:,response%27s%20body", "POST");
-checkKoUrl("data:,response%27s%20body", "HEAD");
</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), "Response.arrayBuffer() should contain data encoded as UTF-8");
</del><ins>+ assert_array_equals(new Uint8Array(buffer), encode_utf8(body), "Response.arrayBuffer() should contain data encoded as UTF-8");
</ins><span class="cx"> });
</span><span class="cx"> }, title + " (Response object)");
</span><span class="cx">
</span><span class="cx"> promise_test(function(test) {
</span><span class="cx"> return new Request("", {method: "POST", body: body}).arrayBuffer().then(function(buffer) {
</span><del>- validateBufferFromString(buffer, encode_utf8(body), "Request.arrayBuffer() should contain data encoded as UTF-8");
</del><ins>+ assert_array_equals(new Uint8Array(buffer), encode_utf8(body), "Request.arrayBuffer() should contain data encoded as UTF-8");
</ins><span class="cx"> });
</span><span class="cx"> }, title + " (Request object)");
</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 = {"mode": "cors", "redirect": "follow"};
</span><span class="cx">
</span><span class="cx"> return promise_test(function(test) {
</span><del>- fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token).then(function(resp) {
</del><ins>+ return fetch(RESOURCES_DIR + "clean-stash.py?token=" + 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, "Response's status is 200");
</span><span class="cx"> assert_equals(resp.headers.get("x-did-preflight"), "0", "No preflight request has been made");
</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 "TypeError: Type error"
+FAIL Redirect 301 21 times assert_equals: Redirected 21times expected (string) "21" but got (undefined) undefined
+FAIL Redirect 302 20 times promise_test: Unhandled rejection with value: object "TypeError: Type error"
+FAIL Redirect 302 21 times assert_equals: Redirected 21times expected (string) "21" but got (undefined) undefined
+FAIL Redirect 303 20 times promise_test: Unhandled rejection with value: object "TypeError: Type error"
+FAIL Redirect 303 21 times assert_equals: Redirected 21times expected (string) "21" but got (undefined) undefined
+FAIL Redirect 307 20 times promise_test: Unhandled rejection with value: object "TypeError: Type error"
+FAIL Redirect 307 21 times assert_equals: Redirected 21times expected (string) "21" but got (undefined) undefined
+FAIL Redirect 308 20 times promise_test: Unhandled rejection with value: object "TypeError: Type error"
+FAIL Redirect 308 21 times assert_equals: Redirected 21times expected (string) "21" 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 "TypeError: Type error"
+FAIL Redirect 301 21 times assert_equals: Redirected 21times expected (string) "21" but got (undefined) undefined
+FAIL Redirect 302 20 times promise_test: Unhandled rejection with value: object "TypeError: Type error"
+FAIL Redirect 302 21 times assert_equals: Redirected 21times expected (string) "21" but got (undefined) undefined
+FAIL Redirect 303 20 times promise_test: Unhandled rejection with value: object "TypeError: Type error"
+FAIL Redirect 303 21 times assert_equals: Redirected 21times expected (string) "21" but got (undefined) undefined
+FAIL Redirect 307 20 times promise_test: Unhandled rejection with value: object "TypeError: Type error"
+FAIL Redirect 307 21 times assert_equals: Redirected 21times expected (string) "21" but got (undefined) undefined
+FAIL Redirect 308 20 times promise_test: Unhandled rejection with value: object "TypeError: Type error"
+FAIL Redirect 308 21 times assert_equals: Redirected 21times expected (string) "21" 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 = {"redirect": "follow"};
</span><span class="cx">
</span><span class="cx"> promise_test(function(test) {
</span><del>- fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token).then(function(resp) {
</del><ins>+ return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token).then(function(resp) {
</ins><span class="cx"> assert_equals(resp.status, 200, "Clean stash response's status is 200");
</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>+<!DOCTYPE html>
+<title>Current page used as a test helper</title>
</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>+<!DOCTYPE html>
+<title>Incumbent page used as a test helper</title>
+
+<iframe src="../current/current.html" id="c"></iframe>
+
+<script>
+'use strict';
+
+const current = document.querySelector('#c').contentWindow;
+
+window.createRequest = (...args) => {
+ return new current.Request(...args);
+};
+
+</script>
</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>+<!DOCTYPE html>
+<title>Request constructor URL parsing, with multiple globals in play</title>
+<link rel="help" href="https://fetch.spec.whatwg.org/#dom-request">
+<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<!-- This is the entry global -->
+
+<iframe src="incumbent/incumbent.html"></iframe>
+
+<script>
+'use strict';
+
+const loadPromise = new Promise(resolve => {
+ window.addEventListener("load", () => resolve());
+});
+
+promise_test(() => {
+ return loadPromise.then(() => {
+ const req = frames[0].createRequest("url");
+
+ assert_equals(req.url, new URL("current/url", location.href).href);
+ });
+}, "should parse the URL relative to the current settings object");
+
+</script>
</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("blob", new Blob([], { "type" : "text/plain" }), true);
</span><span class="cx"> checkRequestWithEmptyBody("text", "", true);
</span><span class="cx"> checkRequestWithEmptyBody("URLSearchParams", new URLSearchParams(""), 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("FormData", new FormData(), true);
</span><span class="cx"> checkRequestWithEmptyBody("ArrayBuffer", new ArrayBuffer(), true);
</span><span class="cx"> </script>
</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("a\r\nTEST_CHUNK\r\n")
</span><span class="cx"> time.sleep(delay)
</span><span class="cx"> response.writer.write_content("garbage")
</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 < 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>+<!DOCTYPE html>
+<title>Current page used as a test helper</title>
</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>+<!DOCTYPE html>
+<title>Incumbent page used as a test helper</title>
+
+<iframe src="../current/current.html" id="c"></iframe>
+<iframe src="../relevant/relevant.html" id="r"></iframe>
+
+<script>
+'use strict';
+
+const current = document.querySelector('#c').contentWindow;
+const relevant = document.querySelector('#r').contentWindow;
+
+window.createRedirectResponse = (...args) => {
+ return current.Response.redirect.call(relevant.Response, ...args);
+};
+
+</script>
</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>+<!DOCTYPE html>
+<title>Relevant page used as a test helper</title>
</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>+<!DOCTYPE html>
+<title>Response.redirect URL parsing, with multiple globals in play</title>
+<link rel="help" href="https://fetch.spec.whatwg.org/#dom-response-redirect">
+<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<!-- This is the entry global -->
+
+<iframe src="incumbent/incumbent.html"></iframe>
+
+<script>
+'use strict';
+
+const loadPromise = new Promise(resolve => {
+ window.addEventListener("load", () => resolve());
+});
+
+promise_test(() => {
+ return loadPromise.then(() => {
+ const res = frames[0].createRedirectResponse("url");
+
+ assert_equals(res.headers.get("Location"), new URL("current/url", location.href).href);
+ });
+}, "should parse the redirect Location URL relative to the current settings object");
+
+</script>
</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, "Cloned buffer chunks have the same content");
- assert_equals(Object.getPrototypeOf(data.value), Object.getPrototypeOf(initialBuffer), "Cloned buffers have the same type");
- assert_true(data.value !== initialBuffer, "Cloned buffers are different objects");
</del><ins>+ assert_true(data.value === initialBuffer, "Buffer of being-cloned response stream is the same as the original buffer");
</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, "Cloned buffer chunks have the same content");
</span><span class="cx"> assert_equals(Object.getPrototypeOf(data.value), Object.getPrototypeOf(initialBuffer), "Cloned buffers have the same type");
</span><del>- assert_true(data.value !== initialBuffer, "Cloned buffers are different objects");
</del><ins>+ assert_true(data.value !== initialBuffer, "Buffer of cloned response stream is a clone of the original buffer");
</ins><span class="cx"> });
</span><span class="cx"> }, "Check response clone use structureClone for teed ReadableStreams (" + bufferType + "chunk)");
</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 "TypeError: not implemented"
</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>-}, "Read text response's body as readableStream");
</del><ins>+}, "Read URLSearchParams response's body as readableStream");
</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, "text", "text", checkBodyText);
</span><del>- checkResponseBody(textData, "text", "blob", function(response, body) { checkBodyBlob(response, body, true); });
</del><ins>+ checkResponseBody(textData, "text", "blob", function(response, body) { return checkBodyBlob(response, body, true); });
</ins><span class="cx"> checkResponseBody(textData, "text", "arrayBuffer", checkBodyArrayBuffer);
</span><span class="cx"> checkResponseBody(textData, "text", "json", checkBodyJSON);
</span><span class="cx"> checkResponseBody(formData, "formdata", "formData", checkBodyFormData);
</span><del>- checkResponseBody(urlSearchParams, "URLSearchParams", "text", function(response) { checkBodyText(response, urlSearchParams); });
- checkResponseBody(urlSearchParams, "URLSearchParams", "blob", function(response, body) { checkBodyBlob(response, urlSearchParamsData, false); });
- checkResponseBody(urlSearchParams, "URLSearchParams", "arrayBuffer", function(response) { checkBodyArrayBuffer(response, urlSearchParamsData); });
</del><ins>+ checkResponseBody(urlSearchParams, "URLSearchParams", "text", function(response) { return checkBodyText(response, urlSearchParamsData); });
+ checkResponseBody(urlSearchParams, "URLSearchParams", "blob", function(response, body) { return checkBodyBlob(response, urlSearchParamsData, false); });
+ checkResponseBody(urlSearchParams, "URLSearchParams", "arrayBuffer", 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&#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\xB2RL Bj
+8x\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xC0\xC4
+Ƞ\x81AAq\xF3 +I+(!#\x81\xA3\xC9x\x9C\xBD\x91\xCBj1\x86\xFF\x8CZ覴>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\xC2N\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<\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&\xD3\xCAkC2\x85y8\x8A\x96\xE7P\xA6j\xA5ؑՆ\x98)״--\x83=Uҏ*\xA8\x83ve^\xA5!\xD2]n\xBD\xCE\xD4ZYk\xF6\xB2O&\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\xCDF@\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"\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"^ Ls~Ոt\x8Bv\xF3p\xFD\xAA"\x9E_5\xDC@\x8A\xCCL\x92Kx\x9Cc```d\x82\xCB"\xEA\xF9 \xFA\x8Av\xAF1\x8C4~\xFDx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x84;\x88'\xA0\xB4&j\xA7100\xC6\xA1\xCE\xA2L\xC3\xD8Hf\xA0\x88anj\xA2\xAF\xD96b@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<oX+\xE1OS/2X<`\xD8
+cmap7B+\xC6head*6h\xCB/hhea4$U\xEBhmtx\xAC\xD0maxpPPname\x94l\x9C\xF6V>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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xC0Ȁ\x98_Y9j\x802\x8Ch}x\x9CőMj\xC30\x85\x9F\x9D\xE8\xA6\xF4\xDA⅃\xE4@Y5\xBC(\xC9&\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\xE5e\x91\xEA\xA4\xD2\xC3V\xF4J\xA8=\xEBB\xAE\x8E\xE4\x92\xF9\xB3\xEF*F\xF4\xAEG\xC8\xE8\xB6<\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&\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\xCDF@\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"\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\x87p\xE1\\x\x9Cc```d\x82\xCB"\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0>Ex\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\xA4#\x88'\xA0\xB4&j\xA7100\xC6i.0\xBF\xC0n\x83#\xB3\xD10\xA3(\xC3߫@\xB6+\x83\x90VҌ`\xC1\x95\xA7\xC4<Br8\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<`\xD8
+cmap,7B+\xC6head*6h\xCB/hhea4$U\xEBhmtx\xE8\xD0maxpPPname\x94\x95"\xD56postd \xFF\x863x\x9Cc`d``\xE2W\xFBu>\xC6\xF3\xDB|e\xE0f~a\xB8\xA2ꪊLC\x88$\xE2.x\x9Cc`d``~\xC1\xC0\xC0\x90&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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>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%<\xC1>\x9B%\x9C\xE3g\xF6;\xE1)\x93?        \x9F@\xE4\xCF        \x9F\xE2\x90\xFF\xC2-,zT1\xA8\xD1 @\xE0f\x8CH(\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>q/\xE9p\xF9Oqvti\xA8\xFE\xC0Y}\xAA\xC4\xC1ޕ\xD5h\xA1\xD8\xE9\xCE>\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\xCDF@\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&g\xE7\xA5E\x99\xB4\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kc7\xB0\xCA0*\xF0\xCB00\xC80*\xCA0p\xC80z10\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"\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0>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\x81Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD39\x95"@*`\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\xFCCFF \x84\xE6\2\xE2FFTMl{^\xB1\xBAMATH\x88lX'\xF9OS/2X<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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"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>\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>\xAE\x96\xB6K\xEB\xB6Z\xCCgR\\x8A\xBFl\xD4E\xA1d1^\xC7\xE3\xBF{7TtT<\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\xCDF@\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\x90ab`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"\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0>Ex\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xA1vc~%\xE26\xF3\xECf0A12+3\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3i\x95"@*`\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<`\xD8
+cmap7B+\xC6head)6h\xCB/hhea4$U\xEBhmtx\xC0\xD0maxpPPname\x94xn+9e\x90postD \xFF\x863x\x9Cc`d``b#\xB3H\xF7x~\x9B\xAF\xDC\xCC/\x80"WT]U\x91i(\xE0``Q\xD6\xDCpx\x9Cc`d``~\xC1\xC0\xC0\x90&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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}<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\xB0BL`\xB0Ǒ*)2Th#F\x87\xB6ǎ\x86\xA49"\x9Ed\xB43\xEE\xC6(\xB9\xA3\xB4\xF5krL\xCC\xFEX\xE84\xABD;TC1\x8F\xAAl>\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"/}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\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`dd4L+JL.\xC9\xCC\xCF\xD3MI\xCD\xCB\xCF\xCD\xCCK,\xC9/JO,\xB2Lt\x8BJsRK22\x93\xB3\xF3R\x8B\x8B+\x81"\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"\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0>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<Br8\x9DQ)T\xA1f\xF1\x81ͅ\x88\xC2h$p\xEBF\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<`\xD8
+cmap7B+\xC6head)6h\xCB/hhea4$U\xEBhmtx\xCC\xD0maxpPPname\x94\x82\x9B\xD7\xD4postP \xFF\x863x\x9Cc`d``\xE2+\xE9\xB5\xF1\xFC6_\xB8\x99_E\xAE\xA8\xBA\xAA"\xD3P\xC0\xC1\xC0\xA2\xE7\xCEx\x9Cc`d``~\xC1\xC0\xC0\x90&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xC0Ȁ\x98_Y9j\x802\x8Ch}x\x9C͒\xCFj\xC20ǿmU\xD8E\xF6#\x97\x81*\x89\x9E&\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#܇\xC2sI\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"oKv\x8D#Y\xEA\xA7^1Y\xD8R\x94u>6d\x95\xAE+\xE1}\x90WiV\x8CW\xB2\xD4;U\xA6VW\xA6P\xB9]\xE9c\x99p\xCE\xE3강\xB6P٦\x94\xC6\xD2\xE0o:\xF9I37\xEBdE"\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\xCDF@\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\x857\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"\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0>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,>\xB0\xB9Q\x8D\x8E\x97Z\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<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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\xBBQN\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<皌\x92\xFB\x8E\Øk\xAAFF\xFE&x\x85\x86\x99\x9F\xE9\xD5A\xA3\x8A<ټ\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<V\xCB\xCA:<\xD9M\xFC\xC95o++\\x90\xADB̮\x850o?om\xA9\xC5t"\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\xCDF@\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"\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0>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<Br8\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<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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<\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"r\xA9\xCEIJ\xF0\xD5r!.\x9CkJSx\xD30l͵
+\xE6\xBE\xE7e\xEC\xDD\xD3f\xB1\xA2\xCFQWMKO\xF2\xFCp\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<\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\xCDF@\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"\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0>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\xF3n\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<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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&䢝        \xC5\x89\xD7:QT\xE1@\xB7\xD2y\x9E\x83\x9D\xCE\xF2V&\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"\xB6p9\xD7/Ƣ\xAE삼K6L9\x9B\xB2\xDF5\x92\xC4(<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\xCDF@\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"\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0>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< \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<`\xD8
+cmap7B+\xC6head*6h\xCB/hhea4$U\xEBhmtx\xC0\xD0maxpPPname\x94wnր>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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xC0Ȁ\x98_Y9j\x802\x8Ch}x\x9C͒\xBDn\xC20\x85O@\xEARu\xAD\xD4\xC1KU\x82l\x90\xD8C\xDD\xCAL9\x89\xC4\xC8v\x86>C\xF7>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<y%eԹ\xA2ݣ\xF7j9\xC2&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!>\xE5*x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCDF@\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"\xEA\xF9 \xFA\x8A\xAA\xAB*\x
8C0>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\x83AH\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<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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>I\xE7\xDC?\xD7x\x86@\xF3\xDDcY\xA0\x87s\xE4\xB7x\x8B\xDCx\x8A\xDCFO\xBCF\xEE\xE0&\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"痒\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        >\xEC\x8E\xA0C\xDBC\x96&\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\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94I+JL.\xC9\xCC\xCF\xD3-*\xCDI-\xC9\xC8L\xCE\xCEK-.64F&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&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"\xEA\xF9 \xFA\x8A\xAA\xAB*\x8C0>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\x83AH\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"W\xB4\xB2!\xD3\xCC/\x84;\x80\x88        x\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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<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\xCDF@\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,=<\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&\x96d\xF8\xFA(8\xE7'g&\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"\xBFjD\xBAE\xBBy\xB8~\xD5ϯn \xC5\x87R{?x\x9Cc```d\x82\xCB"\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&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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>@ߡ\x93\xDA[)\xB4\xB8a\x99\xDFLf&\x93\x99\xB8\xC6\xCE\xDF-V\x81\xBAx+\xA1\xC3:\x81\x98\xB1\xB7\xC0Mt\xA3\x87\xC0-\xDCDO\x81\xDBd\xFF Oּ"\xED\xDEG9fX\xA2a\x8A\xF7\xC0+<\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"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\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`ddT\xCD\xC9\xCC\xCD,)\xD6\xCD\xC9/O-\xB3\x93\x8BSs2\xF3RS\x8A\xF2r3\xF3\x8C+\x99t\xF03
\xFC\x90a\xFC!\xCB\xF4C\x8E\xF9\x87Kcw\xF7\xAF\x9A_5\xAC2O\xF9ed^        \xCA0\x88\xC90\xAA
+1\xB0\x80\xB4p1\xE833\x94\x97\xE6\xE6&\x96d\xE6\xE79\xE7Te\xA6g\x94(h$k*\x9A)\xF8&\x96d\xF8\xFA(8\xE7'g\x82\xE3"\xA2\+\x8C\x8C\xEĎ\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"ݢ\xDD<\\xBFj\x80\x88\x87\xE7W+7\x90\xE2O\xCBo\x84x\x9Cc```d\x82\xCB"\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"
+\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@<Q\xAByx\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xC0\xC4Ƞ\x81AAI\x90\xF9\x90\x95\x83\xA4\x80\x90v\x86Sx\x9C\xB5\x91\xBDj\xC30\xC7\xFFr\x9C@)\x94,\xDD<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"\xED\xD1E\xF5̐\xC2xp\x8Fw\xCFv\xED9D\xCA\xDE<\xC1\x83\xB1\xE7\xD2`\x854Z)\x8BB\x89
+䘒L 1'\xDA"#KErC\xDAmM^\xCA\xDD+\xE2X\xE9\xF6hTYY>ɧ<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\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94\xCD\xC9\xCC\xCD,)\xD6\xCD\xC9/O-\xB3\xD3r3\xF3++\x99t\xF03\xFC\x90a\xFC!\xCB\xF4C\x8E\xF9\x87Kcw\xF7\xAF\x9A_5\xAC2g\xF9ed.        \xCA0\x88\xC90\xF2
+1\xB0\x80\xB4p1\xE83x3\xA4\x97\xE6\xE6&\x96d\xE6\xE79\xE7Te\xA6g\x94(h$k*\x9A)\xF8&\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<\xEFW\x8DH\xB7h7ׯ \xE2\xE1\xF9U\xC3+\xA4x"dix\x9Cc```d\x82\xCB"\xEA\xF9 \xFA\x8A\xF6o8+;\xFEQx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk"\x84\xB4~\xE0P;\x8D\x81\x811\x8E3\x8D j\xC14\x8C\x8D.\x8F\xCE6BŌ\xA2\xAF\xD96b@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&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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>B_\xA1\xF7>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\xCDK\xD8\xC8        \xA6x\x8F\xDC\xC0#\xBB\x8B\xDC\xC42a\x91[\xE0I\xB9M\xFEg\xCCaP\xE1D*{\xE4\xF0\xE0\xE8a\x87>\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
7k:\xD8E\xB0Gt\xAAz\xE0\xA0\xED]z\xAC*eo3\xA7\xBATV;U\xE8r$E\xFDa\x83\x94\xE1\xDA>̖\x8A\xA7B\xC9\x94ɩ\xFC\xDF.zV\x93\x98\x90\x8A$;\xFDj\xA6\xF4c\xF7\x8A\x82O\xF9oJBar\x92J\x91\xD6\xBAx;6A\xC0\xC57\xC3C\xAAE;_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\xCDF@\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\xAC2O\xF9ed^        \xCA0\x88\xC90\xAA
+1\xB0\x80\xB4p1\xE833\x94\x97\xE6\xE6&\x96d\xE6\xE79\xE7Te\xA6g\x94(h$k*\x9A)\xF8&\x96d\xF8\xFA(8\xE7'g\x82\xE3"\xA2\+\x8C\x8C\xEĎ\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"ݢ\xDD<\\xBFj\x80\x88\x87\xE7W+7\x90\xE2V\xD9o\x8Dx\x9Cc```d\x82\xCB"\xEA\xF9 \xFA\x8A\xF6o8+;\xFEQx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJkB(\xE1<j\xA7100\xC6a\xA6D-\x98\x86\xB1\xD1\xE5\xD1\xD9F\xA8\x98Q\x94\x81\xE1\xEFU ۆ\x81\x83AH\xABiF\xB0JF0D\xE5\xA91\x83\x83\x83NWAT\x8AU\xA8\x80Y|`s!\xA20        4\x83y\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@<F5x\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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\x81M\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\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94\xC9\xC9\xCC\xCD,)\xD6--(H-\xB3\xD3r3\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&\x96d\xE6\xE79\xE7Te\xA6g\x94(h$k*\x9A)\xF8&\x96d\xF8\xFA(8\xE7'g\x82\xE1q>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"\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\xD96b@ZH3\x82U2\x82!*O\x88y\x84$\xE4p\xBA
+\xA2R\xA8B\xCC\xE2\x9B\x85\xD1H\xEFQ\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+\xB9L QD'x\x9Cc`d`\xE0<\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>\xDE\xFB\xB8\xF3w\xB0\xF4>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&\x8B#\xB1\xA8*\xBD\xCD7&ה\xED\xAC\xDA \xC0\x9E\xCE        \xE3&\xBF\xD9'\xCCٴ\x80\sg\xFA_U\x88\xB1Ua\xA7\xEC\xF3"ɒ&\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\xCDF@\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>\xBE\xDF1,\xBFj~\xD5\xFC\xABa\xE3\xFBU#\xD2-Z>\xFF\xE7\x96n\xB6n.\x8Fc[x\x9Cc```d\x82\xCB"\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>+wOFFOTTOxCFF \x88/\xBEQ\x913\x80FFTM\xB8{kBbMATH\xD4\x94\x8A9#"zOS/2\@`2cmap,CJD(\xE1\xDEhead.6]kwhhea8$=\xEBhmtxh\xD0maxpTPname\x9C\x8E\xAD\x9A&\x91epostp \xFF\x863x\x9Cc`d``b\xBD0\xCE\xD9\xF1\xFC6_\xB8\x99_E\xAEh\xF7V"\xD3\xCC/\xF8)&+y        nx\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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&t\xD9\xF1\xF8\xE1\xB6GF\xA3,r\x89\xAE\xBB\xEEz\x90\x9E\xA1ɲ\xDF\xC8"\xFBZ<b\xF4~\x92\xDE?==\xF0        \x8E\xDF%\x91\x8C\xF1;r\x8AO\xC96r\x86\xC7\xF4.\xF2\xE3\xF45\xF2>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"+\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        &x\x9Cc`f\x83\xFF\xCDF@\x8A\x91+(U\xB9x\x9C\x9D\x90\xBFNA\xC6g\xE0#\xA7D\x90bOm\xA4\x80\xE8Y\xD9y\xCB\xF3\xD8\xC0\xE4\xC8\xDDb\xA2\xD9\xDE?\xE7CPX\xF86\xFBT>β!Ļ\xC4XP2\x99\xF9&\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>L\x8Cc-\x885\xDD"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"\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< \xE6ab\x90`\x90\xC3\xE9*\x88J?\x860& K\xA8Z..\xC3\xC0\xC2\xC0\xC4\xFC\x92\x81\x99\xFD"\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\xBCK\xF6\x93postd \xFF\x863x\x9Cc`d``b\xAB쮯\xF1\xFC6_\xB8\x99_E\xAEh\xF7V"\xD3\xCC/\xF8)&8\x9C
+jx\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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&\xB2\xDDJy6&f\x9E\x87\x89g\xE1\xE2\x98        \xA4Ɗ\xEF\xE7\xF3\xDD\xF9|>\x97xG\x80\xF6\xBB\xC1\xCAs\x80>=\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>\xD2\xE6*\xDD\xA41\x824\xF8ˌ~\x98\xC9\xD2U\xD6:\xA9\xE9<\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        &x\x9Cc`f\x83\xFF\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`dd4+JL\xC9LN\xCC\xD1M\xC9,.\xC8I\xAC,.\xA9\xCCI-K-*        \xA6'\x98\xE8\x95椖dd&g\xE7\xA5E\x99\xF4~\xF03\xFC\x90g\xFC\xA1\xC0\xF4C\x91\xF9\x87Kcw\xF7\xAF\xFE\xAC2\x8C:\xFC22\x8C\xE6\x822b2\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"\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&\x85e%postX \xFF\x863x\x9Cc`d``\xE2ͫV\xCA\xC6\xF3\xDB|e\xE0f~a\xB8\xA2\xDD[\x89L3\xBF\xE0_\xA48\x98@<:y
+ix\x9Cc`d``~\xC1\xC0\xC0\x90&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"LFG\xB2\xC1\x851("\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-<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<\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&\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        &x\x9Cc`f\x83\xFF\xCDF@\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"\xF3        \x96\xC6\xEE\xEE_52\xFCXe\xF9\xF8ed%e\xC4d{\x85\xD8Az8x\x84\xC4l\xD2&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"\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< \xE6ab\x90`\x90\xC3\xE9*\x88J?\x860& K\xA8Z..\xC3\xC0\xC2\xC0\xC4\xFC\x92\x81\x99\xFD"\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"W\xB4{+\x91i\xE6\xFC\x80\x88        \xBAx\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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        ><\x87\xB8R\xCF\xC2+\xCF=$\xE1\xA7\xE7>N\xA3\xCF$\xD1;5\x83\xDEW\xF7Ϊ\xE39\xAC\xE7\x8F\xC1\xB1\xE7o\xC1\xAB\xE7\xF2\xF0\xC5s":\xF3<@\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&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'<\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        &x\x9Cc`f\x83\xFF\xCDF@\x8A\x91+(U\xB9x\x9C\x9D\x90\xCFN\xC2@\xC6g\xA0\x82\x91\xD2*䰉U.z\xA0)<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<*ʦ\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<n\xF5\xAFn&\xB1\x90K\x81B\xA4Q+\xD5L\xEDu\xB3$V\xAB\xBA\\xA6\x8Bղl\xD90\xABb\xAC)\xAE\xF8\x9A\x97\x8C\xE4\xE1\x90\xF2\xD7&\xA9|n3ɉ\xE2\xFBq=\xD6w\xCFR\xD7\xAFd\xAD\xFA+\xF2\xAC\x9Ax\x9Cc```d\x82\xCB"\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\x83AH\xAAiF0\x9FQy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95"~aL@\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"\xD3\xCC/\xF8)&I        \xADx\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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>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\xD55+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&s#\xE5\x88s\x9A\xC3N6\x85J\xCBJֵ\xA0\xFCm\xF2\x9F&]\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"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        &x\x9Cc`f\x83\xFF\xCDF@\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"\xF3        \x96\xC6\xEE\xEE_52\xFCXe\xC5\xF9ed\x95e\xC4d\xA7        1\xB0\x83\xF4p0\xF021\x883\xD80d1̀ZZ\x9CY\x95j"\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"\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Ҍ`>#\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"W\xB4{+\x91i\xE6\xFC\x80\x88\xF1v\xCAx\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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"\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>\xAF\xEB\xA9RM\xE8\xD9?\xB3\x96\xAEb\xEB\xACa߹\xEBvL\xB5Č\xFF\xFFkl\xF3"\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        &x\x9Cc`f\x83\xFF\xCDF@\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,=<\x8C\xDDݿjd\xF8\xB0\xCA0\xDC\xE0\x97a`\x90ax,(\xC3 &\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<\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"\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\@`2cmapCJD(\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@<IB
+\xBBx\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xC0\xC4Ƞ\x81AAI\x8A\xF9\x90\x95\x83\xA4\x80\x90w\x8B\x\x9CŒ\xBFj\xC30\xC6?;\xA0K\xE9#\xA8C!&8H\xA1\x84\x90-+x(ɒ!\xBBq\x84-"#)\x81L}\x81\xBEH\x97>F\x97\xBEB\xC7>@\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&p\x8C'\xFCn\xE15Znc\xF7w\xC0\xE2\xB7\xC0]\xB2a\x8DG:E\xA1D\x86
+ʕa\x81\xD19\xEDT4\xCFi5\x85\xA5\xA1\xC9Ky\xBB"\xDE3]\x8D*+\xC7zE\\x8C\xD8"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<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        &x\x9Cc`f\x83\xFF\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xD4*JL\xC9LN\xCC\xD1-K-*1\xD2\xCCt\x8BJsRK22\x93\xB3\xF3R\x8B\x8B+\x81"\x8CL\x8Cz?\xF8~\xC83\xFEP`\xFA\xA1\xC8\xFCC\x82\xA5\x87\x87\xB1\xBB\xFBW\x8D\xFFVF~FaA1\xC6v!v\x90^!q\x86T\x86>\xA8}řU\xA9\x86 \xC2D;\xE7Te\xA6g\x94(h$k*\x9A)\xF8&\x96d\xF8\xFA(8\xE7'g&\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"\xDC;\xD0E\xF8\x80D~Ոt\x8Bv\xF3p\xFD\xAA"\x9E_5\xDC@\x8A\x9
A\xA8\x8EUx\x9Cc```d\x82\xCB"\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Ҍ`>#\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<`\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&\xBA\xAFx\x9Cc`d``~\xC1\xC0\xC0\x90&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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>\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&q\xA6\xA0\x9B\xA5\xAE\xFE[I\xA5E\xCCY2J\x8A\x8C\xEB\x8Ew\xAD\xDF}\xC6̢\xB0ieJgc[&i\x96\xEC\V57c\xA5j\xEB\x9F\xC3\xFC(_\xF9\x9C\xDF+v"\xF3\xF5)\x90\x98s\xFE7\xEBF\xAD1\xA5F\xF3u\xAB\xE2\xE0VE\xB5\xCF\xE4h\xA8\xE4\\xFEV\xCDzk\xD7m=Y\xB7A\xD8<\xA8\xF4\xED\x9BД\x82-\xFD\xF9\x88R)=\xAC\xB3:U&\x9F\x9EGx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCDF@\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~>\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>\xBE_5"ݢ\xDD<\LO\xF5x\x9Cc```d\x82\xCB"\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&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<`\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&,v\xD6x\x9Cc`d``~\xC1\xC0\xC0\x90&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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>A_\xA6k\xA2\xF4,\xAB\x85.\xA5\x94q\xBF;\xDD}\x96Np\x85g04\xDFV\x9E\xBAx\xF1\xE0\x96\xDDxna\xCE>\xE3mt\x83\xC8s\xD7\xC1\xA3\xE7\x8A\xBFQ&k_\x92w\xEF\xAAjf\x88`<\x98\xE0\xD5sl⹍\x88\xBD{\xEE\x80\xCF\x88\x82',\xA0Q\xE2D*
+;\xE4\xA8\xC0\xD1C\x8A>\xD9!$FDkĴ\x92\x93]\x917\x87\xA5\xA1)K\xB9\xB8".\x80\x85.OF\xED\xF2\x8A\xF7\xD2>
+9\xE2\xEB\xB8\xCA\xD7+>\xB7V\xA7*\xAE\x94\xA64Ku\xF5\xDFJ\xAA\xB4i\x91|\x8B&\xA4j\x91aO~AvK+\xF5.ΟҮ\xEA\x9BUV6\xB4Ǥ\xC1$\xB6\xD9^\xD9\xD6\xE8u֟\xE5\x94]\xBA3W\xCE\xEA\\xE6\xFA5\xA0B\x8E\xCD\xFF:e\xA3&1&+I~\xF8u+X\xEA\xA2Zj\xB3\xCB\xF8p \xF8\x8C\xFF\xA6\x94&ǡa}=g\xBF\x8B+        \x92kw\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\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`ddT-N.\xCA,()\xD6-.M\x820\x93\x8BSs2\xF3RS\x8A\xF2r3\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"\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"n\x843\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95"@*`\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<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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&\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"\x93\xB2W\xAE9]Y\x97^tY"0\xE0\xFCO\x95\x82B\x9Fu\x8Aq\xF4\xE52&f\xE7&&߮E\xAF+\xC5@\xFC\xDE+T?R2*\x8C>\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\xCDF@\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\x8CL\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"\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\xD96b@ZH3\x82M`CT\x9E
+\xF301H0\xC8\xE1tD\xA5P\x85
+\x98\xC56"
+\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<`\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<x\x9Cc`d``~\xC1\xC0\xC0\x90&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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->"\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"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ջҋ~>#\xA9R\xB1\xCE|\xB9^\x89\x99s&י׆\xDC\xE9\xEA\xD7*R:$\xB4\x8E\xD8~;\xF5!\xA7=\xC5>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>\xF9\xEA&\xE6\xE0\xC6\xEE
+1J1\xBFTF\xB7j\x92(\x99\xD4ݼL\xEB6T\xB0\xA5\xCD'\x8A\xA0P\xA1\xFC\xA6l
+\xEB\xE8ㄔjX\xA7t\x914>!\x9B\x96x\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\x94)N.\xCA,()\xD6-.M\x820K\xF2r+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\x8CL\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"\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,>\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"OS/2X<`\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"W\xB4\x8E+#\xD3P\xC0\xC1\xC0\xA2\xE8\xB5Px\x9Cc`d``~\xC1\xC0\xC0\x90&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xC0Ȁ\x98_Y9j\x802\x8Ch}x\x9C\xDDS1N\xC30}In\xE0        \x86Tv+\x81\xE8\x82*P+\xA1v힖*\xF1\x90:\x8A]Q\x8EУp`\xE6@\xBC8F\xB00\x81"\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>\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>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\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xF4(N.\xCA,()\xD6-.M*.-H-\x82\xF0\xD3r3\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&\x96d\xF8\xFA(8\xE7'g&\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"\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\xD96b@ZH3\x82M`CT\x9E
+\xF301H0\xC8\xE1tD\xA5P\x85
+\x98\xC56"
+\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<`\xD8
+cmap\xF47B+\xC6head*6s\xCF+hhea4$U\xEBhmtx\x94\xD0maxpPPname\x94]\x90"\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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)\xB4PY\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>\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<`\xE7\xDF9\x9D|=/(\xBE\xC1\x9E\xAC\x8A2\x91\x94\x8F\xB0Y\xADLcc{\xD8ك\xC9\xEB\xD6.R\xB3W\x95\x94B8\x97_D\xFD>\xDA\xCAW\xD8\xF8\xB5&}\xEE\xBB3&nj\xE6\xDFkj\xE3HLI\xED\xF6\xE2\xCF\xEEc\xA5\xABf\xA5\xEB"\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\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`ddT*N.\xCA,()\xD6-.M*.-H-\x82\xF0\xD3r3\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"\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&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<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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&\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=>\xD7\xF0\xE8M\xD71\xF7\xAF7 \xFC'\xC7g\xB4\xBFa\x83Gf\xD1X#A\x81"\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"\xE0ړcھ\xEF,\x99\xD9Һ\xA1\xBE\xA3\q\xA7\xA8tK\xFB\x81UI7a\xA3L\xA7\xB9+\xEC>\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\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xD4(N.\xCA,()\xD6-.-H-\x82p\x92\x8BSs2\xF3RS\x8A\xF2r++\x80\x80\x81\x91\x89\x81\x91A\xFB?\xC3i\xC62L?d\x99H\xB0\xF4\xF00v\xAB\xC3C~\x86'\x8222\x8C<B\xCC +j\xBE%\xCE\xF9\x95E\x99\xE9%
+ɚ
+F\x86f
+\xBE\x89%\xBE>
+\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"\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"n\x843\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95"@*`\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<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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&dt\xB8\x85\xDB\xE81p\x9B篌\xCDkz\xCB*\xABd\x81)\x8A\xC0\xDE7\xF0$d\xE0&\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>\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.=&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"?\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\xCDF@\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>\xBE_5"ݢ\xDD<\\xACU\xF6x\x9Cc```d\x82\xCB"\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,>\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<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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>\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>\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\xCDF@\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\x8CL\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"\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@7E\xFE^\xB2m8Ā\xB4
+\x90f\x9B\xC0\x86\xA8< \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        <CFF H\xC9\xD0\xD0\xE1FFTM{i\xB5\xB6MATH0jX \xFAOS/2X<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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"
+]J\xA1\x85X\x98\xFB\xDD\xE9\xEEt\xBA\x80+\xBC \xC2\xE9\xEB`8"\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ߵ>#\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
+>C\x91\x9F*>Ɠx\x9Cc```f\x80`F\xB0\xF2\xC1| \xCD\x84 \xBE\xC2\xFF\xFF\xF2\xFFC\xA8JF6' $?\xD4Ya\xD3x\x9Cc`f\x83\xFF\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`ddT+N.\xCA,()\xD6-.-H-\x82r22\xD3JJ\x92\x8BsRSL+\x99\xB4\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kc7\xB0\xCA0\xDC\xE6\x97a`\x90a\xB8'(\xC3\xC0!\xC3\xC8&\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"\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"n\x843\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95"@*`\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>+wOFFOTTOxCFF ,\xBC۷@\x92\xDCFFTM\xE8{i\xBE^MATHiX'\xC7OS/2X<`\xD8
+cmap\xDC7B+\xC6head*6s\xD7\xD3hhea4$U\xEBhmtxp\xD0maxpPPname\x94E\xD3\xE7\x9D"?post \xFF\x863x\x9Cc`d``\xE2s\xAB\xE2-\xE2\xF9m\xBE2p3\xBF\x8A0\\xD1:]\x8ELC\x88.\xB0        1x\x9Cc`d``~\xC1\xC0\xC0\x90&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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>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<݇\xA8\x9A\x86\xA8"\xB7p\x83\x97\xC8m<\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\xCDF@\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,=<\x8C\xDD@\xC0*ð\x82_\x86\x81A@\x86a\xB5\xA0\x87\xC3e!f\x905+?\xE7\xFC\x82\xCA"\x90A
+ɚ
+F\x86f
+\xBE\x89%\xBE>
+\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"\xEA\xF9 \xFA\x8A\xD6\xE9r+:\xFFx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\xA4#\x88'\xA0\xB4&\x91\xEA\x89F@<+J\xC3\xD80\x80.n\x843\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95"@*`\xD8\\x88(\x8CF\x82>\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<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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<\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>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>\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\xCDF@\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,=<\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"\xEA\xF9 \xFA\x8A\xD6\xE9r+:\xFFx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xE2W&\xDCA\x82\x99F@<+J\xC3\xD80\x80.n\x843\x8A20\xFC\xB
D
+d\xDB0p0\x88i \xCD6\x81Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95"@*`\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\x90lCFF @\xC2\xEA\xF1\xA9\x88?FFTM{i\xBE^MATH gX#\xDFOS/2X<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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&
+\xB6 \xE4q\xBAt\xEC3\xF4%\xFA\xDD\xFA\xFAY\x9DZh!F\xBF\xD3\xDDw\xBA;\xB8\xC0\xEA\xEF\xCFm<{p\x8Dw\xCF+\xC4\xE2\xC1sm\xF1湅\xCB\xE0\xCA\xF3\xDA\xC1\x8C\x91\xA2yN\xEBީ*\x88Pxp\x87W\xCF+<\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"_gVvҮ\x8C\x94\x8E\xE54\xB1\xD9t"\x87ei\xD2<\xB1\xB9aXIEB\xED!\xE6TZ.\x83-\xCF3fZ\xD1Z\xD0>0c\xCC\xFB\xAB\x85\xD2&\xE9&\x9CkͶ\xCC\xF2\x95]\x98\xC3.V\x8A\xAE?f\xF8Q;vu[\xB7\xEC~\xE9z\xEE1^b\xC0\xFF\xFF\x95\xD6:\x8D>\x9Av\xF8=C\x8C\xCDΎM\xB1^ʨ\xA7\xE4@\xFE\xDA}\xBAjV<\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\xCDF@\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,=<\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<\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"\xEA\xF9 \xFA\x8A\xD6\xE9r+:\xFFx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJk\xE2V"^@\xA2\x99F@<+J\xC3\xD80\x80.n\x843\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95"@*`\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<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xC0Ȁ\x98_Y9j\x802\x8Ch}x\x9C\xB5\x91\xBFj\xC30\xC6?9\xA0K(:e\xD0RH\xA0RH\x934[        x(ɚ]8\xC6Ilci\xF1V\xFA<\xA5O\xD0\xE8\xB5kϲ\xE8\xD6B\xB10\xF7;\xDD}\xA7\xD3        \xC0\xAF`h\xBFl<3\xF1\xE29\xC05>=wpϞ=w1d\x9E{\xB8\xEE<\xF71\x9E(\x93u/\xC8{t\xAA\x86\x96\xA8<\xB8Ż\xE7*6\xF0\xDCŒ\xBDy\xEE\x81W\x9E\xFBX\xD6(P\xA2\xA6*)2Xp\x8CcLv
+\x899\xD1\x8A"\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צ<\xAA\xDA\xD8\xFA\x98\xA4\xAA<\xE9|&E\xFFT\xEA\xA7"\x91\xBB\x89u\xB6"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<\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\xCDF@\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,=<\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<|\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"\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,>\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<`\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&Wn
+ x\x9Cc`d``~\xC1\xC0\xC0\x90&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xC0Ȁ\x98_Y9j\x802\x8Ch}x\x9C\x9D\x90\xBDj\xC30\x85\x8F\xF2\xEDP2\xF4D\xA1\x90R\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{Y5H\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<\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>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\xCDF@\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,=<\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<t1\x8CL\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"\xEA\xF9 \xFA\x8A\xD6\xE9r+:\xFFx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\x814pJkV*\xEF@\xA4\x99F@<+J\xC3\xD80\x80.n\x843\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCD6\x81Qy*@\xCC\xC3 \xC4 \xC1 \x87\xD3U\x95"@*`\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<`\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<-        \x86x\x9Cc`d``~\xC1\xC0\xC0\x90&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xC0Ȁ\x98_Y9j\x802\x8Ch}x\x9C\xBD\x92\xCFJ\xC3@ƿM\xFF\x80\xE2\xD9\xD3"(\xED!e\xD3J\xA1R\xE8A\xDAk\xEF\xA1M\x9B\xA5\xA5\xB2[!>\x8E\xE0Ƀ/\xE2\xDDG\xF1K\xB2xTPh\x960\xBFٙo\xB23x\x85@\xFD\xDC`\xEEY@\xE2\xCDs\x80+q{\xF1\xE2\xB9        \{n\xE12H<\xB7\xB9\xFF\xCEL\xD1<\xA3\xF7X\xA9J\x98 \xF7\xE0\x9Ex\xB7\x9E\x9B\x98\x88O\xCF-֙znc<a
+\x83\xABhl\x91\xC2\xF1\x94\xACХ\xEDC!\xB4@\xCCHJ;\xA7\xF7\xCBe\x98\xA5\xAB}M>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&1\xE6\xFBߞ\xEA*F\xD4G\xF4\xC3\xEF\xD9cfnf\xF2m"\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\xCDF@\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"\xB6\xB7\xECÐ\xBBކ2\xEFh\xF9\x8C\xFB\xC7-s\xE8\x8E_\xBC\xA9i\x9A\x80
+ dd%QdS\x95\xBAv\xCBc\xF0\x95"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\xF0AAlw!#\x81BġPE\xFD\xA5ǣ\xB7\x9EIR\x93Q&Q\xA6Px]\xABA-\xC8\xE7>\xDC\xD6U\xB1x\x9Cc```d\x82\xCB"\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<Br8]Q)T\xA1f\xF1\x81ͅ\x88\xC2h$k\xED<\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\x80CFF 0\xBD\xDB\xEE4\xACFFTM\xF0{i\xBE^MATHiX/\x97OS/2X<`\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&A\x80\x910?,GPx\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xC0Ȁ\x98_Y9j\x802\x8Ch}x\x9C\xA5\x90\xBDjA\x85\xCF\xF8i\x82\x85e\x8AiZ\xAC\xCCX(\xDA\xC1"hk\xBFY\xD4g\xD9\xDF%\xE4!\x92*m\xCA<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&\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\xCDF@\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,=<\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<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"\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@<s
+6x\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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<        
+B3$\xF3\x9B\xCD\xCC\xC7\xCC,\x80\xBC"@\xF5\xDC`\xEA9\x80\xC0\x9B\xE7\xD7\xF8\xF4\\xC3]\xF0\xEC\xB9\x9E{n\xE02|\xF4\xDC\xE4\xF93\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<\xCF\xC9;\xE0^\xEF\x8F&_gN\xB4\x92\xB6\xE8J\xD5\xB3\xD8e\xB3\xA9[\xAB\x93<v\xB9f\x9Ae\x85A\xCAoB\xC5"\x8AIDXP\xC7\xD14\xB6<Ϩ\xBBb\xB4d|\xA0~\x8F\xDD\xEBL\xEA\x92̺8\xD9D\xED\x9C\xDE\xDA,_\xB9\xA5>\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\xCDF@\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"\x9E        Y\xBE\xCA,2\xCD>\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!@<\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"\xEA\xF9 \xFA\x8A\xF6\xEF
R+<:]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<{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&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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&\xC4
+\xB6䉺\x94\xBEG\xA3c\xA1K鱭N\x85
+\xB1\xB0\xF4I:\xE7\xEA\xEA
+\xC05^ \xD0~\xF7X{\xE0\xD9s\x80\xBC{\xEE\xE0A<w1o\x9E{\xB8+\xA4\xE7>\xC1\x9EJѽ\xE2\xEC\xB1q\xD5,\xA1\xF4\xE0\xAF\x9E;\\xFD\xF0\xDCE$\x9E<\xF7 ŧ\xE7>\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>f\xC4zfH{\x84<\xDF0\x83㝨80r\x81\xB3\xA8*W&.\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&\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\xCDF@\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,=<\x8C\xDDݿj~հ\xCA0\x9C\xE3\x97
a`\x90a\xB8,(\xC3 &\xC3\xC8'\xC4\xC0\xD2\xC2\xCD`\xC0\xE0Ð\x91XT\x94_^\x94\x99\x9EQ\xE2\x9C_P        f(h$k*\x9A)\xF8&\x96d\xF8\xFA(8\xE7'g&\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<#3w\xB3\x80|\xEFW\x8DH\xB7h7ׯ \xE2\xE1\xF9U\xC3+\xA4x\xB9e-x\x9Cc```d\x82\xCB"\xEA\xF9 \xFA\x8A\xF6\xEFR+<:]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\x83AH\xABiF\xB0JF0D\xE5\xA91\x83\x83\x83N\xD7CT\x8AU\xA8\x80Y|`s!\xA20        \xF7PQ\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<{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&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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>a\x8D#άR"GA\x9D\xC0)F\x9C'\x90P\x98\x92\xD6H)8\xAF\xB8\x9A\xA3\xE6\xD0\xCC*\xDD~I\xAE\x80\x85>\x9EM\x99Vӑ\x98H5\xEB\xC4땘N\xCBĖ\x9Ai5\xFF)+6\xAB\x84\xB4C\xC4\xF3z\xD92\xB6g\xC5\xAC\с\xA2\x8Ff\xA0\xB6&\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<\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&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\xCDF@\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,=<\x8C\xDDݿj~հ\xCA0\\xE4\x97a`\x90a\xB8&(\xC3 &\xC3((\xC4\xC0\xD2\xC2\xCD`\xC0\xE0ː\x95XT\x94_^\x94\x99\x9EQ\xE2\x9C_P        f(h$k*\x9A)\xF8&\x96d\xF8\xFA(8\xE7'g&\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>#3w\xB3\x80\xFC\xEFW\x8DH\xB7h7ׯ \xE2\xE1\xF9U\xC3+\xA4x\xA5de\xDFx\x9Cc```d\x82\xCB"\xEA\xF9 \xFA\x8A\xF6\xEFR+<:]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\xD96b@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"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&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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&\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&\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<\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\xCDF@\x8A\x91+(U\xB9x\x9C}\x8F\xC1J\xC3@E\xDFk\xC6
+&\xA6*\xB6d1JЍ.*S\xA1ݗ.k?"\x84\xB6        \x822#"\xCC\xDE\xC5\xF89\xDD\xCEč\x9F3Bq\xEA\xF4r\xF7n\x9C\x8B@ "\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>\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>雮ڦ\xDDu\xCDi{t\xF4hrذW\xFDةk=\xD4љS\xDEQ\xE4T\xE8\xE3\xFCקd\x81x\x9Cc```d\x82\xCB"\xEA\xF9 \xFA\x8A\xF6\xEFR+<:]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<Br8]Q)T\xA1f\xF1\x81ͅ\x88\xC2h$\xB7y\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~&b\xEF\xFBFFTMx{l>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@<:#
+\xF1x\x9Cc`d``~\xC1\xC0\xC0\x90&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\xB6Bbc\xF2\x82D\x87TvAPu\xAB*u\x80\x96        u`K\x83\xD5d F\x8E[\xC1\xC2\xCB\xC0\xC0\xC4C\xF1<'\x8E\xCBH\x8D\xDDϾ\xF7_\xFF\xD8\xC7;"4\xDF1f\x81#\\xE0#pI\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|>\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\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`dd\xB4(\xCDKI-\xCA/K-\xD2MLNN\xCD+IJ,N\xCDH\xCDL\xCF(1100\xD0\xC9$%\xA5V\x94%&U%\x99t\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kcw\xF7\xAF\x9A_5\xAC2\x8C\xC2\xFC22\x8CR\x822b2\x8CB\xCC -j\xB1S\x9C\xF3*\x8B@v(h$k*\x9A)\xF8&\x96d\xF8\xFA(8\xE7'g&\x96d\xE6\xE7\x91\xE92r=\x8CX\x95\x94Mݻ\xF7\xFE8\xB5\x97q\xEFޟ[\xF62\xEF\xFB%\xF1S\xEF\x9F\xDB\xDE?D\x9C\xFA\xB9\xE5\xCF)v>>\xA0O\x81\x98\xB9\x9B\xE4\xE55lXD~Ոt\x8Bv\xF3p\xFD\xAA"\x9E_5\xDC@\x8A5\x88x\x9Cc```d\x82\xCB"\xEA\xF9 \xFA\x8A\xF6\xEFt+;\xAEAx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\xF80'\xA0\xB4&j\xA7100\xC6\xA1\xCE\xA2L\xC3\xD8h\xF2\xDC;\x90\xD42 \xA9\x85bFQ\x86\xBFW\x81l1
\xAD\xA4\xC1*\xC1\x95\xA7\xC4<Br8]Q)T\xA1f\xF1\x81ͅ\x88\xC2h$\xE7mP\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>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&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xA0̀\x98n0\xBF\xB2r\xA0"\x8Cp9 d\x84W\xDCx\x9CՓ\xC1J1\x86\xFF\xED֢\xF1\xE65\xA1\xB7$\xA5\xF1""\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&rU\xEAp\x8B-^\xA5\xC4<\xFA\xC81\xA0AB1k\x8194W
+\xEAG\xB7\xA8)\x96Ve\x98/\xC9\xE0\xCEn_]\xB9.\xBC\xE8\xE71\x92j"\xE6\xDAk\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\xCDF@\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<\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<\xFC\xAF\x86+\x8Bȯ\x91n\xD1n\xAE_5@\xC4\xC3\xF3\xAB\x86H\xF1\xBDN\x86x\x9Cc```d\x82\xCB"\xEA\xF9 \xFA\x8A\xF6\xEFt+;\xAEAx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\xF80'\xA0\xB4&j\xA7100\xC6\xA1\xCE\xA2L\xC3\xD8P\xA0\xF5*\x86\xAC\x96I-3\x8A20\xFC\xBD
+d\xDB0p0\x88i \xCDV\xC9\x86\xA8< \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>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"W\xB4\xA7#\xD3\xCC/\xC0\xE2L ,
+\x9Cx\x9Cc`d``~\xC1\xC0\xC0\x90&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
+>\x851n|%\x9F\xC3:%q\xAB\x89&\xF4\xA49_{.=\xBD\xB8\xC4"\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&~\xC180K\x89
+8\xB4\x91\xA3C݃D\x8A;\xD2-\xF5\x8C\xA31,Eӫ\xF4\xF3%yL\xF4\xC3\xC1\x94\x9Bv\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>+\xA9$\xF9]\xF9ҞvC\xAEfm\xC8R{܆(<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>_꯬>>,\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\xCDF@\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<!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,"\xBFjD\xBAE\xBBy\xB8~\xD5ϯn \xC5^Ԋ\x8Fx\x9Cc```d\x82\xCB"\xEA\xF9 \xFA\x8A\xF6\xEFt+;\xAEAx\x9Cc`d``\xE0bx\xC0\xA8\xC7\xC0`\xC3z\x87\xF80'\xA0\xB4&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,>\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>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@<6
+\xD3x\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\xA0̀\x98n0\xBF\xB2r\xA0"\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^&\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ƨ8Y\x85_/\x88\xD7\xC0\x83\xD9\xECm\xB1ʝhgѓ\xE9@̔\xCBgS1\xAE*\x93\xCA\x86\xB4-\xB9Kh\x9Eh\xB0\xF36a\x96\x8CCs\xC7aA\xAF"\xCE9\x8F\x9A\xFATR\x8F\xE4[tͳ!C\xAD!\xA3_\x92\xAFx\x9Fa\xE0c\xBB^jkv\xDA&*\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\xEBGb\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\xCDF@\x8A\x91+(U\xB9x\x9Ccd`aa`dd4/\xCDKI-\xCA/K-\xD2MLNN\xCD+IJ,N\xCDH\xCDL\xCF(1100\xD0K'%\x94d&'\xE6\xA4'\x98\xC5\x99t\xF03\xFC\x90f\xFC!\xC3\xF4C\x96\xF9\x87Kcw\xF7\xAF\x9A_5\xAC2\x8C\xFC22\x8C\xE2\x822b2\x8C\xA9B\xCC -j1\x93\x9C\xF3*\x8B@V(h$k*\x9A)\xF8&\x96d\xF8\xFA(8\xE7'g&\x96d\xE6\xE7\x91\xE702\xBD\x8CX\x95\x94Mݻ\xF7\xFE8\xB5\x97q\xEFޟ[\xF62\xEF\xFB%\xF1S\xEF\x9F\xDB\xDE?D\x9C\xFA\xB9\xE5\xCF)v>>\xA0?\x81\x98\xB9\x9B\xE4\xE15lXD~Ոt\x8Bv\xF3p\xFD\xAA"\x9E_5\xDC@\x8A=j\x86\xB1x\x9Cc```d\x82\xCB"\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<F;\x87\x9E\x9Fpost \xFF\x863x\x9Cc`d``⅂\xB5!\xF1\xFC6_\xB8\x99_E\xAEh\x82L3\xBF`\xFC\xA48\x98@<H\xB9x\x9Cc`d``~\xC1\xC0\xC0\x90&AlFT\xC0P\xA02Px\x9Cc`a~\xC18\x81\x81\x95\x81\x81\x99\x87ك\x81\x81a\x84fr`\xB0f4\xD2\xAC\x9C0\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<wh\xC4;X%G\x8A%$\xFAXc@@AcBZ"\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&\xE9~Bצt\xD22"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\xCDF@\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,=<\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"ݢ\xDD\xDD?:\xBAٺy\xB8\xF5/Gtx\x9Cc```d\x82\xCB"\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>+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Location interface Security</title>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="https://html.spec.whatwg.org/multipage/#security-location" />
+ <meta name="assert" content="access location object from different origins doesn't raise SECURITY_ERR exception" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>Access location object from different origins doesn't raise SECURITY_ERR exception</p>
+ <div id=log></div>
+ <script src="/common/get-host-info.sub.js"></script>
+ <script>
+ var runTest = async_test("Accessing location object from different origins doesn't raise SECURITY_ERR exception").step_func_done(function() {
+ var frame = document.getElementById('testframe');
+ frame.setAttribute('onload', '');
+ frame.contentWindow.location = get_host_info().HTTP_REMOTE_ORIGIN + "/";
+ });
+ </script>
+ <iframe id='testframe' onload="runTest()">Test Frame</iframe>
+ <script>
+ document.getElementById('testframe').setAttribute('src', get_host_info().HTTP_REMOTE_ORIGIN + '/');
+ </script>
+ </body>
+</html>
</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>+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>HTML Test: Window Security</title>
+<link rel="author" title="Intel" href="http://www.intel.com/" />
+<link rel="help" href="https://html.spec.whatwg.org/multipage/multipage/browsers.html#the-window-object" />
+<link rel="help" href="https://html.spec.whatwg.org/multipage/multipage/timers.html#timers" />
+<link rel="help" href="https://html.spec.whatwg.org/multipage/multipage/webappapis.html#atob" />
+<link rel="help" href="https://html.spec.whatwg.org/multipage/#windowsessionstorage" />
+<link rel="help" href="https://html.spec.whatwg.org/multipage/#windowlocalstorage" />
+<link rel="help" href="https://html.spec.whatwg.org/multipage/multipage/browsers.html#window" />
+<link rel="help" href="http://dev.w3.org/csswg/cssom/#extensions-to-the-window-interface" />
+<link rel="help" href="http://dev.w3.org/csswg/cssom-view/#extensions-to-the-window-interface" />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<div id="log"></div>
+<script>
+var t = async_test("Window Security testing");
+
+function fr_load() {
+ fr = document.getElementById("fr");
+
+ t.step(function () {
+ //SecurityError should be thrown
+ [
+ //attributes
+ {name: "applicationCache"},
+ {name: "devicePixelRatio"},
+ {name: "document"},
+ {name: "external"},
+ {name: "frameElement"},
+ {name: "history"},
+ {name: "innerWidth"},
+ {name: "innerHeight"},
+ {name: "locationbar"},
+ {name: "localStorage"},
+ {name: "menubar"},
+ {name: "name"},
+ {name: "navigator"},
+ {name: "onabort"},
+ {name: "onafterprint"},
+ {name: "onbeforeprint"},
+ {name: "onbeforeunload"},
+ {name: "onblur"},
+ {name: "oncancel"},
+ {name: "oncanplay"},
+ {name: "oncanplaythrough"},
+ {name: "onchange"},
+ {name: "onclick"},
+ {name: "onclose"},
+ {name: "oncontextmenu"},
+ {name: "oncuechange"},
+ {name: "ondblclick"},
+ {name: "ondrag"},
+ {name: "ondragend"},
+ {name: "ondragenter"},
+ {name: "ondragleave"},
+ {name: "ondragover"},
+ {name: "ondragstart"},
+ {name: "ondrop"},
+ {name: "ondurationchange"},
+ {name: "onemptied"},
+ {name: "onended"},
+ {name: "onerror"},
+ {name: "onfocus"},
+ {name: "onhashchange"},
+ {name: "oninput"},
+ {name: "oninvalid"},
+ {name: "onkeydown"},
+ {name: "onkeypress"},
+ {name: "onkeyup"},
+ {name: "onload"},
+ {name: "onloadeddata"},
+ {name: "onloadedmetadata"},
+ {name: "onloadstart"},
+ {name: "onmessage"},
+ {name: "onmousedown"},
+ {name: "onmousemove"},
+ {name: "onmouseout"},
+ {name: "onmouseover"},
+ {name: "onmouseup"},
+ {name: "onmousewheel"},
+ {name: "onoffline"},
+ {name: "ononline"},
+ {name: "onpause"},
+ {name: "onplay"},
+ {name: "onplaying"},
+ {name: "onpagehide"},
+ {name: "onpageshow"},
+ {name: "onpopstate"},
+ {name: "onprogress"},
+ {name: "onratechange"},
+ {name: "onreset"},
+ {name: "onresize"},
+ {name: "onscroll"},
+ {name: "onseeked"},
+ {name: "onseeking"},
+ {name: "onselect"},
+ {name: "onshow"},
+ {name: "onstalled"},
+ {name: "onstorage"},
+ {name: "onsubmit"},
+ {name: "onsuspend"},
+ {name: "ontimeupdate"},
+ {name: "onunload"},
+ {name: "onvolumechange"},
+ {name: "onwaiting"},
+ {name: "pageXOffset"},
+ {name: "pageYOffset"},
+ {name: "personalbar"},
+ {name: "screen"},
+ {name: "scrollbars"},
+ {name: "statusbar"},
+ {name: "status"},
+ {name: "screenX"},
+ {name: "screenY"},
+ {name: "sessionStorage"},
+ {name: "toolbar"},
+ //methods
+ {name: "alert", isMethod: true},
+ {name: "clearInterval", isMethod: true, args:[1]},
+ {name: "clearTimeout", isMethod: true, args:[function () {}, 1]},
+ {name: "confirm", isMethod: true},
+ {name: "getComputedStyle", isMethod: true, args:[document.body, null]},
+ {name: "getSelection", isMethod: true},
+ {name: "matchMedia", isMethod: true, args:["(min-width:50px)"]},
+ {name: "moveBy", isMethod: true, args:[10, 10]},
+ {name: "moveTo", isMethod: true, args:[10, 10]},
+ {name: "open", isMethod: true},
+ {name: "print", isMethod: true},
+ {name: "prompt", isMethod: true},
+ {name: "resizeTo", isMethod: true, args:[10, 10]},
+ {name: "resizeBy", isMethod: true, args:[10, 10]},
+ {name: "scroll", isMethod: true, args:[10, 10]},
+ {name: "scrollTo", isMethod: true, args:[10, 10]},
+ {name: "scrollBy", isMethod: true, args:[10, 10]},
+ {name: "setInterval", isMethod: true, args:[function () {}, 1]},
+ {name: "setTimeout", isMethod: true, args:[function () {}, 1]},
+ {name: "showModalDialog", isMethod: true, args:["auto:blank", "dialog"]},
+ {name: "stop", isMethod: true},
+ ].forEach(function (item) {
+ test(function () {
+ assert_true(item.name in window, "window." + item.name + " should exist.");
+ assert_throws("SecurityError", 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];
+ }, "A SecurityError exception should be thrown.");
+ }, "A SecurityError exception must be thrown when window." + item.name + " is accessed from a different origin.");
+ });
+
+ //SecurityError should not be thrown
+ [
+ //attributes
+ {name: "closed"},
+ {name: "frames"},
+ {name: "length"},
+ {name: "location"},
+ {name: "opener"},
+ {name: "parent"},
+ {name: "self"},
+ {name: "top"},
+ {name: "window"},
+ //methods
+ {name: "blur", isMethod: true},
+ {name: "close", isMethod: true},
+ {name: "focus", isMethod: true},
+ {name: "postMessage", isMethod: true, args: [{msg: 'foo'}, "*"]}
+ ].forEach(function (item) {
+ test(function () {
+ assert_true(item.name in window, "window." + item.name + " should exist.");
+ 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("An unexpected exception was thrown.");
+ }
+ }, "A SecurityError exception should not be thrown when window." + item.name + " is accessed from a different origin.");
+ });
+ });
+ t.done();
+}
+
+</script>
+<script>
+onload = function() {
+ var frame = document.createElement('iframe');
+ frame.id = "fr";
+ frame.setAttribute("style", "display:none");
+ frame.setAttribute('src', get_host_info().HTTP_REMOTE_ORIGIN + "/");
+ frame.setAttribute("onload", "fr_load()");
+ document.body.appendChild(frame);
+}
+</script>
</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 <script id="script-svg">
+ 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>+<!DOCTYPE HTML>
+<meta charset=utf-8>
+<title>Document.currentScript</title>
+<link rel=help href="https://html.spec.whatwg.org/multipage/#dom-document-currentscript">
+<link rel=help href="https://html.spec.whatwg.org/multipage/#execute-the-script-block">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<div id="log"></div>
+<script>
+var data = {
+ "parse-inline" : [],
+ "parse-ext" : [],
+ "dom-inline" : [],
+ "dom-ext" : [],
+ "nested" : ["nested-outer","nested-inner","nested-outer"],
+ "script-exec" : ["script-exec-before-after","script-exec-before-after"],
+ "script-load-error" : [null],
+ "script-window-error" : ["script-error-compile","script-error-runtime"],
+ "timeout" : [null],
+ "eval" : [],
+ "xhr-test" : [],
+ "script-svg" : [],
+ "script-async" : [],
+ "script-defer" : [],
+ "script-async-false" : [],
+ "iframe-src" : [],
+ "cross-origin" : [null],
+ "document-write" : []
+};
+
+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 = "Script " + 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();
+ })
+}
+
+</script>
+
+<!-- Test parser inserted scripts -->
+<script id="parse-inline">
+verify('parse-inline');
+finish('parse-inline')
+</script>
+<script id="parse-ext" src="data:text/plain,verify('parse-ext')"></script>
+<script>finish('parse-ext');</script>
+
+<!-- Test DOM inserted scripts -->
+<script>
+var s = document.createElement("script");
+s.textContent = "verify('dom-inline');";
+s.id = "dom-inline";
+document.body.appendChild(s);
+finish('dom-inline');
+
+s = document.createElement("script");
+s.src = "data:text/plain,verify('dom-ext');";
+s.id = "dom-ext";
+s.onload = function() {
+ finish('dom-ext');
+}
+document.body.appendChild(s);
+</script>
+
+<!-- Test Nested scripts -->
+<script id="nested-outer">
+ verify("nested");
+ var s = document.createElement("script");
+ s.textContent = "verify('nested')";
+ s.id = "nested-inner";
+ document.body.appendChild(s);
+ verify("nested");
+ finish('nested');
+</script>
+
+<!-- Test script load error event listener -->
+<script>
+function testLoadFail() {
+ verify('script-load-error');
+ finish('script-load-error');
+}
+</script>
+
+<script src="http://some.nonexistant.test/fail" id="script-load-error" onerror="testLoadFail()">
+</script>
+
+<!-- Test for runtime and compile time errors -->
+<script>
+ window.onerror = function() {
+ verify('script-window-error');
+ }
+
+ var s = document.createElement("script");
+ s.id = "script-error-compile";
+ s.textContent = "{";
+ document.body.appendChild(s);
+
+ window.onerror = function() {
+ verify('script-window-error');
+ }
+
+ s = document.createElement("script");
+ s.id = "script-error-runtime";
+ s.textContent = "undefinedfn();";
+ document.body.appendChild(s);
+
+ finish('script-window-error');
+</script>
+
+<!-- Verify in setTimeout -->
+<script>
+ setTimeout(function() {
+ verify('timeout');
+ finish('timeout');
+ },0);
+</script>
+
+<!-- Verify in eval -->
+<script id="eval">
+ eval('verify("eval")');
+ finish("eval");
+</script>
+
+<!-- Verify in synchronous xhr -->
+<script id="xhr-test">
+ var request = new XMLHttpRequest();
+ request.open('GET','/',false);
+ request.send(null);
+
+ if(request.status === 200) {
+ verify('xhr-test');
+ finish('xhr-test');
+ }
+</script>
+
+<!-- Testing script within svg -->
+<svg>
+ <script id="script-svg">
+ verify('script-svg');
+ finish('script-svg');
+ </script>
+</svg>
+
+<!-- Test script async and defer -->
+<script id='script-async' async src='data:text/plain,verify("script-async"),finish("script-async")'></script>
+
+<script id='script-defer' defer src='data:text/plain,verify("script-defer"),finish("script-defer")'></script>
+
+<!-- Test async = false dynamic script loading -->
+<script>
+ var s = document.createElement("script");
+ s.id = "script-async-false";
+ s.src = "data:text/plain,verify('script-async-false');"
+ s.onload = function() {
+ finish('script-async-false');
+ }
+ s.async = false;
+ document.body.appendChild(s);
+</script>
+
+<!-- Verify in iframe javascript uri scheme -->
+<iframe src="javascript:parent.verify('iframe-src'),parent.finish('iframe-src')"
+ style="visibility:hidden;display:none">
+</iframe>
+
+<!-- Testing cross origin script -->
+<script>
+var s = document.createElement("script");
+s.id = "cross-origin";
+s.src = get_host_info(). HTTP_REMOTE_ORIGIN + "/html/dom/documents/dom-tree-accessors/cross-domain.js"
+s.onload = function() {
+ verify('cross-origin')
+ finish('cross-origin');
+}
+document.body.appendChild(s);
+
+</script>
+
+<!-- Testing document.write -->
+<script>
+document.write('<script id="document-write">verify("document-write"); finish("document-write");</' + 'script>');
+</script>
</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>+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>HTML Test: base_href_specified</title>
+<link rel="author" title="Intel" href="http://www.intel.com/">
+<link rel="help" href="https://html.spec.whatwg.org/multipage/#the-base-element">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<base id="base">
+<div id="log"></div>
+<img id="test" src="test.ico" style="display:none">
+
+<script>
+ var testElement;
+ var baseElement;
+
+ var otherOrigin = get_host_info().HTTP_REMOTE_ORIGIN;
+
+ setup(function() {
+ testElement = document.getElementById("test");
+ baseElement = document.getElementById("base");
+
+ baseElement.setAttribute("href", otherOrigin);
+ });
+
+ test(function() {
+ assert_equals(baseElement.href, otherOrigin + "/", "The href attribute of the base element is incorrect.");
+ }, "The href attribute of the base element is specified");
+
+ test(function() {
+ assert_equals(testElement.src, otherOrigin + "/test.ico", "The src attribute of the img element is incorrect.");
+ }, "The src attribute of the img element must relative to the href attribute of the base element");
+</script>
</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>+<!doctype html>
+<meta charset="utf-8">
+<title>data URL image</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+var c = document.createElement("canvas"),
+ con = c.getContext("2d"),
+ img = document.createElement("img")
+img.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAA+UlEQVR4nO3RoRHAQBDEsOu/6YR+B2sgIO4Z3919pMwDMCRtHoAhafMADEmbB2BI2jwAQ9LmARiSNg/AkLR5AIakzQMwJG0egCFp8wAMSZsHYEjaPABD0uYBGJI2D8CQtHkAhqTNAzAkbR6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPwJC0eQCGpM0DMCRtHoAhafMADEmbB2BI2jwAQ9LmARiSNg/AkLR5AIakzQMwJG0egCFp8wAMSZsHYEjaPABD0uYBGJI2D8CQtHkAhqTNAzAkbR6AIWnzAAxJmwdgSNo8AEPS5gEYkjYPwJC0eQCGpM0DMCRtHsDjB5K06yueJFXJAAAAAElFTkSuQmCC"
+img.onload = () => {
+ 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 < 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()
+}
+</script>
</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 <map> with name "simple" expected Element node <img src="/images/threecolors.png" usemap="#sImPlE" width... but got Element node <area shape="rect" coords="0,0,300,300"></area>
+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 <map> with name "passfield-killroyß" expected Element node <img src="/images/threecolors.png" usemap="#paSSfield-kil... but got Element node <area shape="rect" coords="0,0,300,300"></area>
+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 <map> with name "ГЛУПЫЙ" expected Element node <img src="/images/threecolors.png" usemap="#глупый" width... but got Element node <area shape="rect" coords="0,0,300,300"></area>
+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>+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>img usemap case-sensitive</title>
+<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
+<link rel="help" href="https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-a-hash-name-reference">
+<!-- See also: https://github.com/whatwg/html/issues/1666 -->
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<div id="log"></div>
+
+<img src="/images/threecolors.png" usemap="#sanityCheck" width="300" height="300">
+<map name="sanityCheck"><area shape="rect" coords="0,0,300,300"></map>
+
+<img src="/images/threecolors.png" usemap="#sImPlE" width="300" height="300">
+<map name="simple"><area shape="rect" coords="0,0,300,300"></map>
+<map name="SIMPLE"><area shape="rect" coords="0,0,300,300"></map>
+
+<img src="/images/threecolors.png" usemap="#paSSfield-killroyß" width="300" height="300">
+<map name="passfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="PASSFIELD-KILLROYß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="paſſfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="passfield-&#x212a;illroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="paßfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="paẞfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="passfield-killroyẞ"><area shape="rect" coords="0,0,300,300"></map>
+<map name="passfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="passfıeld-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="passfİeld-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+
+<img src="/images/threecolors.png" usemap="#глупый" width="300" height="300">
+<map name="глупы&#x438;&#x306;"><area shape="rect" coords="0,0,300,300"></map>
+<map name="ГЛУПЫЙ"><area shape="rect" coords="0,0,300,300"></map>
+<map name="ГЛУПЫ&#x418;&#x306;"><area shape="rect" coords="0,0,300,300"></map>
+
+<img src="/images/threecolors.png" usemap="#åωk" width="300" height="300">
+<map name="ÅΩK"><area shape="rect" coords="0,0,300,300"></map>
+<map name="&#x212b;ωk"><area shape="rect" coords="0,0,300,300"></map>
+<map name="å&#x2126;k"><area shape="rect" coords="0,0,300,300"></map>
+<map name="åω&#x212a;"><area shape="rect" coords="0,0,300,300"></map>
+
+<img src="/images/threecolors.png" usemap="#blah1" width="300" height="300">
+<map name="blah&#x2460;"><area shape="rect" coords="0,0,300,300"></map>
+<map name="bl&#x24b6;h1"><area shape="rect" coords="0,0,300,300"></map>
+<map name="bl&#x24d0;h1"><area shape="rect" coords="0,0,300,300"></map>
+
+<img src="/images/threecolors.png" usemap="#t&Eacute;dz5アパートFi" width="300" height="300">
+<map name="T&Eacute;DZ5アパートFi"><area shape="rect" coords="0,0,300,300"></map>
+<map name="T&eacute;&#x01F1;&#x2075;アパートFi"><area shape="rect" coords="0,0,300,300"></map>
+<map name="t&Eacute;dz5&#x3300;Fi"><area shape="rect" coords="0,0,300,300"></map>
+<map name="t&Eacute;dz5&#x30A2;&#x30CF;&#x309A;&#x30FC;&#x30C8;Fi"><area shape="rect" coords="0,0,300,300"></map>
+<map name="T&Eacute;DZ⁵アパートFi"><area shape="rect" coords="0,0,300,300"></map>
+<map name="T&Eacute;DZ5アパートfi"><area shape="rect" coords="0,0,300,300"></map>
+
+<img src="/images/threecolors.png" usemap="#ΣΣ" width="300" height="300">
+<map name="σς"><area shape="rect" coords="0,0,300,300"></map>
+
+<script>
+"use strict";
+setup({ explicit_done: true });
+
+onload = () => {
+ test(() => {
+ const image = document.querySelector(`img[usemap="#sanityCheck"]`);
+ 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="sanityCheck"] > 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="#sanityCheck"])`));
+
+ for (let image of images) {
+ test(() => {
+ 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("name");
+ const messageSuffix = name ? `; used <map> with name "${name}"` : "";
+
+ assert_equals(element, image, "The element retrieved must be the image, not an area" + messageSuffix);
+ }, `Image with usemap of ${image.useMap} should not match any of the areas`);
+ }
+
+ done();
+};
+</script>
</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 <area shape="rect" coords="0,0,300,300"></area> but got Element node <object data="/images/threecolors.png" usemap="#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>+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>object usemap case-sensitive</title>
+<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
+<link rel="help" href="https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-a-hash-name-reference">
+<!-- See also: https://github.com/whatwg/html/issues/1666 -->
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<div id="log"></div>
+
+<object data="/images/threecolors.png" usemap="#sanityCheck" width="300" height="300"></object>
+<map name="sanityCheck"><area shape="rect" coords="0,0,300,300"></map>
+
+<object data="/images/threecolors.png" usemap="#sImPlE" width="300" height="300"></object>
+<map name="simple"><area shape="rect" coords="0,0,300,300"></map>
+<map name="SIMPLE"><area shape="rect" coords="0,0,300,300"></map>
+
+<object data="/images/threecolors.png" usemap="#paSSfield-killroyß" width="300" height="300"></object>
+<map name="passfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="PASSFIELD-KILLROYß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="paſſfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="passfield-&#x212a;illroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="paßfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="paẞfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="passfield-killroyẞ"><area shape="rect" coords="0,0,300,300"></map>
+<map name="passfield-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="passfıeld-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+<map name="passfİeld-killroyß"><area shape="rect" coords="0,0,300,300"></map>
+
+<object data="/images/threecolors.png" usemap="#глупый" width="300" height="300"></object>
+<map name="глупы&#x438;&#x306;"><area shape="rect" coords="0,0,300,300"></map>
+<map name="ГЛУПЫЙ"><area shape="rect" coords="0,0,300,300"></map>
+<map name="ГЛУПЫ&#x418;&#x306;"><area shape="rect" coords="0,0,300,300"></map>
+
+<object data="/images/threecolors.png" usemap="#åωk" width="300" height="300"></object>
+<map name="ÅΩK"><area shape="rect" coords="0,0,300,300"></map>
+<map name="&#x212b;ωk"><area shape="rect" coords="0,0,300,300"></map>
+<map name="å&#x2126;k"><area shape="rect" coords="0,0,300,300"></map>
+<map name="åω&#x212a;"><area shape="rect" coords="0,0,300,300"></map>
+
+<object data="/images/threecolors.png" usemap="#blah1" width="300" height="300"></object>
+<map name="blah&#x2460;"><area shape="rect" coords="0,0,300,300"></map>
+<map name="bl&#x24b6;h1"><area shape="rect" coords="0,0,300,300"></map>
+<map name="bl&#x24d0;h1"><area shape="rect" coords="0,0,300,300"></map>
+
+<object data="/images/threecolors.png" usemap="#t&Eacute;dz5アパートFi" width="300" height="300"></object>
+<map name="T&Eacute;DZ5アパートFi"><area shape="rect" coords="0,0,300,300"></map>
+<map name="T&eacute;&#x01F1;&#x2075;アパートFi"><area shape="rect" coords="0,0,300,300"></map>
+<map name="t&Eacute;dz5&#x3300;Fi"><area shape="rect" coords="0,0,300,300"></map>
+<map name="t&Eacute;dz5&#x30A2;&#x30CF;&#x309A;&#x30FC;&#x30C8;Fi"><area shape="rect" coords="0,0,300,300"></map>
+<map name="T&Eacute;DZ⁵アパートFi"><area shape="rect" coords="0,0,300,300"></map>
+<map name="T&Eacute;DZ5アパートfi"><area shape="rect" coords="0,0,300,300"></map>
+
+<object data="/images/threecolors.png" usemap="#ΣΣ" width="300" height="300"></object>
+<map name="σς"><area shape="rect" coords="0,0,300,300"></map>
+
+<script>
+"use strict";
+setup({ explicit_done: true });
+
+onload = () => {
+ test(() => {
+ const object = document.querySelector(`object[usemap="#sanityCheck"]`);
+ 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="sanityCheck"] > 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="#sanityCheck"])`));
+
+ for (let object of objects) {
+ test(() => {
+ 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("name");
+ const messageSuffix = name ? `; used <map> with name "${name}"` : "";
+
+ assert_equals(element, object, "The element retrieved must be the object, not an area" + messageSuffix);
+ }, `Object with usemap of ${object.useMap} should not match any of the areas`);
+ }
+
+ done();
+};
+</script>
</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"> <!DOCTYPE html>
</span><span class="cx"> <meta charset=utf-8>
</span><del>-<title>radio group name compatibility caseless</title>
</del><ins>+<title>radio group name case-sensitive</title>
</ins><span class="cx"> <link rel="author" title="Denis Ah-Kang" href="mailto:denis@w3.org">
</span><del>-<link rel="help" href="http://people.mozilla.org/~jdaggett/tests/radiobuttonnamecase.html">
</del><ins>+<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
+<link rel="help" href="https://html.spec.whatwg.org/multipage/forms.html#radio-button-group">
+<!-- See also: https://github.com/whatwg/html/issues/1666 -->
+
</ins><span class="cx"> <script src="/resources/testharness.js"></script>
</span><span class="cx"> <script src="/resources/testharnessreport.js"></script>
</span><ins>+
</ins><span class="cx"> <div id="log"></div>
</span><ins>+
</ins><span class="cx"> <input id=r1 type="radio" name="sImPlE">
</span><span class="cx"> <input id=r2 type="radio" name="simple">
</span><span class="cx"> <input id=r3 type="radio" name="SIMPLE">
</span><span class="lines">@@ -43,33 +48,36 @@
</span><span class="cx"> <input id=r30 type="radio" name="T&eacute;&#x01F1;&#x2075;アパートFi">
</span><span class="cx"> <input id=r31 type="radio" name="t&Eacute;dz5&#x3300;Fi">
</span><span class="cx"> <input id=r32 type="radio" name="t&Eacute;dz5&#x30A2;&#x30CF;&#x309A;&#x30FC;&#x30C8;Fi">
</span><del>-<input id=r33 type="radio" name="t&Eacute;dz5&#x30A2;&#x30D1;&#x30FC;&#x30C8;Fi">
</del><span class="cx"> <input id=r34 type="radio" name="T&Eacute;DZ⁵アパートFi">
</span><span class="cx"> <input id=r35 type="radio" name="T&Eacute;DZ5アパートfi">
</span><span class="cx">
</span><span class="cx"> <input id=r36 type="radio" name="ΣΣ">
</span><span class="cx"> <input id=r37 type="radio" name="σς">
</span><ins>+
</ins><span class="cx"> <script>
</span><del>- var groups = [["r1" ,"r2", "r3"],
- ["r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13", "r14"],
- ["r15", "r16", "r17", "r18"],
- ["r19", "r20", "r21", "r22", "r23"],
- ["r24", "r25", "r26", "r27"],
- ["r28", "r29", "r30", "r31", "r32", "r33", "r34", "r35"],
- ["r36", "r37"]],
- groupName = ["sImPlE", "paSSfield-killroyß", "глупый", "åωk", "blah1", "tÉdz5アパートFi", "ΣΣ"];
- groups.forEach(function(group, index) {
- test(function(){
- group.forEach(function(radioId) {
- assert_false(document.getElementById(radioId).checked);
- });
- for (var i = 0; i < group.length; i++) {
- document.getElementById(group[i]).checked = true;
- assert_true(document.getElementById(group[i]).checked);
- for (var j = 0; j < group.length; j++) {
- if (j != i) assert_false(document.getElementById(group[j]).checked);
- }
- }
- }, "radio button group name = " + groupName[index]);
- });
</del><ins>+"use strict";
+const notGroups = {
+ "sImPlE": ["r1" ,"r2", "r3"],
+ "paSSfield-killroyß": ["r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13", "r14"],
+ "глупый": ["r15", "r16", "r17", "r18"],
+ "åωk": ["r19", "r20", "r21", "r22", "r23"],
+ "blah1": ["r24", "r25", "r26", "r27"],
+ "tÉdz5アパートFi": ["r28", "r29", "r30", "r31", "r32", "r34", "r35"],
+ "ΣΣ": ["r36", "r37"]
+};
+
+for (let notGroupLabel of Object.keys(notGroups)) {
+ test(() => {
+ const ids = notGroups[notGroupLabel];
+ const radios = ids.map(id => 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"> </script>
</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."
</span><span class="cx"> // "The start IDL attribute has the same default as its content attribute."
</span><span class="cx">
</span><del>- // basic - default should be 1
</del><span class="cx"> test(function() {
</span><del>- assert_equals(document.getElementById("basic").start, 1, "no start attribute provided -> 1");
</del><ins>+ assert_equals(document.getElementById("basic").start, 1);
</ins><span class="cx"> }, "Default start value for non-reversed list should be 1");
</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("decimal").start, 1, "start of .5 -> 1 (default)");
</del><ins>+ assert_equals(document.getElementById("decimal").start, 1);
</ins><span class="cx"> }, "IDL and content attribute parse start of '.5' correctly.");
</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("letter").start, 1, "start of A -> 1 (default)");
</del><ins>+ assert_equals(document.getElementById("letter").start, 1);
</ins><span class="cx"> }, "IDL and content attribute parse start of 'A' correctly.");
</span><span class="cx">
</span><del>- // basicRevGoodName - default should be 3
</del><span class="cx"> test(function() {
</span><del>- assert_equals(document.getElementById("basicRevGoodName").start, 3, "no start attribute provided -> 3");
- }, "Default start value (if none provided) for reversed list = child li elements.");
</del><ins>+ assert_equals(document.getElementById("basicRevGoodName").start, 1);
+ }, "Default start value (if none provided) for reversed list = 1.");
</ins><span class="cx">
</span><del>- // basicRevEmpty - default should be 3
</del><span class="cx"> test(function() {
</span><del>- assert_equals(document.getElementById("basicRevEmpty").start, 3, "start of A -> 3 (default)");
- }, "Default start value (if failed to parse) for reversed list = child li elements.");
</del><ins>+ assert_equals(document.getElementById("basicRevEmpty").start, 1);
+ }, "Default start value (if failed to parse) for reversed list = 1.");
</ins><span class="cx">
</span><del>- // lots - default should be 3
</del><span class="cx"> test(function() {
</span><del>- assert_equals(document.getElementById("lots").start, 3, "no start attribute -> 3 (default)");
- }, "Default start value for reversed list = child li elements (even with tons of other child elements).");
</del><ins>+ assert_equals(document.getElementById("lots").start, 1);
+ }, "Default start value for reversed list = 1 (even with tons of other child elements).");
</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("basicRevGoodName"), myLI = document.createElement("li");
</span><span class="cx"> myList.appendChild(myLI);
</span><del>- assert_equals(document.getElementById("basicRevGoodName").start, 4, "Adding child element to reversed list adds 1 to start value");
- }, "Adding child element to reversed list adds 1 to start value");
</del><ins>+ assert_equals(document.getElementById("basicRevGoodName").start, 1);
+ }, "Adding child element to reversed list does not change start value");
</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("basicRevTrue");
</span><span class="cx"> myList.removeChild(myList.children[0]);
</span><del>- assert_equals(document.getElementById("basicRevTrue").start, 2, "Deleting child element from reversed list reduces start value by 1");
- }, "Deleting child element from reversed list reduces start value by 1");
</del><ins>+ assert_equals(document.getElementById("basicRevTrue").start, 1);
+ }, "Deleting child element from reversed list does not change start value");
</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("start2").start, 2, "start of 2 -> 2");
</del><ins>+ assert_equals(document.getElementById("start2").start, 2);
</ins><span class="cx"> }, "IDL and content attribute parse start of '2' correctly.");
</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("negative").start, -10, "start of -10 -> -10");
</del><ins>+ assert_equals(document.getElementById("negative").start, -10);
</ins><span class="cx"> }, "IDL and content attribute parse start of '-10' correctly.");
</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("posFloatDown").start, 4, "start of 4.03 -> 4");
</del><ins>+ assert_equals(document.getElementById("posFloatDown").start, 4);
</ins><span class="cx"> }, "IDL and content attribute parse start of '4.03' correctly.");
</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("negFloatDown").start, -4, "start of -4.03 -> -4");
</del><ins>+ assert_equals(document.getElementById("negFloatDown").start, -4);
</ins><span class="cx"> }, "IDL and content attribute parse start of '-4.03' correctly.");
</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("posFloatUp").start, 4, "start of 4.9 -> 4");
</del><ins>+ assert_equals(document.getElementById("posFloatUp").start, 4);
</ins><span class="cx"> }, "IDL and content attribute parse start of '4.9' correctly.");
</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("negFloatUp").start, -4, "start of -4.9 -> -4");
</del><ins>+ assert_equals(document.getElementById("negFloatUp").start, -4);
</ins><span class="cx"> }, "IDL and content attribute parse start of '-4.9' correctly.");
</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("exponent").start, 7, "start of 7e2 -> 7");
</del><ins>+ assert_equals(document.getElementById("exponent").start, 7);
</ins><span class="cx"> }, "IDL and content attribute parse start of '7e2' correctly.");
</span><span class="cx">
</span><span class="cx"> </script>
</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"> <div id='log'></div>
</span><span class="cx"> <script>
</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"> </script>
</span><span class="cx"> </body>
</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 "Script error."
+
</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>+<!doctype html>
+<meta charset="utf-8">
+<title>data URL and scripts</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id=log></div>
+<script>
+ setup({allow_uncaught_exception:true})
+ async_test(t => {
+ var counter = 1
+ window.onerror = t.step_func((message, x, xx, xxx, e) => {
+ assert_not_equals(message, "Script error.") // Cannot be "muted" as data URLs are same-origin
+ assert_equals(typeof e, "number")
+ assert_equals(e, counter)
+ if (counter == 3) {
+ t.done()
+ }
+ counter++
+ })
+ })
+</script>
+<script src="data:,throw 1"></script>
+<script src="data:,throw 2" crossorigin></script>
+<script src="data:,throw 3" crossorigin=use-credentials></script>
</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 "function () {
+ ev.initMessageEvent("test", true, false..." 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>+<!DOCTYPE html>
+<title>MessageEvent constructor</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+test(function() {
+ var ev = new MessageEvent("test")
+ assert_equals(ev.type, "test", "type attribute")
+ assert_equals(ev.target, null, "target attribute")
+ assert_equals(ev.currentTarget, null, "currentTarget attribute")
+ assert_equals(ev.eventPhase, Event.NONE, "eventPhase attribute")
+ assert_equals(ev.bubbles, false, "bubbles attribute")
+ assert_equals(ev.cancelable, false, "cancelable attribute")
+ assert_equals(ev.defaultPrevented, false, "defaultPrevented attribute")
+ assert_equals(ev.isTrusted, false, "isTrusted attribute")
+ assert_true(ev.timeStamp > 0, "timeStamp attribute")
+ assert_true("initMessageEvent" in ev, "initMessageEvent operation")
+ assert_equals(ev.data, null, "data attribute")
+ assert_equals(ev.origin, "", "origin attribute")
+ assert_equals(ev.lastEventId, "", "lastEventId attribute")
+ assert_equals(ev.source, null, "source attribute")
+ assert_array_equals(ev.ports, [], "ports attribute")
+}, "Default event values")
+
+test(function() {
+ var channel = new MessageChannel()
+ var ev = new MessageEvent("test", { data: "testData", origin: "testOrigin", lastEventId: "testId", source: window, ports: [channel.port1] })
+ assert_equals(ev.type, "test", "type attribute")
+ assert_equals(ev.data, "testData", "data attribute")
+ assert_equals(ev.origin, "testOrigin", "origin attribute")
+ assert_equals(ev.lastEventId, "testId", "lastEventId attribute")
+ assert_equals(ev.source, window, "source attribute")
+ assert_array_equals(ev.ports, [channel.port1], "ports attribute")
+}, "MessageEventInit dictionary")
+
+test(function() {
+ assert_throws(new TypeError(), function() {
+ new MessageEvent("test", { ports: null })
+ })
+}, "Passing null for ports member")
+
+test(function() {
+ var ev = new MessageEvent("test", { ports: [] })
+ assert_true(Array.isArray(ev.ports), "Array.isArray() should return true")
+ assert_true(Object.isFrozen(ev.ports), "Object.isFrozen() should return true")
+ assert_true(ev.ports === ev.ports, "ev.ports should return the same object")
+}, "ports attribute should be a FrozenArray")
+
+test(function() {
+ var ev = document.createEvent("messageevent");
+ var channel = new MessageChannel()
+ ev.initMessageEvent("test", true, false, "testData", "testOrigin", "testId", window, [channel.port1])
+ assert_equals(ev.type, "test", "type attribute")
+ assert_equals(ev.bubbles, true, "bubbles attribute")
+ assert_equals(ev.cancelable, false, "bubbles attribute")
+ assert_equals(ev.data, "testData", "data attribute")
+ assert_equals(ev.origin, "testOrigin", "origin attribute")
+ assert_equals(ev.lastEventId, "testId", "lastEventId attribute")
+ assert_equals(ev.source, window, "source attribute")
+ assert_array_equals(ev.ports, [channel.port1], "ports attribute")
+}, "initMessageEvent operation")
+
+test(function() {
+ var ev = document.createEvent("messageevent")
+ assert_throws(new TypeError(), function() {
+ ev.initMessageEvent("test", true, false, "testData", "testOrigin", "testId", window, null)
+ })
+}, "Passing null for ports parameter to initMessageEvent")
+
+test(function() {
+ var ev = document.createEvent("messageevent")
+ assert_equals(MessageEvent.prototype.initMessageEvent.length, 8, "MessageEvent.prototype.initMessageEvent.length should be 8")
+ assert_throws(new TypeError(), function() {
+ ev.initMessageEvent("test", true, false, "testData", "testOrigin", "testId", window)
+ }, "Calling initMessageEvent with only 7 parameters should throw a TypeError")
+}, "All parameters to initMessageEvent should be mandatory")
+
+</script>
</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("Chrome")) {
+ compatibilityMode = "Chrome";
+ } else if (navigator.userAgent.includes("WebKit")) {
+ compatibilityMode = "WebKit";
+ } else {
+ compatibilityMode = "Gecko";
+ }
+
</ins><span class="cx"> test(function() {
</span><span class="cx"> assert_equals(navigator.appCodeName, "Mozilla");
</span><span class="cx"> }, "appCodeName");
</span><span class="cx">
</span><span class="cx"> test(function() {
</span><del>- assert_equals(typeof navigator.appName, "string",
- "navigator.appName should be a string");
</del><ins>+ assert_equals(navigator.appName, "Netscape");
</ins><span class="cx"> }, "appName");
</span><span class="cx">
</span><span class="cx"> test(function() {
</span><span class="lines">@@ -23,21 +31,16 @@
</span><span class="cx"> }, "product");
</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 ("window" in self) {
</span><del>- // If you identify as WebKit, taintEnabled should not exist.
- if (navigator.userAgent.indexOf("WebKit") != -1) {
- assert_false("taintEnabled" in navigator);
</del><ins>+ if (compatibilityMode == "Gecko") {
+ assert_equals(navigator.productSub, "20100101");
+ } else {
+ assert_equals(navigator.productSub, "20030107");
</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("taintEnabled" in navigator);
</del><ins>+ assert_false("productSub" in navigator);
</ins><span class="cx"> }
</span><del>- }, "taintEnabled");
</del><ins>+ }, "productSub");
</ins><span class="cx">
</span><span class="cx"> test(function() {
</span><span class="cx"> assert_equals(typeof navigator.userAgent, "string",
</span><span class="lines">@@ -44,10 +47,6 @@
</span><span class="cx"> "navigator.userAgent should be a string");
</span><span class="cx"> }, "userAgent type");
</span><span class="cx">
</span><del>- test(function() {
- assert_equals(navigator.vendorSub, "");
- }, "vendorSub");
-
</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"> "filter_name=User-Agent");
</span><span class="cx"> request.send();
</span><span class="cx"> }, "userAgent value");
</span><ins>+
+ test(function() {
+ if ("window" in self) {
+ if (compatibilityMode == "Chrome") {
+ assert_equals(navigator.vendor, "Google Inc.");
+ } else if (compatibilityMode == "WebKit") {
+ assert_equals(navigator.vendor, "Apple Computer, Inc.");
+ } else {
+ assert_equals(navigator.vendor, "");
+ }
+ } else {
+ assert_false("vendor" in navigator);
+ }
+ }, "vendor");
+
+ test(function() {
+ if ("window" in self) {
+ assert_equals(navigator.vendorSub, "");
+ } else {
+ assert_false("vendorSub" in navigator);
+ }
+ }, "vendorSub");
+
+ // "If the navigator compatibility mode is Gecko, then the user agent must
+ // also support the following partial interface" (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 ("window" in self && compatibilityMode == "Gecko") {
+ assert_false(navigator.taintEnabled());
+ } else {
+ assert_false("taintEnabled" in navigator);
+ }
+ }, "taintEnabled");
+
+ test(function() {
+ if ("window" in self && compatibilityMode == "Gecko") {
+ assert_equals(typeof navigator.oscpu, "string",
+ "navigator.oscpu should be a string");
+ } else {
+ assert_false("oscpu" in navigator);
+ }
+ }, "oscpu");
</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"> "href": "http://example.net/..%c3%89t%C3%A9",
</span><span class="cx"> "pathname": "/..%c3%89t%C3%A9"
</span><span class="cx"> }
</span><ins>+ },
+ {
+ "comment": "? needs to be encoded",
+ "href": "http://example.net",
+ "new_value": "?",
+ "expected": {
+ "href": "http://example.net/%3F",
+ "pathname": "/%3F"
+ }
</ins><span class="cx"> }
</span><span class="cx"> ],
</span><span class="cx"> "search": [
</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 <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected "a://example.net/" but got "a://example.net"
-FAIL Setting <a://example.net>.protocol = 'b' assert_equals: expected "b://example.net/" but got "b://example.net"
-FAIL Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected "b://example.net/" but got "b://example.net"
-FAIL Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
-FAIL Setting <a://example.net>.protocol = '0b' No leading digit assert_equals: expected "a://example.net/" but got "a://example.net"
-FAIL Setting <a://example.net>.protocol = '+b' No leading punctuation assert_equals: expected "a://example.net/" but got "a://example.net"
-FAIL Setting <a://example.net>.protocol = 'bC0+-.' assert_equals: expected "bc0+-.://example.net/" but got "bc0+-.://example.net"
-FAIL Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected "a://example.net/" but got "a://example.net"
-FAIL Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
-FAIL Setting <http://example.net>.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 "http://example.net/" but got "b://example.net/"
-FAIL Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/"
-FAIL Setting <ssh://me@example.net>.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 "ssh://me@example.net/" but got "http://me@example.net/"
-PASS Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored
-PASS Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored
-FAIL Setting <file:///home/you/index.html>.username = 'me' No host means no username assert_equals: expected "file:///home/you/index.html" but got "file://me@/home/you/index.html"
-FAIL Setting <unix:/run/foo.socket>.username = 'me' No host means no username assert_equals: expected "unix:/run/foo.socket" but got "unix://me@/run/foo.socket"
-FAIL Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username assert_equals: expected "mailto:you@example.net" but got "mailto://me%40you@example.net"
-PASS Setting <http://example.net>.username = 'me'
-PASS Setting <http://:secret@example.net>.username = 'me'
-PASS Setting <http://me@example.net>.username = ''
-PASS Setting <http://me:secret@example.net>.username = ''
-PASS Setting <http://example.net>.username = '
</del><span class="cx">\ No newline at end of file
</span><ins>+FAIL URL: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL <a>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL <area>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL URL: Setting <a://example.net>.protocol = 'b' assert_equals: expected "b://example.net/" but got "b://example.net"
+FAIL <a>: Setting <a://example.net>.protocol = 'b' assert_equals: expected "b://example.net/" but got "b://example.net"
+FAIL <area>: Setting <a://example.net>.protocol = 'b' assert_equals: expected "b://example.net/" but got "b://example.net"
+FAIL URL: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected "b://example.net/" but got "b://example.net"
+FAIL <a>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected "b://example.net/" but got "b://example.net"
+FAIL <area>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected "b://example.net/" but got "b://example.net"
+FAIL URL: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL <a>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL <area>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL URL: Setting <a://example.net>.protocol = '0b' No leading digit assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL <a>: Setting <a://example.net>.protocol = '0b' No leading digit assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL <area>: Setting <a://example.net>.protocol = '0b' No leading digit assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL URL: Setting <a://example.net>.protocol = '+b' No leading punctuation assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL <a>: Setting <a://example.net>.protocol = '+b' No leading punctuation assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL <area>: Setting <a://example.net>.protocol = '+b' No leading punctuation assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL URL: Setting <a://example.net>.protocol = 'bC0+-.' assert_equals: expected "bc0+-.://example.net/" but got "bc0+-.://example.net"
+FAIL <a>: Setting <a://example.net>.protocol = 'bC0+-.' assert_equals: expected "bc0+-.://example.net/" but got "bc0+-.://example.net"
+FAIL <area>: Setting <a://example.net>.protocol = 'bC0+-.' assert_equals: expected "bc0+-.://example.net/" but got "bc0+-.://example.net"
+FAIL URL: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL <a>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL <area>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL URL: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL <a>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL <area>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
+FAIL URL: Setting <http://example.net>.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 "http://example.net/" but got "b://example.net/"
+FAIL <a>: Setting <http://example.net>.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 "http://example.net/" but got "b://example.net/"
+FAIL <area>: Setting <http://example.net>.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 "http://example.net/" but got "b://example.net/"
+FAIL URL: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/"
+FAIL <a>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/"
+FAIL <area>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/"
+FAIL URL: Setting <ssh://me@example.net>.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 "ssh://me@example.net/" but got "http://me@example.net/"
+FAIL <a>: Setting <ssh://me@example.net>.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 "ssh://me@example.net/" but got "http://me@example.net/"
+FAIL <area>: Setting <ssh://me@example.net>.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 "ssh://me@example.net/" but got "http://me@example.net/"
+PASS URL: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored
+PASS <a>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored
+PASS <area>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored
+PASS URL: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored
+PASS <a>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored
+PASS <area>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored
+FAIL URL: Setting <file:///home/you/index.html>.username = 'me' No host means no username assert_equals: expected "file:///home/you/index.html" but got "file://me@/home/you/index.html"
+FAIL <a>: Setting <file:///home/you/index.html>.username = 'me' No host means no username assert_equals: expected "file:///home/you/index.html" but got "file://me@/home/you/index.html"
+FAIL <area>: Setting <file:///home/you/index.html>.username = 'me' No host means no username assert_equals: expected "file:///home/you/index.html" but got "file://me@/home/you/index.html"
+FAIL URL: Setting <unix:/run/foo.socket>.username = 'me' No host means no username assert_equals: expected "unix:/run/foo.socket" but got "unix://me@/run/foo.socket"
+FAIL <a>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username assert_equals: expected "unix:/run/foo.socket" but got "unix://me@/run/foo.socket"
+FAIL <area>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username assert_equals: expected "unix:/run/foo.socket" but got "unix://me@/run/foo.socket"
+FAIL URL: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username assert_equals: expected "mailto:you@example.net" but got "mailto://me%40you@example.net"
+FAIL <a>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username assert_equals: expected "mailto:you@example.net" but got "mailto://me%40you@example.net"
+FAIL <area>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username assert_equals: expected "mailto:you@example.net" but got "mailto://me%40you@example.net"
+PASS URL: Setting <http://example.net>.username = 'me'
+PASS <a>: Setting <http://example.net>.username = 'me'
+PASS <area>: Setting <http://example.net>.username = 'me'
+PASS URL: Setting <http://:secret@example.net>.username = 'me'
+PASS <a>: Setting <http://:secret@example.net>.username = 'me'
+PASS <area>: Setting <http://:secret@example.net>.username = 'me'
+PASS URL: Setting <http://me@example.net>.username = ''
+PASS <a>: Setting <http://me@example.net>.username = ''
+PASS <area>: Setting <http://me@example.net>.username = ''
+PASS URL: Setting <http://me:secret@example.net>.username = ''
+PASS <a>: Setting <http://me:secret@example.net>.username = ''
+PASS <area>: Setting <http://me:secret@example.net>.username = ''
+PASS URL: Setting <http://example.net>.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>+ }, "URL: " + name)
+ test(function() {
+ var url = document.createElement("a");
+ 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])
+ }
+ }, "<a>: " + name)
+ test(function() {
+ var url = document.createElement("area");
+ 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])
+ }
+ }, "<area>: " + 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>+<!doctype html>
+<!--
+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.
+ -->
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>RTCPeerConnection Data Channel Empty String Test</title>
+</head>
+<body>
+ <div id="log"></div>
+ <h2>Messages exchanged</h2>
+ <div id="msg"></div>
+
+ <!-- These files are in place when executing on W3C. -->
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script type="text/javascript">
+ 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 "done".
+ var onSendChannelOpen = function (event) {
+ var msgEl = document.getElementById('msg');
+ sendChannel.send('');
+ msgEl.innerHTML += 'Sent: [empty string]<br>';
+ sendChannel.send('done');
+ msgEl.innerHTML += 'Sent: "done"<br>';
+ };
+
+ // Check the messages received on the other side.
+ // There should be an empty string message followed by a message that
+ // contains the string "done".
+ // 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 ? '"' + event.data + '"' : '[empty string]') + '<br>';
+ if (emptyMessageReceived) {
+ assert_equals(event.data, 'done', 'The "done" 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);
+ }));
+ });
+</script>
+
+</body>
+</html>
+
</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>+<!doctype html>
+<!--
+This test uses the legacy callback API with no media, and thus does not require fake media devices.
+ -->
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>RTCPeerConnection No-Media Connection Test</title>
+</head>
+<body>
+ <div id="log"></div>
+ <h2>iceConnectionState info</h2>
+ <div id="stateinfo">
+ </div>
+
+ <!-- These files are in place when executing on W3C. -->
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script type="text/javascript">
+ 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 "signaling" 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, "failed", "iceConnectionState of first connection");
+ assert_not_equals(gSecondConnection.iceConnectionState, "failed", "iceConnectionState of second connection");
+ var stateinfo = document.getElementById('stateinfo');
+ stateinfo.innerHTML = 'First: ' + gFirstConnection.iceConnectionState
+ + '<br>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' &&
+ gSecondConnection.iceConnectionState == 'connected') {
+ test.done()
+ }
+ if (gFirstConnection.iceConnectionState == 'connected' &&
+ gSecondConnection.iceConnectionState == 'completed') {
+ test.done()
+ }
+ if (gFirstConnection.iceConnectionState == 'completed' &&
+ gSecondConnection.iceConnectionState == 'connected') {
+ test.done()
+ }
+ if (gFirstConnection.iceConnectionState == 'completed' &&
+ 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});
+ });
+</script>
+
+</body>
+</html>
</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>+<!doctype html>
+<!--
+This test uses data only, and thus does not require fake media devices.
+ -->
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>RTCPeerConnection Data-Only Connection Test with Promises</title>
+</head>
+<body>
+ <div id="log"></div>
+ <h2>iceConnectionState info</h2>
+ <div id="stateinfo">
+ </div>
+
+ <!-- These files are in place when executing on W3C. -->
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script type="text/javascript">
+ 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
+ + '<br>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' &&
+ gSecondConnection.iceConnectionState == 'connected') {
+ test.done()
+ }
+ if (gFirstConnection.iceConnectionState == 'connected' &&
+ gSecondConnection.iceConnectionState == 'completed') {
+ test.done()
+ }
+ if (gFirstConnection.iceConnectionState == 'completed' &&
+ gSecondConnection.iceConnectionState == 'connected') {
+ test.done()
+ }
+ if (gFirstConnection.iceConnectionState == 'completed' &&
+ 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);
+ }));
+ });
+</script>
+
+</body>
+</html>
</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>+<!doctype html>
+<meta charset=utf-8>
+<title>RTCPeerConnection constructor</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+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: "stun:stun1.example.net" }] }': false,
+ '{ iceServers: [{ urls: [] }] }': false,
+ '{ iceServers: [{ urls: ["stun:stun1.example.net"] }] }': false,
+ '{ iceServers: [{ urls: ["stun:stun1.example.net", "stun:stun2.example.net"] }] }': false,
+ // username and password required for turn: and turns:
+ '{ iceServers: [{ urls: "turns:turn.example.org", username: "user", credential: "cred" }] }': false,
+ '{ iceServers: [{ urls: "turn:turn.example.net", username: "user", credential: "cred" }] }': false,
+ '{ iceServers: [{ urls: ["turns:turn.example.org", "turn:turn.example.net"], username: "user", credential: "cred" }] }': false,
+ '{ iceServers: [{ urls: "stun:stun1.example.net", credentialType: "password" }] }': false,
+ '{ iceServers: [{ urls: "stun:stun1.example.net", credentialType: "token" }] }': false,
+ '{ iceServers: [{ urls: "turn:turn.example.net" }] }': 'InvalidAccessError',
+ '{ iceServers: [{ urls: "turn:turn.example.net", username: "user" }] }': 'InvalidAccessError',
+ '{ iceServers: [{ urls: "turn:turn.example.net", credential: "cred" }] }': 'InvalidAccessError',
+ '{ iceServers: [{ urls: "turns:turn.example.org" }] }': 'InvalidAccessError',
+ '{ iceServers: [{ urls: "turns:turn.example.org", username: "user" }] }': 'InvalidAccessError',
+ '{ iceServers: [{ urls: "turns:turn.example.org", credential: "cred" }] }': 'InvalidAccessError',
+ '{ iceServers: [{ urls: "relative-url" }] }': 'SyntaxError',
+ '{ iceServers: [{ urls: "http://example.com" }] }': 'SyntaxError',
+ // credentialType
+ '{ iceServers: [{ urls: [] }] }': false,
+ '{ iceServers: [{ urls: [], credentialType: "password" }] }': false,
+ '{ iceServers: [{ urls: [], credentialType: "token" }] }': false,
+ '{ iceServers: [{ urls: [], credentialType: "invalid" }] }': new TypeError,
+ // Blink and Gecko fall back to url, but it's not in the spec.
+ '{ iceServers: [{ url: "stun:stun1.example.net" }] }': new TypeError,
+
+ // iceTransportPolicy
+ '{ iceTransportPolicy: null }': new TypeError,
+ '{ iceTransportPolicy: undefined }': false,
+ '{ iceTransportPolicy: "relay" }': false,
+ '{ iceTransportPolicy: "all" }': false,
+ '{ iceTransportPolicy: "invalid" }': new TypeError,
+ // "none" is in Blink and Gecko's IDL, but not in the spec.
+ '{ iceTransportPolicy: "none" }': new TypeError,
+ // iceTransportPolicy is called iceTransports in Blink.
+ '{ iceTransports: "invalid" }': false,
+ '{ iceTransports: "none" }': false,
+
+ // bundlePolicy
+ '{ bundlePolicy: null }': new TypeError,
+ '{ bundlePolicy: undefined }': false,
+ '{ bundlePolicy: "balanced" }': false,
+ '{ bundlePolicy: "max-compat" }': false,
+ '{ bundlePolicy: "max-bundle" }': false,
+ '{ bundlePolicy: "invalid" }': new TypeError,
+
+ // rtcpMuxPolicy
+ '{ rtcpMuxPolicy: null }': new TypeError,
+ '{ rtcpMuxPolicy: undefined }': false,
+ '{ rtcpMuxPolicy: "negotiate" }': false,
+ '{ rtcpMuxPolicy: "require" }': false,
+ '{ rtcpMuxPolicy: "invalid" }': 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: "ECDSA", namedCurve: "P-256" })
+ .then(certificate => new RTCPeerConnection({ certificates: [certificate] }));
+}, 'new RTCPeerConnection({ certificates: [certificate] })');
+
+promise_test(function() {
+ return RTCPeerConnection.generateCertificate({ name: "ECDSA", namedCurve: "P-256", expires: 0 })
+ .then(certificate => {
+ 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');
+}
+</script>
</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>+<!doctype html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>IDL check of RTCPeerConnection</title>
+<link rel="author" title="Harald Alvestrand" href="mailto:hta@google.com"/>
+<link rel="help" href="http://w3c.github.io/webrtc-pc/#rtcpeerconnection-interface">
+</head>
+<body>
+
+<h1 class="instructions">Description</h1>
+<p class="instructions">This test verifies the availability of the RTCPeerConnection interface.</p>
+<div id='log'></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/resources/WebIDLParser.js></script>
+<script src=/resources/idlharness.js></script>
+
+<!-- The IDL is copied from the 22 September 2015 editors' draft. -->
+<script type="text/plain">
+interface EventTarget {
+ // Only a dummy definition is needed here.
+};
+[ Constructor (optional RTCConfiguration configuration)]
+interface RTCPeerConnection : EventTarget {
+ Promise<RTCSessionDescription> createOffer (optional RTCOfferOptions options);
+ Promise<RTCSessionDescription> createAnswer (optional RTCAnswerOptions options);
+ Promise<void> setLocalDescription (RTCSessionDescription description);
+ readonly attribute RTCSessionDescription? localDescription;
+ readonly attribute RTCSessionDescription? currentLocalDescription;
+ readonly attribute RTCSessionDescription? pendingLocalDescription;
+ Promise<void> setRemoteDescription (RTCSessionDescription description);
+ readonly attribute RTCSessionDescription? remoteDescription;
+ readonly attribute RTCSessionDescription? currentRemoteDescription;
+ readonly attribute RTCSessionDescription? pendingRemoteDescription;
+ Promise<void> 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<RTCCertificate> generateCertificate (AlgorithmIdentifier keygenAlgorithm);
+};
+
+partial interface RTCPeerConnection {
+ sequence<RTCRtpSender> getSenders ();
+ sequence<RTCRtpReceiver> 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<RTCStatsReport> getStats (optional MediaStreamTrack? selector);
+};
+
+partial interface RTCPeerConnection {
+ void setIdentityProvider (DOMString provider, optional DOMString protocol, optional DOMString usernameHint);
+ Promise<DOMString> getIdentityAssertion ();
+ readonly attribute Promise<RTCIdentityAssertion> peerIdentity;
+ readonly attribute DOMString? idpLoginUrl;
+};
+
+</script>
+<script>
+(function() {
+ var idl_array = new IdlArray();
+ [].forEach.call(document.querySelectorAll("script[type=text\\/plain]"),
+ function(node) {
+ idl_array.add_idls(node.textContent);
+ });
+ window.pc = new RTCPeerConnection(null);
+ idl_array.add_objects({"RTCPeerConnection": ["pc"]});
+ idl_array.test();
+ done();
+})();
+</script>
+</body>
+</html>
</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>+<!doctype html>
+<!--
+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.
+ -->
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>RTCPeerConnection Connection Test</title>
+</head>
+<body>
+ <div id="log"></div>
+ <div>
+ <video id="local-view" autoplay="autoplay"></video>
+ <video id="remote-view" autoplay="autoplay"/>
+ </video>
+ </div>
+
+ <!-- These files are in place when executing on W3C. -->
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/vendor-prefix.js"
+ data-prefixed-objects=
+ '[{"ancestors":["navigator"], "name":"getUserMedia"}]'
+ data-prefixed-prototypes=
+ '[{"ancestors":["HTMLMediaElement"],"name":"srcObject"}]'>
+ </script>
+ <script type="text/javascript">
+ 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 "signaling" 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'));
+ });
+</script>
+
+</body>
+</html>
</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"> "imported/w3c/web-platform-tests/dom/ranges/Range-isPointInRange.html": [
</span><span class="cx"> "slow"
</span><span class="cx"> ],
</span><ins>+ "imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendChild.html": [
+ "slow"
+ ],
+ "imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendData.html": [
+ "slow"
+ ],
+ "imported/w3c/web-platform-tests/dom/ranges/Range-mutations-dataChange.html": [
+ "slow"
+ ],
+ "imported/w3c/web-platform-tests/dom/ranges/Range-mutations-deleteData.html": [
+ "slow"
+ ],
+ "imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertBefore.html": [
+ "slow"
+ ],
+ "imported/w3c/web-platform-tests/dom/ranges/Range-mutations-insertData.html": [
+ "slow"
+ ],
+ "imported/w3c/web-platform-tests/dom/ranges/Range-mutations-removeChild.html": [
+ "slow"
+ ],
+ "imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceChild.html": [
+ "slow"
+ ],
+ "imported/w3c/web-platform-tests/dom/ranges/Range-mutations-replaceData.html": [
+ "slow"
+ ],
+ "imported/w3c/web-platform-tests/dom/ranges/Range-mutations-splitText.html": [
+ "slow"
+ ],
</ins><span class="cx"> "imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html": [
</span><span class="cx"> "slow"
</span><span class="cx"> ],
</span><span class="lines">@@ -164,6 +194,9 @@
</span><span class="cx"> "imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-events.html": [
</span><span class="cx"> "slow"
</span><span class="cx"> ],
</span><ins>+ "imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html": [
+ "slow"
+ ],
</ins><span class="cx"> "imported/w3c/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html": [
</span><span class="cx"> "slow"
</span><span class="cx"> ],
</span><span class="lines">@@ -407,4 +440,4 @@
</span><span class="cx"> "imported/w3c/web-platform-tests/media-source/mediasource-redundant-seek.html": [
</span><span class="cx"> "slow"
</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>