<!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>[204530] trunk/LayoutTests/imported/w3c</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/204530">204530</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-08-16 15:33:32 -0700 (Tue, 16 Aug 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Re-sync imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html with upstream
https://bugs.webkit.org/show_bug.cgi?id=160903

Reviewed by Ryosuke Niwa.

Re-sync imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html with upstream
after https://github.com/w3c/web-platform-tests/pull/3468.

* web-platform-tests/dom/ranges/Range-mutations-expected.txt:
* web-platform-tests/dom/ranges/Range-mutations.html:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (204529 => 204530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2016-08-16 22:32:50 UTC (rev 204529)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2016-08-16 22:33:32 UTC (rev 204530)
</span><span class="lines">@@ -1,5 +1,18 @@
</span><span class="cx"> 2016-08-16  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Re-sync imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html with upstream
+        https://bugs.webkit.org/show_bug.cgi?id=160903
+
+        Reviewed by Ryosuke Niwa.
+
+        Re-sync imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html with upstream
+        after https://github.com/w3c/web-platform-tests/pull/3468.
+
+        * web-platform-tests/dom/ranges/Range-mutations-expected.txt:
+        * web-platform-tests/dom/ranges/Range-mutations.html:
+
+2016-08-16  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         querySelector() / querySelectorAll() should always throw a SyntaxError when failing to parse selector string
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=160906
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-expected.txt (204529 => 204530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-expected.txt        2016-08-16 22:32:50 UTC (rev 204529)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations-expected.txt        2016-08-16 22:33:32 UTC (rev 204530)
</span><span class="lines">@@ -1,5811 +1,5628 @@
</span><span class="cx"> 
</span><span class="cx"> PASS paras[0].firstChild.splitText(376), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.splitText(376), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.splitText(376), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(0), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.splitText(0), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.splitText(0), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(1), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.splitText(1), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.splitText(1), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(paras[0].firstChild.length), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.splitText(paras[0].firstChild.length), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.splitText(paras[0].firstChild.length), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(1), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.splitText(1), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.splitText(1), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(2), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.splitText(2), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.splitText(2), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(3), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.splitText(3), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.splitText(3), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.splitText(376), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.splitText(376), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.splitText(376), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.splitText(0), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.splitText(0), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.splitText(0), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.splitText(1), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.splitText(1), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.splitText(1), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.splitText(paras[1].firstChild.length), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.splitText(paras[1].firstChild.length), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.splitText(paras[1].firstChild.length), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.splitText(1), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.splitText(1), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.splitText(1), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.splitText(2), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.splitText(2), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.splitText(2), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.splitText(3), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.splitText(3), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.splitText(3), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.splitText(376), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.splitText(376), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.splitText(376), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.splitText(0), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.splitText(0), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.splitText(0), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.splitText(1), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.splitText(1), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.splitText(1), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.splitText(foreignTextNode.length), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.splitText(foreignTextNode.length), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.splitText(foreignTextNode.length), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.splitText(1), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.splitText(1), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.splitText(1), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.splitText(2), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.splitText(2), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.splitText(2), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.splitText(3), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.splitText(3), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.splitText(3), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.splitText(376), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.splitText(376), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.splitText(376), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.splitText(0), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.splitText(0), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.splitText(0), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.splitText(1), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.splitText(1), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.splitText(1), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.splitText(xmlTextNode.length), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.splitText(xmlTextNode.length), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.splitText(xmlTextNode.length), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.splitText(1), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.splitText(1), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.splitText(1), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.splitText(2), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.splitText(2), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.splitText(2), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.splitText(3), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.splitText(3), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.splitText(3), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.splitText(376), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.splitText(376), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.splitText(376), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.splitText(0), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.splitText(0), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.splitText(0), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.splitText(1), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.splitText(1), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.splitText(1), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.splitText(detachedTextNode.length), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.splitText(detachedTextNode.length), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.splitText(detachedTextNode.length), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.splitText(1), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.splitText(1), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.splitText(1), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.splitText(2), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.splitText(2), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.splitText(2), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.splitText(3), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.splitText(3), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.splitText(3), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.splitText(376), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.splitText(376), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.splitText(376), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.splitText(0), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.splitText(0), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.splitText(0), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.splitText(1), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.splitText(1), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.splitText(1), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.splitText(detachedForeignTextNode.length), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.splitText(detachedForeignTextNode.length), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.splitText(detachedForeignTextNode.length), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.splitText(1), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.splitText(1), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.splitText(1), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.splitText(2), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.splitText(2), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.splitText(2), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.splitText(3), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.splitText(3), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.splitText(3), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.splitText(376), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.splitText(376), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.splitText(376), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.splitText(0), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.splitText(0), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.splitText(0), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.splitText(1), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.splitText(1), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.splitText(1), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.splitText(detachedXmlTextNode.length), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.splitText(detachedXmlTextNode.length), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.splitText(detachedXmlTextNode.length), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.splitText(1), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.splitText(1), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.splitText(1), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.splitText(2), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.splitText(2), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.splitText(2), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.splitText(3), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.splitText(3), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.splitText(3), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(1), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].firstChild.splitText(1), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.splitText(1), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(1), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].firstChild.splitText(1), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.splitText(1), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(1), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.splitText(1), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.splitText(1), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(1), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.splitText(1), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.splitText(1), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(2), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.splitText(2), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.splitText(2), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(3), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.splitText(3), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.splitText(3), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(1), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.splitText(1), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.splitText(1), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(2), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.splitText(2), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.splitText(2), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.splitText(3), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.splitText(3), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.splitText(3), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(376, &quot;foo&quot;), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.insertData(376, &quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.insertData(376, &quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(0, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.insertData(0, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.insertData(0, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(paras[0].firstChild.length, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.insertData(paras[0].firstChild.length, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.insertData(paras[0].firstChild.length, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(2, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.insertData(2, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.insertData(2, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(3, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.insertData(3, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.insertData(3, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(376, &quot;&quot;), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.insertData(376, &quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.insertData(376, &quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(0, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.insertData(0, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.insertData(0, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(1, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.insertData(1, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.insertData(1, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(paras[0].firstChild.length, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.insertData(paras[0].firstChild.length, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.insertData(paras[0].firstChild.length, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(1, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.insertData(1, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.insertData(1, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(2, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.insertData(2, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.insertData(2, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(3, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.insertData(3, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.insertData(3, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(376, &quot;foo&quot;), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.insertData(376, &quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(376, &quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(0, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.insertData(0, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(0, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(1, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.insertData(1, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(1, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(paras[1].firstChild.length, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.insertData(paras[1].firstChild.length, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(paras[1].firstChild.length, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(1, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.insertData(1, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(1, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(2, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.insertData(2, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(2, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(3, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.insertData(3, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(3, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(376, &quot;&quot;), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.insertData(376, &quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(376, &quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(0, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.insertData(0, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(0, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(1, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.insertData(1, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(1, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(paras[1].firstChild.length, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.insertData(paras[1].firstChild.length, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(paras[1].firstChild.length, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(1, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.insertData(1, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(1, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(2, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.insertData(2, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(2, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.insertData(3, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.insertData(3, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.insertData(3, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.insertData(376, &quot;foo&quot;), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.insertData(376, &quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(376, &quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.insertData(0, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.insertData(1, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.insertData(foreignTextNode.length, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.insertData(foreignTextNode.length, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(foreignTextNode.length, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.insertData(1, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.insertData(1, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(1, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.insertData(2, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.insertData(2, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(2, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.insertData(3, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.insertData(3, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(3, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.insertData(376, &quot;&quot;), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.insertData(376, &quot;&quot;), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(376, &quot;&quot;), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.insertData(0, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.insertData(1, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.insertData(foreignTextNode.length, &quot;&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.insertData(foreignTextNode.length, &quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(foreignTextNode.length, &quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.insertData(1, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.insertData(1, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(1, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.insertData(2, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.insertData(2, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(2, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.insertData(3, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.insertData(3, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.insertData(3, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.insertData(376, &quot;foo&quot;), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.insertData(376, &quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(376, &quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.insertData(0, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.insertData(1, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.insertData(xmlTextNode.length, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.insertData(xmlTextNode.length, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(xmlTextNode.length, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.insertData(1, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.insertData(1, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(1, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.insertData(2, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.insertData(2, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(2, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.insertData(3, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.insertData(3, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(3, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.insertData(376, &quot;&quot;), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.insertData(376, &quot;&quot;), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(376, &quot;&quot;), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.insertData(0, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.insertData(1, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.insertData(xmlTextNode.length, &quot;&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.insertData(xmlTextNode.length, &quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(xmlTextNode.length, &quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.insertData(1, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.insertData(1, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(1, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.insertData(2, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.insertData(2, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(2, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.insertData(3, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.insertData(3, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.insertData(3, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.insertData(376, &quot;foo&quot;), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.insertData(376, &quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(376, &quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.insertData(0, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.insertData(1, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.insertData(detachedTextNode.length, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.insertData(detachedTextNode.length, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(detachedTextNode.length, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.insertData(1, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.insertData(1, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(1, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.insertData(2, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.insertData(2, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(2, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.insertData(3, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.insertData(3, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(3, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.insertData(376, &quot;&quot;), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.insertData(376, &quot;&quot;), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(376, &quot;&quot;), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.insertData(0, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.insertData(1, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.insertData(detachedTextNode.length, &quot;&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.insertData(detachedTextNode.length, &quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(detachedTextNode.length, &quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.insertData(1, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.insertData(1, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(1, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.insertData(2, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.insertData(2, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(2, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.insertData(3, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.insertData(3, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.insertData(3, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(376, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.insertData(376, &quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(376, &quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(detachedForeignTextNode.length, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.insertData(detachedForeignTextNode.length, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(detachedForeignTextNode.length, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(1, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.insertData(1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(2, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.insertData(2, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(2, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(3, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.insertData(3, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(3, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(376, &quot;&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.insertData(376, &quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(376, &quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(0, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(1, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(detachedForeignTextNode.length, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.insertData(detachedForeignTextNode.length, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(detachedForeignTextNode.length, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(1, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.insertData(1, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(1, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(2, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.insertData(2, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(2, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.insertData(3, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.insertData(3, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.insertData(3, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(376, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.insertData(376, &quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(376, &quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(detachedXmlTextNode.length, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.insertData(detachedXmlTextNode.length, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(detachedXmlTextNode.length, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(1, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.insertData(1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(2, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.insertData(2, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(2, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(3, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.insertData(3, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(3, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(376, &quot;&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.insertData(376, &quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(376, &quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(0, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(0, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(1, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(1, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(detachedXmlTextNode.length, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.insertData(detachedXmlTextNode.length, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(detachedXmlTextNode.length, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(1, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.insertData(1, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(1, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(2, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.insertData(2, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(2, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.insertData(3, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.insertData(3, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.insertData(3, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS comment.insertData(376, &quot;foo&quot;), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.insertData(376, &quot;foo&quot;), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(376, &quot;foo&quot;), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.insertData(0, &quot;foo&quot;), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.insertData(0, &quot;foo&quot;), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(0, &quot;foo&quot;), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.insertData(1, &quot;foo&quot;), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.insertData(1, &quot;foo&quot;), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(1, &quot;foo&quot;), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.insertData(comment.length, &quot;foo&quot;), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.insertData(comment.length, &quot;foo&quot;), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(comment.length, &quot;foo&quot;), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.insertData(1, &quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.insertData(1, &quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(1, &quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.insertData(2, &quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.insertData(2, &quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(2, &quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.insertData(3, &quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.insertData(3, &quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(3, &quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.insertData(376, &quot;&quot;), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.insertData(376, &quot;&quot;), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(376, &quot;&quot;), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.insertData(0, &quot;&quot;), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.insertData(0, &quot;&quot;), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(0, &quot;&quot;), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.insertData(1, &quot;&quot;), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.insertData(1, &quot;&quot;), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(1, &quot;&quot;), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.insertData(comment.length, &quot;&quot;), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.insertData(comment.length, &quot;&quot;), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(comment.length, &quot;&quot;), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.insertData(1, &quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.insertData(1, &quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(1, &quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.insertData(2, &quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.insertData(2, &quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(2, &quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.insertData(3, &quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.insertData(3, &quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.insertData(3, &quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.insertData(376, &quot;foo&quot;), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.insertData(376, &quot;foo&quot;), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(376, &quot;foo&quot;), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.insertData(0, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.insertData(1, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.insertData(foreignComment.length, &quot;foo&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.insertData(foreignComment.length, &quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(foreignComment.length, &quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.insertData(1, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.insertData(1, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(1, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.insertData(2, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.insertData(2, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(2, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.insertData(3, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.insertData(3, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(3, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.insertData(376, &quot;&quot;), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.insertData(376, &quot;&quot;), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(376, &quot;&quot;), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.insertData(0, &quot;&quot;), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.insertData(0, &quot;&quot;), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(0, &quot;&quot;), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.insertData(1, &quot;&quot;), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.insertData(1, &quot;&quot;), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(1, &quot;&quot;), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.insertData(foreignComment.length, &quot;&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.insertData(foreignComment.length, &quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(foreignComment.length, &quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.insertData(1, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.insertData(1, &quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(1, &quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.insertData(2, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.insertData(2, &quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(2, &quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.insertData(3, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.insertData(3, &quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.insertData(3, &quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.insertData(376, &quot;foo&quot;), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.insertData(376, &quot;foo&quot;), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(376, &quot;foo&quot;), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.insertData(0, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.insertData(1, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.insertData(xmlComment.length, &quot;foo&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.insertData(xmlComment.length, &quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(xmlComment.length, &quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.insertData(1, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.insertData(1, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(1, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.insertData(2, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.insertData(2, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(2, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.insertData(3, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.insertData(3, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(3, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.insertData(376, &quot;&quot;), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.insertData(376, &quot;&quot;), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(376, &quot;&quot;), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.insertData(0, &quot;&quot;), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.insertData(0, &quot;&quot;), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(0, &quot;&quot;), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.insertData(1, &quot;&quot;), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.insertData(1, &quot;&quot;), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(1, &quot;&quot;), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.insertData(xmlComment.length, &quot;&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.insertData(xmlComment.length, &quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(xmlComment.length, &quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.insertData(1, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.insertData(1, &quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(1, &quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.insertData(2, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.insertData(2, &quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(2, &quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.insertData(3, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.insertData(3, &quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.insertData(3, &quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.insertData(376, &quot;foo&quot;), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.insertData(376, &quot;foo&quot;), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(376, &quot;foo&quot;), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.insertData(0, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.insertData(1, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.insertData(detachedComment.length, &quot;foo&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.insertData(detachedComment.length, &quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(detachedComment.length, &quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.insertData(1, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.insertData(1, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(1, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.insertData(2, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.insertData(2, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(2, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.insertData(3, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.insertData(3, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(3, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.insertData(376, &quot;&quot;), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.insertData(376, &quot;&quot;), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(376, &quot;&quot;), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.insertData(0, &quot;&quot;), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.insertData(0, &quot;&quot;), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(0, &quot;&quot;), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.insertData(1, &quot;&quot;), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.insertData(1, &quot;&quot;), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(1, &quot;&quot;), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.insertData(detachedComment.length, &quot;&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.insertData(detachedComment.length, &quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(detachedComment.length, &quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.insertData(1, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.insertData(1, &quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(1, &quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.insertData(2, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.insertData(2, &quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(2, &quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.insertData(3, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.insertData(3, &quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.insertData(3, &quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.insertData(376, &quot;foo&quot;), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.insertData(376, &quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(376, &quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.insertData(0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.insertData(1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.insertData(detachedForeignComment.length, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.insertData(detachedForeignComment.length, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(detachedForeignComment.length, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.insertData(1, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.insertData(1, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(1, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.insertData(2, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.insertData(2, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(2, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.insertData(3, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.insertData(3, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(3, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.insertData(376, &quot;&quot;), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.insertData(376, &quot;&quot;), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(376, &quot;&quot;), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.insertData(0, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.insertData(0, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(0, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.insertData(1, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.insertData(1, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(1, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.insertData(detachedForeignComment.length, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.insertData(detachedForeignComment.length, &quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(detachedForeignComment.length, &quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.insertData(1, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.insertData(1, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(1, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.insertData(2, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.insertData(2, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(2, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.insertData(3, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.insertData(3, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.insertData(3, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.insertData(376, &quot;foo&quot;), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.insertData(376, &quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(376, &quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.insertData(0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(0, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.insertData(1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(1, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.insertData(detachedXmlComment.length, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.insertData(detachedXmlComment.length, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(detachedXmlComment.length, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.insertData(1, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.insertData(1, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(1, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.insertData(2, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.insertData(2, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(2, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.insertData(3, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.insertData(3, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(3, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.insertData(376, &quot;&quot;), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.insertData(376, &quot;&quot;), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(376, &quot;&quot;), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.insertData(0, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.insertData(0, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(0, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.insertData(1, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.insertData(1, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(1, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.insertData(detachedXmlComment.length, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.insertData(detachedXmlComment.length, &quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(detachedXmlComment.length, &quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.insertData(1, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.insertData(1, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(1, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.insertData(2, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.insertData(2, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(2, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.insertData(3, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.insertData(3, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.insertData(3, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(2, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.insertData(2, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.insertData(2, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(3, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.insertData(3, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.insertData(3, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.insertData(1, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(2, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.insertData(2, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.insertData(2, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.insertData(3, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.insertData(3, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.insertData(3, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;foo&quot;), with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;foo&quot;), with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;&quot;), with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;&quot;), with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.appendData(&quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.appendData(&quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.appendData(&quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.appendData(&quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.appendData(&quot;foo&quot;), with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.appendData(&quot;foo&quot;), with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.appendData(&quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;&quot;), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.appendData(&quot;&quot;), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;&quot;), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;&quot;), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.appendData(&quot;&quot;), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;&quot;), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;&quot;), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.appendData(&quot;&quot;), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;&quot;), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;&quot;), with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.appendData(&quot;&quot;), with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;&quot;), with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;&quot;), with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.appendData(&quot;&quot;), with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;&quot;), with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.appendData(&quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.appendData(&quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.appendData(&quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.appendData(&quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.appendData(&quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.appendData(&quot;foo&quot;), with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.appendData(&quot;foo&quot;), with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.appendData(&quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;&quot;), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.appendData(&quot;&quot;), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;&quot;), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;&quot;), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;&quot;), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;&quot;), with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.appendData(&quot;&quot;), with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;&quot;), with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;&quot;), with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.appendData(&quot;&quot;), with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;&quot;), with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.appendData(&quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.appendData(&quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.appendData(&quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.appendData(&quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.appendData(&quot;foo&quot;), with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.appendData(&quot;foo&quot;), with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.appendData(&quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;&quot;), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.appendData(&quot;&quot;), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;&quot;), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;&quot;), with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.appendData(&quot;&quot;), with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;&quot;), with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;&quot;), with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.appendData(&quot;&quot;), with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;&quot;), with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.appendData(&quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.appendData(&quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.appendData(&quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;&quot;), with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;&quot;), with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.appendData(&quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.appendData(&quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.appendData(&quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;&quot;), with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;&quot;), with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.appendData(&quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.appendData(&quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.appendData(&quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS comment.appendData(&quot;foo&quot;), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.appendData(&quot;foo&quot;), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;foo&quot;), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.appendData(&quot;foo&quot;), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.appendData(&quot;foo&quot;), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;foo&quot;), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.appendData(&quot;foo&quot;), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.appendData(&quot;foo&quot;), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;foo&quot;), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.appendData(&quot;foo&quot;), with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.appendData(&quot;foo&quot;), with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;foo&quot;), with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.appendData(&quot;foo&quot;), with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.appendData(&quot;foo&quot;), with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;foo&quot;), with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.appendData(&quot;foo&quot;), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.appendData(&quot;foo&quot;), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;foo&quot;), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.appendData(&quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.appendData(&quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.appendData(&quot;&quot;), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.appendData(&quot;&quot;), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;&quot;), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.appendData(&quot;&quot;), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.appendData(&quot;&quot;), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;&quot;), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.appendData(&quot;&quot;), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.appendData(&quot;&quot;), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;&quot;), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.appendData(&quot;&quot;), with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.appendData(&quot;&quot;), with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;&quot;), with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.appendData(&quot;&quot;), with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.appendData(&quot;&quot;), with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;&quot;), with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.appendData(&quot;&quot;), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.appendData(&quot;&quot;), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;&quot;), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.appendData(&quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.appendData(&quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.appendData(&quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;foo&quot;), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.appendData(&quot;foo&quot;), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;foo&quot;), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;foo&quot;), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.appendData(&quot;foo&quot;), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;foo&quot;), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;foo&quot;), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.appendData(&quot;foo&quot;), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;foo&quot;), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;foo&quot;), with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.appendData(&quot;foo&quot;), with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;foo&quot;), with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;foo&quot;), with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.appendData(&quot;foo&quot;), with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;foo&quot;), with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;foo&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.appendData(&quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.appendData(&quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;&quot;), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.appendData(&quot;&quot;), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;&quot;), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;&quot;), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.appendData(&quot;&quot;), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;&quot;), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;&quot;), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.appendData(&quot;&quot;), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;&quot;), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;&quot;), with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.appendData(&quot;&quot;), with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;&quot;), with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;&quot;), with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.appendData(&quot;&quot;), with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;&quot;), with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.appendData(&quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.appendData(&quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.appendData(&quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.appendData(&quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;foo&quot;), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.appendData(&quot;foo&quot;), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;foo&quot;), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;foo&quot;), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;foo&quot;), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;foo&quot;), with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.appendData(&quot;foo&quot;), with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;foo&quot;), with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;foo&quot;), with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.appendData(&quot;foo&quot;), with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;foo&quot;), with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;foo&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.appendData(&quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;&quot;), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.appendData(&quot;&quot;), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;&quot;), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;&quot;), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.appendData(&quot;&quot;), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;&quot;), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;&quot;), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.appendData(&quot;&quot;), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;&quot;), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;&quot;), with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.appendData(&quot;&quot;), with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;&quot;), with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;&quot;), with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.appendData(&quot;&quot;), with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;&quot;), with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.appendData(&quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.appendData(&quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.appendData(&quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.appendData(&quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;foo&quot;), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.appendData(&quot;foo&quot;), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;foo&quot;), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;foo&quot;), with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.appendData(&quot;foo&quot;), with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;foo&quot;), with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;foo&quot;), with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.appendData(&quot;foo&quot;), with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;foo&quot;), with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.appendData(&quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;&quot;), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.appendData(&quot;&quot;), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;&quot;), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.appendData(&quot;&quot;), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;&quot;), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.appendData(&quot;&quot;), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;&quot;), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;&quot;), with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.appendData(&quot;&quot;), with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;&quot;), with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;&quot;), with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.appendData(&quot;&quot;), with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;&quot;), with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.appendData(&quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.appendData(&quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.appendData(&quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.appendData(&quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.appendData(&quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.appendData(&quot;foo&quot;), with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.appendData(&quot;foo&quot;), with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.appendData(&quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.appendData(&quot;&quot;), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.appendData(&quot;&quot;), with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.appendData(&quot;&quot;), with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.appendData(&quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.appendData(&quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.appendData(&quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.appendData(&quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.appendData(&quot;foo&quot;), with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.appendData(&quot;foo&quot;), with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.appendData(&quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.appendData(&quot;&quot;), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.appendData(&quot;&quot;), with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.appendData(&quot;&quot;), with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.appendData(&quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.appendData(&quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.appendData(&quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.appendData(&quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.appendData(&quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.appendData(&quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(376, 2), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.deleteData(376, 2), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(376, 2), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(0, 2), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.deleteData(0, 2), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(0, 2), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(1, 2), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(paras[0].firstChild.length, 2), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.deleteData(paras[0].firstChild.length, 2), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(paras[0].firstChild.length, 2), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(1, 2), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.deleteData(1, 2), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(1, 2), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(2, 2), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.deleteData(2, 2), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(2, 2), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(3, 2), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.deleteData(3, 2), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(3, 2), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(376, 0), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.deleteData(376, 0), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(376, 0), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(0, 0), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.deleteData(0, 0), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(0, 0), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(1, 0), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.deleteData(1, 0), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(1, 0), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(paras[0].firstChild.length, 0), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.deleteData(paras[0].firstChild.length, 0), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(paras[0].firstChild.length, 0), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(1, 0), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.deleteData(1, 0), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(1, 0), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(2, 0), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.deleteData(2, 0), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(2, 0), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(3, 0), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.deleteData(3, 0), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(3, 0), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(376, 631), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.deleteData(376, 631), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(376, 631), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(0, 631), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.deleteData(0, 631), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(0, 631), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(1, 631), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.deleteData(1, 631), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(1, 631), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(paras[0].firstChild.length, 631), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.deleteData(paras[0].firstChild.length, 631), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(paras[0].firstChild.length, 631), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(1, 631), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.deleteData(1, 631), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(1, 631), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(2, 631), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.deleteData(2, 631), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(2, 631), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(3, 631), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.deleteData(3, 631), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(3, 631), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(376, 2), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.deleteData(376, 2), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(376, 2), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(0, 2), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.deleteData(0, 2), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(0, 2), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(1, 2), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.deleteData(1, 2), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(1, 2), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(paras[1].firstChild.length, 2), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.deleteData(paras[1].firstChild.length, 2), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(paras[1].firstChild.length, 2), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(1, 2), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.deleteData(1, 2), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(1, 2), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(2, 2), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.deleteData(2, 2), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(2, 2), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(3, 2), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.deleteData(3, 2), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(3, 2), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(376, 0), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.deleteData(376, 0), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(376, 0), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(0, 0), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.deleteData(0, 0), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(0, 0), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(1, 0), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.deleteData(1, 0), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(1, 0), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(paras[1].firstChild.length, 0), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.deleteData(paras[1].firstChild.length, 0), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(paras[1].firstChild.length, 0), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(1, 0), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.deleteData(1, 0), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(1, 0), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(2, 0), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.deleteData(2, 0), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(2, 0), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(3, 0), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.deleteData(3, 0), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(3, 0), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(376, 631), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.deleteData(376, 631), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(376, 631), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(0, 631), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.deleteData(0, 631), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(0, 631), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(1, 631), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.deleteData(1, 631), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(1, 631), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(paras[1].firstChild.length, 631), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.deleteData(paras[1].firstChild.length, 631), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(paras[1].firstChild.length, 631), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(1, 631), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.deleteData(1, 631), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(1, 631), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(2, 631), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.deleteData(2, 631), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(2, 631), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.deleteData(3, 631), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.deleteData(3, 631), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.deleteData(3, 631), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.deleteData(376, 2), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.deleteData(376, 2), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(376, 2), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.deleteData(0, 2), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.deleteData(0, 2), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(0, 2), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.deleteData(1, 2), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.deleteData(1, 2), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(1, 2), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.deleteData(foreignTextNode.length, 2), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.deleteData(foreignTextNode.length, 2), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(foreignTextNode.length, 2), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.deleteData(1, 2), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.deleteData(1, 2), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(1, 2), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.deleteData(2, 2), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.deleteData(2, 2), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(2, 2), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.deleteData(3, 2), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.deleteData(3, 2), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(3, 2), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.deleteData(376, 0), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.deleteData(376, 0), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(376, 0), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.deleteData(0, 0), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.deleteData(0, 0), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(0, 0), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.deleteData(1, 0), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.deleteData(1, 0), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(1, 0), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.deleteData(foreignTextNode.length, 0), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.deleteData(foreignTextNode.length, 0), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(foreignTextNode.length, 0), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.deleteData(1, 0), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.deleteData(1, 0), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(1, 0), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.deleteData(2, 0), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.deleteData(2, 0), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(2, 0), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.deleteData(3, 0), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.deleteData(3, 0), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(3, 0), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.deleteData(376, 631), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.deleteData(376, 631), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(376, 631), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.deleteData(0, 631), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.deleteData(0, 631), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(0, 631), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.deleteData(1, 631), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.deleteData(1, 631), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(1, 631), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.deleteData(foreignTextNode.length, 631), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.deleteData(foreignTextNode.length, 631), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(foreignTextNode.length, 631), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.deleteData(1, 631), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.deleteData(1, 631), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(1, 631), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.deleteData(2, 631), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.deleteData(2, 631), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(2, 631), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.deleteData(3, 631), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.deleteData(3, 631), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.deleteData(3, 631), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.deleteData(376, 2), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.deleteData(376, 2), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(376, 2), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.deleteData(0, 2), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.deleteData(0, 2), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(0, 2), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.deleteData(1, 2), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.deleteData(1, 2), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(1, 2), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.deleteData(xmlTextNode.length, 2), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.deleteData(xmlTextNode.length, 2), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(xmlTextNode.length, 2), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.deleteData(1, 2), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.deleteData(1, 2), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(1, 2), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.deleteData(2, 2), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.deleteData(2, 2), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(2, 2), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.deleteData(3, 2), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.deleteData(3, 2), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(3, 2), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.deleteData(376, 0), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.deleteData(376, 0), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(376, 0), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.deleteData(0, 0), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.deleteData(0, 0), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(0, 0), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.deleteData(1, 0), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.deleteData(1, 0), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(1, 0), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.deleteData(xmlTextNode.length, 0), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.deleteData(xmlTextNode.length, 0), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(xmlTextNode.length, 0), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.deleteData(1, 0), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.deleteData(1, 0), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(1, 0), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.deleteData(2, 0), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.deleteData(2, 0), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(2, 0), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.deleteData(3, 0), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.deleteData(3, 0), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(3, 0), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.deleteData(376, 631), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.deleteData(376, 631), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(376, 631), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.deleteData(0, 631), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.deleteData(0, 631), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(0, 631), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.deleteData(1, 631), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.deleteData(1, 631), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(1, 631), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.deleteData(xmlTextNode.length, 631), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.deleteData(xmlTextNode.length, 631), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(xmlTextNode.length, 631), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.deleteData(1, 631), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.deleteData(1, 631), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(1, 631), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.deleteData(2, 631), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.deleteData(2, 631), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(2, 631), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.deleteData(3, 631), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.deleteData(3, 631), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.deleteData(3, 631), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.deleteData(376, 2), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.deleteData(376, 2), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(376, 2), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.deleteData(0, 2), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.deleteData(0, 2), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(0, 2), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.deleteData(1, 2), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.deleteData(1, 2), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(1, 2), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.deleteData(detachedTextNode.length, 2), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.deleteData(detachedTextNode.length, 2), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(detachedTextNode.length, 2), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.deleteData(1, 2), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.deleteData(1, 2), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(1, 2), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.deleteData(2, 2), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.deleteData(2, 2), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(2, 2), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.deleteData(3, 2), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.deleteData(3, 2), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(3, 2), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.deleteData(376, 0), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.deleteData(376, 0), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(376, 0), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.deleteData(0, 0), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.deleteData(0, 0), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(0, 0), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.deleteData(1, 0), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.deleteData(1, 0), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(1, 0), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.deleteData(detachedTextNode.length, 0), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.deleteData(detachedTextNode.length, 0), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(detachedTextNode.length, 0), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.deleteData(1, 0), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.deleteData(1, 0), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(1, 0), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.deleteData(2, 0), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.deleteData(2, 0), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(2, 0), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.deleteData(3, 0), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.deleteData(3, 0), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(3, 0), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.deleteData(376, 631), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.deleteData(376, 631), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(376, 631), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.deleteData(0, 631), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.deleteData(0, 631), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(0, 631), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.deleteData(1, 631), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.deleteData(1, 631), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(1, 631), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.deleteData(detachedTextNode.length, 631), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.deleteData(detachedTextNode.length, 631), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(detachedTextNode.length, 631), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.deleteData(1, 631), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.deleteData(1, 631), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(1, 631), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.deleteData(2, 631), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.deleteData(2, 631), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(2, 631), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.deleteData(3, 631), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.deleteData(3, 631), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.deleteData(3, 631), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(376, 2), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.deleteData(376, 2), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(376, 2), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(0, 2), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.deleteData(0, 2), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(0, 2), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(1, 2), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.deleteData(1, 2), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(1, 2), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 2), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 2), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 2), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(1, 2), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.deleteData(1, 2), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(1, 2), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(2, 2), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.deleteData(2, 2), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(2, 2), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(3, 2), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.deleteData(3, 2), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(3, 2), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(376, 0), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.deleteData(376, 0), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(376, 0), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(0, 0), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.deleteData(0, 0), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(0, 0), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(1, 0), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.deleteData(1, 0), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(1, 0), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 0), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 0), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 0), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(1, 0), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.deleteData(1, 0), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(1, 0), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(2, 0), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.deleteData(2, 0), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(2, 0), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(3, 0), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.deleteData(3, 0), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(3, 0), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(376, 631), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.deleteData(376, 631), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(376, 631), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(0, 631), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.deleteData(0, 631), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(0, 631), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(1, 631), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.deleteData(1, 631), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(1, 631), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 631), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 631), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 631), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(1, 631), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.deleteData(1, 631), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(1, 631), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(2, 631), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.deleteData(2, 631), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(2, 631), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.deleteData(3, 631), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.deleteData(3, 631), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.deleteData(3, 631), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(376, 2), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.deleteData(376, 2), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(376, 2), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(0, 2), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.deleteData(0, 2), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(0, 2), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(1, 2), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.deleteData(1, 2), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(1, 2), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 2), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 2), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 2), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(1, 2), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.deleteData(1, 2), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(1, 2), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(2, 2), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.deleteData(2, 2), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(2, 2), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(3, 2), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.deleteData(3, 2), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(3, 2), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(376, 0), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.deleteData(376, 0), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(376, 0), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(0, 0), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.deleteData(0, 0), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(0, 0), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(1, 0), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.deleteData(1, 0), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(1, 0), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 0), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 0), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 0), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(1, 0), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.deleteData(1, 0), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(1, 0), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(2, 0), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.deleteData(2, 0), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(2, 0), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(3, 0), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.deleteData(3, 0), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(3, 0), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(376, 631), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.deleteData(376, 631), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(376, 631), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(0, 631), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.deleteData(0, 631), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(0, 631), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(1, 631), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.deleteData(1, 631), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(1, 631), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 631), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 631), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 631), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(1, 631), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.deleteData(1, 631), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(1, 631), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(2, 631), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.deleteData(2, 631), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(2, 631), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.deleteData(3, 631), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.deleteData(3, 631), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.deleteData(3, 631), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS comment.deleteData(376, 2), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.deleteData(376, 2), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(376, 2), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.deleteData(0, 2), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.deleteData(0, 2), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(0, 2), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.deleteData(1, 2), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.deleteData(1, 2), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(1, 2), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.deleteData(comment.length, 2), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.deleteData(comment.length, 2), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(comment.length, 2), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.deleteData(1, 2), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.deleteData(1, 2), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(1, 2), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.deleteData(2, 2), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.deleteData(2, 2), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(2, 2), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.deleteData(3, 2), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.deleteData(3, 2), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(3, 2), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.deleteData(376, 0), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.deleteData(376, 0), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(376, 0), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.deleteData(0, 0), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.deleteData(0, 0), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(0, 0), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.deleteData(1, 0), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.deleteData(1, 0), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(1, 0), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.deleteData(comment.length, 0), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.deleteData(comment.length, 0), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(comment.length, 0), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.deleteData(1, 0), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.deleteData(1, 0), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(1, 0), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.deleteData(2, 0), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.deleteData(2, 0), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(2, 0), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.deleteData(3, 0), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.deleteData(3, 0), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(3, 0), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.deleteData(376, 631), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.deleteData(376, 631), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(376, 631), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.deleteData(0, 631), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.deleteData(0, 631), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(0, 631), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.deleteData(1, 631), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.deleteData(1, 631), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(1, 631), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.deleteData(comment.length, 631), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.deleteData(comment.length, 631), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(comment.length, 631), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.deleteData(1, 631), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.deleteData(1, 631), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(1, 631), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.deleteData(2, 631), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.deleteData(2, 631), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(2, 631), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.deleteData(3, 631), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.deleteData(3, 631), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.deleteData(3, 631), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.deleteData(376, 2), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.deleteData(376, 2), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(376, 2), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.deleteData(0, 2), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.deleteData(0, 2), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(0, 2), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.deleteData(1, 2), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.deleteData(1, 2), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(1, 2), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.deleteData(foreignComment.length, 2), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.deleteData(foreignComment.length, 2), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(foreignComment.length, 2), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.deleteData(1, 2), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.deleteData(1, 2), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(1, 2), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.deleteData(2, 2), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.deleteData(2, 2), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(2, 2), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.deleteData(3, 2), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.deleteData(3, 2), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(3, 2), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.deleteData(376, 0), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.deleteData(376, 0), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(376, 0), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.deleteData(0, 0), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.deleteData(0, 0), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(0, 0), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.deleteData(1, 0), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.deleteData(1, 0), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(1, 0), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.deleteData(foreignComment.length, 0), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.deleteData(foreignComment.length, 0), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(foreignComment.length, 0), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.deleteData(1, 0), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.deleteData(1, 0), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(1, 0), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.deleteData(2, 0), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.deleteData(2, 0), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(2, 0), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.deleteData(3, 0), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.deleteData(3, 0), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(3, 0), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.deleteData(376, 631), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.deleteData(376, 631), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(376, 631), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.deleteData(0, 631), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.deleteData(0, 631), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(0, 631), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.deleteData(1, 631), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.deleteData(1, 631), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(1, 631), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.deleteData(foreignComment.length, 631), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.deleteData(foreignComment.length, 631), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(foreignComment.length, 631), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.deleteData(1, 631), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.deleteData(1, 631), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(1, 631), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.deleteData(2, 631), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.deleteData(2, 631), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(2, 631), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.deleteData(3, 631), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.deleteData(3, 631), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.deleteData(3, 631), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.deleteData(376, 2), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.deleteData(376, 2), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(376, 2), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.deleteData(0, 2), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.deleteData(0, 2), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(0, 2), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.deleteData(1, 2), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.deleteData(1, 2), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(1, 2), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.deleteData(xmlComment.length, 2), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.deleteData(xmlComment.length, 2), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(xmlComment.length, 2), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.deleteData(1, 2), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.deleteData(1, 2), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(1, 2), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.deleteData(2, 2), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.deleteData(2, 2), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(2, 2), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.deleteData(3, 2), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.deleteData(3, 2), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(3, 2), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.deleteData(376, 0), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.deleteData(376, 0), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(376, 0), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.deleteData(0, 0), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.deleteData(0, 0), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(0, 0), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.deleteData(1, 0), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.deleteData(1, 0), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(1, 0), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.deleteData(xmlComment.length, 0), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.deleteData(xmlComment.length, 0), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(xmlComment.length, 0), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.deleteData(1, 0), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.deleteData(1, 0), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(1, 0), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.deleteData(2, 0), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.deleteData(2, 0), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(2, 0), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.deleteData(3, 0), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.deleteData(3, 0), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(3, 0), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.deleteData(376, 631), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.deleteData(376, 631), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(376, 631), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.deleteData(0, 631), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.deleteData(0, 631), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(0, 631), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.deleteData(1, 631), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.deleteData(1, 631), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(1, 631), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.deleteData(xmlComment.length, 631), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.deleteData(xmlComment.length, 631), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(xmlComment.length, 631), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.deleteData(1, 631), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.deleteData(1, 631), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(1, 631), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.deleteData(2, 631), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.deleteData(2, 631), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(2, 631), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.deleteData(3, 631), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.deleteData(3, 631), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.deleteData(3, 631), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.deleteData(376, 2), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.deleteData(376, 2), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(376, 2), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.deleteData(0, 2), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.deleteData(0, 2), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(0, 2), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.deleteData(1, 2), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.deleteData(1, 2), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(1, 2), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.deleteData(detachedComment.length, 2), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.deleteData(detachedComment.length, 2), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(detachedComment.length, 2), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.deleteData(1, 2), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.deleteData(1, 2), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(1, 2), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.deleteData(2, 2), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.deleteData(2, 2), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(2, 2), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.deleteData(3, 2), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.deleteData(3, 2), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(3, 2), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.deleteData(376, 0), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.deleteData(376, 0), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(376, 0), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.deleteData(0, 0), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.deleteData(0, 0), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(0, 0), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.deleteData(1, 0), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.deleteData(1, 0), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(1, 0), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.deleteData(detachedComment.length, 0), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.deleteData(detachedComment.length, 0), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(detachedComment.length, 0), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.deleteData(1, 0), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.deleteData(1, 0), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(1, 0), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.deleteData(2, 0), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.deleteData(2, 0), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(2, 0), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.deleteData(3, 0), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.deleteData(3, 0), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(3, 0), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.deleteData(376, 631), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.deleteData(376, 631), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(376, 631), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.deleteData(0, 631), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.deleteData(0, 631), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(0, 631), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.deleteData(1, 631), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.deleteData(1, 631), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(1, 631), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.deleteData(detachedComment.length, 631), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.deleteData(detachedComment.length, 631), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(detachedComment.length, 631), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.deleteData(1, 631), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.deleteData(1, 631), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(1, 631), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.deleteData(2, 631), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.deleteData(2, 631), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(2, 631), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.deleteData(3, 631), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.deleteData(3, 631), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.deleteData(3, 631), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(376, 2), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.deleteData(376, 2), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(376, 2), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(0, 2), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.deleteData(0, 2), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(0, 2), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(1, 2), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.deleteData(1, 2), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(1, 2), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(detachedForeignComment.length, 2), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.deleteData(detachedForeignComment.length, 2), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(detachedForeignComment.length, 2), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(1, 2), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.deleteData(1, 2), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(1, 2), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(2, 2), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.deleteData(2, 2), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(2, 2), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(3, 2), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.deleteData(3, 2), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(3, 2), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(376, 0), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.deleteData(376, 0), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(376, 0), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(0, 0), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.deleteData(0, 0), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(0, 0), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(1, 0), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.deleteData(1, 0), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(1, 0), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(detachedForeignComment.length, 0), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.deleteData(detachedForeignComment.length, 0), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(detachedForeignComment.length, 0), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(1, 0), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.deleteData(1, 0), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(1, 0), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(2, 0), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.deleteData(2, 0), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(2, 0), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(3, 0), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.deleteData(3, 0), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(3, 0), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(376, 631), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.deleteData(376, 631), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(376, 631), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(0, 631), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.deleteData(0, 631), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(0, 631), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(1, 631), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.deleteData(1, 631), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(1, 631), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(detachedForeignComment.length, 631), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.deleteData(detachedForeignComment.length, 631), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(detachedForeignComment.length, 631), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(1, 631), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.deleteData(1, 631), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(1, 631), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(2, 631), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.deleteData(2, 631), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(2, 631), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.deleteData(3, 631), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.deleteData(3, 631), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.deleteData(3, 631), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(376, 2), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.deleteData(376, 2), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(376, 2), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(0, 2), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.deleteData(0, 2), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(0, 2), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(1, 2), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.deleteData(1, 2), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(1, 2), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(detachedXmlComment.length, 2), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.deleteData(detachedXmlComment.length, 2), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(detachedXmlComment.length, 2), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(1, 2), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.deleteData(1, 2), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(1, 2), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(2, 2), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.deleteData(2, 2), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(2, 2), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(3, 2), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.deleteData(3, 2), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(3, 2), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(376, 0), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.deleteData(376, 0), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(376, 0), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(0, 0), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.deleteData(0, 0), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(0, 0), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(1, 0), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.deleteData(1, 0), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(1, 0), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(detachedXmlComment.length, 0), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.deleteData(detachedXmlComment.length, 0), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(detachedXmlComment.length, 0), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(1, 0), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.deleteData(1, 0), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(1, 0), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(2, 0), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.deleteData(2, 0), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(2, 0), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(3, 0), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.deleteData(3, 0), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(3, 0), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(376, 631), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.deleteData(376, 631), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(376, 631), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(0, 631), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.deleteData(0, 631), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(0, 631), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(1, 631), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.deleteData(1, 631), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(1, 631), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(detachedXmlComment.length, 631), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.deleteData(detachedXmlComment.length, 631), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(detachedXmlComment.length, 631), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(1, 631), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.deleteData(1, 631), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(1, 631), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(2, 631), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.deleteData(2, 631), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(2, 631), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.deleteData(3, 631), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.deleteData(3, 631), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.deleteData(3, 631), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(1, 2), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(1, 2), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].firstChild.deleteData(1, 2), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(1, 2), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(1, 2), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(1, 2), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.deleteData(1, 2), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(1, 2), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(2, 2), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.deleteData(2, 2), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(2, 2), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(3, 2), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.deleteData(3, 2), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(3, 2), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(1, 2), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.deleteData(1, 2), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(1, 2), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(2, 2), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.deleteData(2, 2), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(2, 2), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.deleteData(3, 2), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.deleteData(3, 2), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.deleteData(3, 2), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(376, 0, &quot;foo&quot;), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.replaceData(376, 0, &quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(376, 0, &quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(376, 0, &quot;&quot;), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.replaceData(376, 0, &quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(376, 0, &quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 0, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 0, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 0, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 0, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(2, 0, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(2, 0, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(2, 0, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(3, 0, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(3, 0, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(3, 0, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(376, 1, &quot;foo&quot;), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.replaceData(376, 1, &quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(376, 1, &quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(376, 1, &quot;&quot;), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.replaceData(376, 1, &quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(376, 1, &quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 1, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 1, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 1, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 1, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(2, 1, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(2, 1, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(2, 1, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(3, 1, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(3, 1, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(3, 1, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(376, 47, &quot;foo&quot;), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.replaceData(376, 47, &quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(376, 47, &quot;foo&quot;), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, &quot;foo&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, &quot;foo&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(376, 47, &quot;&quot;), with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.replaceData(376, 47, &quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(376, 47, &quot;&quot;), with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, &quot;&quot;), with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(paras[0].firstChild.length, 47, &quot;&quot;), with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 47, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 47, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 47, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(2, 47, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(2, 47, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(2, 47, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(3, 47, &quot;&quot;), with unselected range on paras[0].firstChild from 1 to 3 
</span><del>-FAIL paras[0].firstChild.replaceData(3, 47, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b&quot; but got object &quot;b̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(3, 47, &quot;&quot;), with selected range on paras[0].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(376, 0, &quot;foo&quot;), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.replaceData(376, 0, &quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(376, 0, &quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(2, 0, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(2, 0, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(2, 0, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(3, 0, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(3, 0, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(3, 0, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(376, 0, &quot;&quot;), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.replaceData(376, 0, &quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(376, 0, &quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 0, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(1, 0, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(1, 0, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(1, 0, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(2, 0, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(2, 0, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(2, 0, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(3, 0, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(3, 0, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(3, 0, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(376, 1, &quot;foo&quot;), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.replaceData(376, 1, &quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(376, 1, &quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(2, 1, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(2, 1, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(2, 1, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(3, 1, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(3, 1, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(3, 1, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(376, 1, &quot;&quot;), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.replaceData(376, 1, &quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(376, 1, &quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 1, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(1, 1, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(1, 1, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(1, 1, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(2, 1, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(2, 1, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(2, 1, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(3, 1, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(3, 1, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(3, 1, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(376, 47, &quot;foo&quot;), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.replaceData(376, 47, &quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(376, 47, &quot;foo&quot;), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, &quot;foo&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, &quot;foo&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(2, 47, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(2, 47, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(2, 47, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(3, 47, &quot;foo&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(3, 47, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(3, 47, &quot;foo&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(376, 47, &quot;&quot;), with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.replaceData(376, 47, &quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(376, 47, &quot;&quot;), with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, &quot;&quot;), with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(paras[1].firstChild.length, 47, &quot;&quot;), with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(1, 47, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(1, 47, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(1, 47, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(2, 47, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(2, 47, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(2, 47, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS paras[1].firstChild.replaceData(3, 47, &quot;&quot;), with unselected range on paras[1].firstChild from 1 to 3 
</span><del>-FAIL paras[1].firstChild.replaceData(3, 47, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jk&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.replaceData(3, 47, &quot;&quot;), with selected range on paras[1].firstChild from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(376, 0, &quot;foo&quot;), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(foreignTextNode.length, 0, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.replaceData(foreignTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(foreignTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(2, 0, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(3, 0, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(376, 0, &quot;&quot;), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.replaceData(376, 0, &quot;&quot;), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(376, 0, &quot;&quot;), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(foreignTextNode.length, 0, &quot;&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.replaceData(foreignTextNode.length, 0, &quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(foreignTextNode.length, 0, &quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(1, 0, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(1, 0, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(1, 0, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(2, 0, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(2, 0, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(2, 0, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(3, 0, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(3, 0, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(3, 0, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(376, 1, &quot;foo&quot;), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(foreignTextNode.length, 1, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.replaceData(foreignTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(foreignTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(2, 1, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(3, 1, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(376, 1, &quot;&quot;), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.replaceData(376, 1, &quot;&quot;), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(376, 1, &quot;&quot;), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(foreignTextNode.length, 1, &quot;&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.replaceData(foreignTextNode.length, 1, &quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(foreignTextNode.length, 1, &quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(1, 1, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(1, 1, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(1, 1, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(2, 1, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(2, 1, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(2, 1, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(3, 1, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(3, 1, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(3, 1, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(376, 47, &quot;foo&quot;), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(foreignTextNode.length, 47, &quot;foo&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.replaceData(foreignTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(foreignTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(2, 47, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(3, 47, &quot;foo&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(376, 47, &quot;&quot;), with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.replaceData(376, 47, &quot;&quot;), with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(376, 47, &quot;&quot;), with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(foreignTextNode.length, 47, &quot;&quot;), with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.replaceData(foreignTextNode.length, 47, &quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(foreignTextNode.length, 47, &quot;&quot;), with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.replaceData(1, 47, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(1, 47, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(1, 47, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(2, 47, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(2, 47, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(2, 47, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS foreignTextNode.replaceData(3, 47, &quot;&quot;), with unselected range on foreignTextNode from 1 to 3 
</span><del>-FAIL foreignTextNode.replaceData(3, 47, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.replaceData(3, 47, &quot;&quot;), with selected range on foreignTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(376, 0, &quot;foo&quot;), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(xmlTextNode.length, 0, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.replaceData(xmlTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(xmlTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(2, 0, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(3, 0, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(376, 0, &quot;&quot;), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.replaceData(376, 0, &quot;&quot;), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(376, 0, &quot;&quot;), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(xmlTextNode.length, 0, &quot;&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.replaceData(xmlTextNode.length, 0, &quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(xmlTextNode.length, 0, &quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(1, 0, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(1, 0, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(1, 0, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(2, 0, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(2, 0, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(2, 0, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(3, 0, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(3, 0, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(3, 0, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(376, 1, &quot;foo&quot;), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(xmlTextNode.length, 1, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.replaceData(xmlTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(xmlTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(2, 1, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(3, 1, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(376, 1, &quot;&quot;), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.replaceData(376, 1, &quot;&quot;), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(376, 1, &quot;&quot;), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(xmlTextNode.length, 1, &quot;&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.replaceData(xmlTextNode.length, 1, &quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(xmlTextNode.length, 1, &quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(1, 1, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(1, 1, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(1, 1, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(2, 1, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(2, 1, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(2, 1, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(3, 1, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(3, 1, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(3, 1, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(376, 47, &quot;foo&quot;), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(xmlTextNode.length, 47, &quot;foo&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.replaceData(xmlTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(xmlTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(2, 47, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(3, 47, &quot;foo&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(376, 47, &quot;&quot;), with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.replaceData(376, 47, &quot;&quot;), with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(376, 47, &quot;&quot;), with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(xmlTextNode.length, 47, &quot;&quot;), with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.replaceData(xmlTextNode.length, 47, &quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(xmlTextNode.length, 47, &quot;&quot;), with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.replaceData(1, 47, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(1, 47, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(1, 47, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(2, 47, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(2, 47, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(2, 47, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS xmlTextNode.replaceData(3, 47, &quot;&quot;), with unselected range on xmlTextNode from 1 to 3 
</span><del>-FAIL xmlTextNode.replaceData(3, 47, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.replaceData(3, 47, &quot;&quot;), with selected range on xmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(376, 0, &quot;foo&quot;), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(detachedTextNode.length, 0, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.replaceData(detachedTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(detachedTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(2, 0, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(3, 0, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(376, 0, &quot;&quot;), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.replaceData(376, 0, &quot;&quot;), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(376, 0, &quot;&quot;), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(detachedTextNode.length, 0, &quot;&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.replaceData(detachedTextNode.length, 0, &quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(detachedTextNode.length, 0, &quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(1, 0, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(1, 0, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(1, 0, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(2, 0, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(2, 0, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(2, 0, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(3, 0, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(3, 0, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(3, 0, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(376, 1, &quot;foo&quot;), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(detachedTextNode.length, 1, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.replaceData(detachedTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(detachedTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(2, 1, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(3, 1, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(376, 1, &quot;&quot;), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.replaceData(376, 1, &quot;&quot;), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(376, 1, &quot;&quot;), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(detachedTextNode.length, 1, &quot;&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.replaceData(detachedTextNode.length, 1, &quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(detachedTextNode.length, 1, &quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(1, 1, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(1, 1, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(1, 1, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(2, 1, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(2, 1, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(2, 1, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(3, 1, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(3, 1, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(3, 1, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(376, 47, &quot;foo&quot;), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(detachedTextNode.length, 47, &quot;foo&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.replaceData(detachedTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(detachedTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(2, 47, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(3, 47, &quot;foo&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(376, 47, &quot;&quot;), with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.replaceData(376, 47, &quot;&quot;), with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(376, 47, &quot;&quot;), with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(detachedTextNode.length, 47, &quot;&quot;), with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.replaceData(detachedTextNode.length, 47, &quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(detachedTextNode.length, 47, &quot;&quot;), with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.replaceData(1, 47, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(1, 47, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(1, 47, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(2, 47, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(2, 47, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(2, 47, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedTextNode.replaceData(3, 47, &quot;&quot;), with unselected range on detachedTextNode from 1 to 3 
</span><del>-FAIL detachedTextNode.replaceData(3, 47, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.replaceData(3, 47, &quot;&quot;), with selected range on detachedTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(376, 0, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(2, 0, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(3, 0, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(376, 0, &quot;&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.replaceData(376, 0, &quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(376, 0, &quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(1, 0, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(1, 0, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(1, 0, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(2, 0, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(2, 0, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(2, 0, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(3, 0, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(3, 0, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(3, 0, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(376, 1, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(2, 1, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(3, 1, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(376, 1, &quot;&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.replaceData(376, 1, &quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(376, 1, &quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(1, 1, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(1, 1, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(1, 1, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(2, 1, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(2, 1, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(2, 1, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(3, 1, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(3, 1, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(3, 1, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(376, 47, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, &quot;foo&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(2, 47, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(3, 47, &quot;foo&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(376, 47, &quot;&quot;), with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.replaceData(376, 47, &quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(376, 47, &quot;&quot;), with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, &quot;&quot;), with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, &quot;&quot;), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(1, 47, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(1, 47, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(1, 47, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(2, 47, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(2, 47, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(2, 47, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedForeignTextNode.replaceData(3, 47, &quot;&quot;), with unselected range on detachedForeignTextNode from 1 to 3 
</span><del>-FAIL detachedForeignTextNode.replaceData(3, 47, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.replaceData(3, 47, &quot;&quot;), with selected range on detachedForeignTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(376, 0, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(1, 0, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(2, 0, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(3, 0, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(376, 0, &quot;&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.replaceData(376, 0, &quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(376, 0, &quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(1, 0, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(1, 0, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(1, 0, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(2, 0, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(2, 0, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(2, 0, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(3, 0, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(3, 0, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(3, 0, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(376, 1, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(1, 1, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(2, 1, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(3, 1, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(376, 1, &quot;&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.replaceData(376, 1, &quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(376, 1, &quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(1, 1, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(1, 1, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(1, 1, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(2, 1, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(2, 1, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(2, 1, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(3, 1, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(3, 1, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(3, 1, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(376, 47, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, &quot;foo&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(1, 47, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(2, 47, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(3, 47, &quot;foo&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(376, 47, &quot;&quot;), with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.replaceData(376, 47, &quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(376, 47, &quot;&quot;), with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, &quot;&quot;), with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, &quot;&quot;), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(1, 47, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(1, 47, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(1, 47, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(2, 47, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(2, 47, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(2, 47, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS detachedXmlTextNode.replaceData(3, 47, &quot;&quot;), with unselected range on detachedXmlTextNode from 1 to 3 
</span><del>-FAIL detachedXmlTextNode.replaceData(3, 47, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.replaceData(3, 47, &quot;&quot;), with selected range on detachedXmlTextNode from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(376, 0, &quot;foo&quot;), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.replaceData(376, 0, &quot;foo&quot;), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(376, 0, &quot;foo&quot;), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.replaceData(comment.length, 0, &quot;foo&quot;), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.replaceData(comment.length, 0, &quot;foo&quot;), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(comment.length, 0, &quot;foo&quot;), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.replaceData(1, 0, &quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(1, 0, &quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(1, 0, &quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(2, 0, &quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(2, 0, &quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(2, 0, &quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(3, 0, &quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(3, 0, &quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(3, 0, &quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(376, 0, &quot;&quot;), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.replaceData(376, 0, &quot;&quot;), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(376, 0, &quot;&quot;), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.replaceData(comment.length, 0, &quot;&quot;), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.replaceData(comment.length, 0, &quot;&quot;), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(comment.length, 0, &quot;&quot;), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.replaceData(1, 0, &quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(1, 0, &quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(1, 0, &quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(2, 0, &quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(2, 0, &quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(2, 0, &quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(3, 0, &quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(3, 0, &quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(3, 0, &quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(376, 1, &quot;foo&quot;), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.replaceData(376, 1, &quot;foo&quot;), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(376, 1, &quot;foo&quot;), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.replaceData(comment.length, 1, &quot;foo&quot;), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.replaceData(comment.length, 1, &quot;foo&quot;), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(comment.length, 1, &quot;foo&quot;), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.replaceData(1, 1, &quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(1, 1, &quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(1, 1, &quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(2, 1, &quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(2, 1, &quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(2, 1, &quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(3, 1, &quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(3, 1, &quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(3, 1, &quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(376, 1, &quot;&quot;), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.replaceData(376, 1, &quot;&quot;), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(376, 1, &quot;&quot;), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.replaceData(comment.length, 1, &quot;&quot;), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.replaceData(comment.length, 1, &quot;&quot;), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(comment.length, 1, &quot;&quot;), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.replaceData(1, 1, &quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(1, 1, &quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(1, 1, &quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(2, 1, &quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(2, 1, &quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(2, 1, &quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(3, 1, &quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(3, 1, &quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(3, 1, &quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(376, 47, &quot;foo&quot;), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.replaceData(376, 47, &quot;foo&quot;), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(376, 47, &quot;foo&quot;), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.replaceData(comment.length, 47, &quot;foo&quot;), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.replaceData(comment.length, 47, &quot;foo&quot;), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(comment.length, 47, &quot;foo&quot;), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.replaceData(1, 47, &quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(1, 47, &quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(1, 47, &quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(2, 47, &quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(2, 47, &quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(2, 47, &quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(3, 47, &quot;foo&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(3, 47, &quot;foo&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(3, 47, &quot;foo&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(376, 47, &quot;&quot;), with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.replaceData(376, 47, &quot;&quot;), with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(376, 47, &quot;&quot;), with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.replaceData(comment.length, 47, &quot;&quot;), with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.replaceData(comment.length, 47, &quot;&quot;), with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(comment.length, 47, &quot;&quot;), with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.replaceData(1, 47, &quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(1, 47, &quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(1, 47, &quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(2, 47, &quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(2, 47, &quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(2, 47, &quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS comment.replaceData(3, 47, &quot;&quot;), with unselected range on comment from 1 to 3 
</span><del>-FAIL comment.replaceData(3, 47, &quot;&quot;), with selected range on comment from 1 to 3 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.replaceData(3, 47, &quot;&quot;), with selected range on comment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(376, 0, &quot;foo&quot;), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.replaceData(376, 0, &quot;foo&quot;), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(376, 0, &quot;foo&quot;), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.replaceData(foreignComment.length, 0, &quot;foo&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.replaceData(foreignComment.length, 0, &quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(foreignComment.length, 0, &quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.replaceData(1, 0, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(1, 0, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(1, 0, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(2, 0, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(2, 0, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(2, 0, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(3, 0, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(3, 0, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(3, 0, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(376, 0, &quot;&quot;), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.replaceData(376, 0, &quot;&quot;), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(376, 0, &quot;&quot;), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.replaceData(foreignComment.length, 0, &quot;&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.replaceData(foreignComment.length, 0, &quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(foreignComment.length, 0, &quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.replaceData(1, 0, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(1, 0, &quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(1, 0, &quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(2, 0, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(2, 0, &quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(2, 0, &quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(3, 0, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(3, 0, &quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(3, 0, &quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(376, 1, &quot;foo&quot;), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.replaceData(376, 1, &quot;foo&quot;), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(376, 1, &quot;foo&quot;), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.replaceData(foreignComment.length, 1, &quot;foo&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.replaceData(foreignComment.length, 1, &quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(foreignComment.length, 1, &quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.replaceData(1, 1, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(1, 1, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(1, 1, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(2, 1, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(2, 1, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(2, 1, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(3, 1, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(3, 1, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(3, 1, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(376, 1, &quot;&quot;), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.replaceData(376, 1, &quot;&quot;), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(376, 1, &quot;&quot;), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.replaceData(foreignComment.length, 1, &quot;&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.replaceData(foreignComment.length, 1, &quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(foreignComment.length, 1, &quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.replaceData(1, 1, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(1, 1, &quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(1, 1, &quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(2, 1, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(2, 1, &quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(2, 1, &quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(3, 1, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(3, 1, &quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(3, 1, &quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(376, 47, &quot;foo&quot;), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.replaceData(376, 47, &quot;foo&quot;), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(376, 47, &quot;foo&quot;), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.replaceData(foreignComment.length, 47, &quot;foo&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.replaceData(foreignComment.length, 47, &quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(foreignComment.length, 47, &quot;foo&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.replaceData(1, 47, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(1, 47, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(1, 47, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(2, 47, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(2, 47, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(2, 47, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(3, 47, &quot;foo&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(3, 47, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(3, 47, &quot;foo&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(376, 47, &quot;&quot;), with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.replaceData(376, 47, &quot;&quot;), with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(376, 47, &quot;&quot;), with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.replaceData(foreignComment.length, 47, &quot;&quot;), with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.replaceData(foreignComment.length, 47, &quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(foreignComment.length, 47, &quot;&quot;), with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.replaceData(1, 47, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(1, 47, &quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(1, 47, &quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(2, 47, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(2, 47, &quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(2, 47, &quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS foreignComment.replaceData(3, 47, &quot;&quot;), with unselected range on foreignComment from 1 to 3 
</span><del>-FAIL foreignComment.replaceData(3, 47, &quot;&quot;), with selected range on foreignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.replaceData(3, 47, &quot;&quot;), with selected range on foreignComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(376, 0, &quot;foo&quot;), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.replaceData(376, 0, &quot;foo&quot;), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(376, 0, &quot;foo&quot;), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.replaceData(xmlComment.length, 0, &quot;foo&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.replaceData(xmlComment.length, 0, &quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(xmlComment.length, 0, &quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.replaceData(1, 0, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(1, 0, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(1, 0, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(2, 0, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(2, 0, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(2, 0, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(3, 0, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(3, 0, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(3, 0, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(376, 0, &quot;&quot;), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.replaceData(376, 0, &quot;&quot;), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(376, 0, &quot;&quot;), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.replaceData(xmlComment.length, 0, &quot;&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.replaceData(xmlComment.length, 0, &quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(xmlComment.length, 0, &quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.replaceData(1, 0, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(1, 0, &quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(1, 0, &quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(2, 0, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(2, 0, &quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(2, 0, &quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(3, 0, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(3, 0, &quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(3, 0, &quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(376, 1, &quot;foo&quot;), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.replaceData(376, 1, &quot;foo&quot;), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(376, 1, &quot;foo&quot;), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.replaceData(xmlComment.length, 1, &quot;foo&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.replaceData(xmlComment.length, 1, &quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(xmlComment.length, 1, &quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.replaceData(1, 1, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(1, 1, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(1, 1, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(2, 1, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(2, 1, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(2, 1, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(3, 1, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(3, 1, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(3, 1, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(376, 1, &quot;&quot;), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.replaceData(376, 1, &quot;&quot;), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(376, 1, &quot;&quot;), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.replaceData(xmlComment.length, 1, &quot;&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.replaceData(xmlComment.length, 1, &quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(xmlComment.length, 1, &quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.replaceData(1, 1, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(1, 1, &quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(1, 1, &quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(2, 1, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(2, 1, &quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(2, 1, &quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(3, 1, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(3, 1, &quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(3, 1, &quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(376, 47, &quot;foo&quot;), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.replaceData(376, 47, &quot;foo&quot;), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(376, 47, &quot;foo&quot;), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.replaceData(xmlComment.length, 47, &quot;foo&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.replaceData(xmlComment.length, 47, &quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(xmlComment.length, 47, &quot;foo&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.replaceData(1, 47, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(1, 47, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(1, 47, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(2, 47, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(2, 47, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(2, 47, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(3, 47, &quot;foo&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(3, 47, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(3, 47, &quot;foo&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(376, 47, &quot;&quot;), with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.replaceData(376, 47, &quot;&quot;), with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(376, 47, &quot;&quot;), with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.replaceData(xmlComment.length, 47, &quot;&quot;), with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.replaceData(xmlComment.length, 47, &quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(xmlComment.length, 47, &quot;&quot;), with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.replaceData(1, 47, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(1, 47, &quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(1, 47, &quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(2, 47, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(2, 47, &quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(2, 47, &quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS xmlComment.replaceData(3, 47, &quot;&quot;), with unselected range on xmlComment from 1 to 3 
</span><del>-FAIL xmlComment.replaceData(3, 47, &quot;&quot;), with selected range on xmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.replaceData(3, 47, &quot;&quot;), with selected range on xmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(376, 0, &quot;foo&quot;), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.replaceData(detachedComment.length, 0, &quot;foo&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.replaceData(detachedComment.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(detachedComment.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.replaceData(1, 0, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(2, 0, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(3, 0, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(376, 0, &quot;&quot;), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.replaceData(376, 0, &quot;&quot;), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(376, 0, &quot;&quot;), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.replaceData(detachedComment.length, 0, &quot;&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.replaceData(detachedComment.length, 0, &quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(detachedComment.length, 0, &quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.replaceData(1, 0, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(1, 0, &quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(1, 0, &quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(2, 0, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(2, 0, &quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(2, 0, &quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(3, 0, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(3, 0, &quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(3, 0, &quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(376, 1, &quot;foo&quot;), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.replaceData(detachedComment.length, 1, &quot;foo&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.replaceData(detachedComment.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(detachedComment.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.replaceData(1, 1, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(2, 1, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(3, 1, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(376, 1, &quot;&quot;), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.replaceData(376, 1, &quot;&quot;), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(376, 1, &quot;&quot;), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.replaceData(detachedComment.length, 1, &quot;&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.replaceData(detachedComment.length, 1, &quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(detachedComment.length, 1, &quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.replaceData(1, 1, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(1, 1, &quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(1, 1, &quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(2, 1, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(2, 1, &quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(2, 1, &quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(3, 1, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(3, 1, &quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(3, 1, &quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(376, 47, &quot;foo&quot;), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.replaceData(detachedComment.length, 47, &quot;foo&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.replaceData(detachedComment.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(detachedComment.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.replaceData(1, 47, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(2, 47, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(3, 47, &quot;foo&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(376, 47, &quot;&quot;), with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.replaceData(376, 47, &quot;&quot;), with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(376, 47, &quot;&quot;), with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.replaceData(detachedComment.length, 47, &quot;&quot;), with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.replaceData(detachedComment.length, 47, &quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(detachedComment.length, 47, &quot;&quot;), with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.replaceData(1, 47, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(1, 47, &quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(1, 47, &quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(2, 47, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(2, 47, &quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(2, 47, &quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedComment.replaceData(3, 47, &quot;&quot;), with unselected range on detachedComment from 1 to 3 
</span><del>-FAIL detachedComment.replaceData(3, 47, &quot;&quot;), with selected range on detachedComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.replaceData(3, 47, &quot;&quot;), with selected range on detachedComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(376, 0, &quot;foo&quot;), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(detachedForeignComment.length, 0, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.replaceData(detachedForeignComment.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(1, 0, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(2, 0, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(3, 0, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(376, 0, &quot;&quot;), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.replaceData(376, 0, &quot;&quot;), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(376, 0, &quot;&quot;), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(detachedForeignComment.length, 0, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.replaceData(detachedForeignComment.length, 0, &quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 0, &quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(1, 0, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(1, 0, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(1, 0, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(2, 0, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(2, 0, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(2, 0, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(3, 0, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(3, 0, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(3, 0, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(376, 1, &quot;foo&quot;), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(detachedForeignComment.length, 1, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.replaceData(detachedForeignComment.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(1, 1, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(2, 1, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(3, 1, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(376, 1, &quot;&quot;), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.replaceData(376, 1, &quot;&quot;), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(376, 1, &quot;&quot;), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(detachedForeignComment.length, 1, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.replaceData(detachedForeignComment.length, 1, &quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 1, &quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(1, 1, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(1, 1, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(1, 1, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(2, 1, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(2, 1, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(2, 1, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(3, 1, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(3, 1, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(3, 1, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(376, 47, &quot;foo&quot;), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(detachedForeignComment.length, 47, &quot;foo&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.replaceData(detachedForeignComment.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(1, 47, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(2, 47, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(3, 47, &quot;foo&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(376, 47, &quot;&quot;), with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.replaceData(376, 47, &quot;&quot;), with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(376, 47, &quot;&quot;), with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(detachedForeignComment.length, 47, &quot;&quot;), with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.replaceData(detachedForeignComment.length, 47, &quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(detachedForeignComment.length, 47, &quot;&quot;), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(1, 47, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(1, 47, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(1, 47, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(2, 47, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(2, 47, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(2, 47, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedForeignComment.replaceData(3, 47, &quot;&quot;), with unselected range on detachedForeignComment from 1 to 3 
</span><del>-FAIL detachedForeignComment.replaceData(3, 47, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.replaceData(3, 47, &quot;&quot;), with selected range on detachedForeignComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(376, 0, &quot;foo&quot;), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(376, 0, &quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(0, 0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(0, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(detachedXmlComment.length, 0, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.replaceData(detachedXmlComment.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 0, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(1, 0, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(1, 0, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(2, 0, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(2, 0, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(3, 0, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(3, 0, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(376, 0, &quot;&quot;), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.replaceData(376, 0, &quot;&quot;), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(376, 0, &quot;&quot;), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(0, 0, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(0, 0, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(1, 0, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(1, 0, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(detachedXmlComment.length, 0, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.replaceData(detachedXmlComment.length, 0, &quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 0, &quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(1, 0, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(1, 0, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(1, 0, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(2, 0, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(2, 0, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(2, 0, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(3, 0, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(3, 0, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(3, 0, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(376, 1, &quot;foo&quot;), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(376, 1, &quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(0, 1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(0, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(detachedXmlComment.length, 1, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.replaceData(detachedXmlComment.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 1, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(1, 1, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(1, 1, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(2, 1, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(2, 1, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(3, 1, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(3, 1, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(376, 1, &quot;&quot;), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.replaceData(376, 1, &quot;&quot;), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(376, 1, &quot;&quot;), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(0, 1, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(0, 1, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(1, 1, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(1, 1, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(detachedXmlComment.length, 1, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.replaceData(detachedXmlComment.length, 1, &quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 1, &quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(1, 1, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(1, 1, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(1, 1, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(2, 1, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(2, 1, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(2, 1, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(3, 1, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(3, 1, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(3, 1, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(376, 47, &quot;foo&quot;), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(376, 47, &quot;foo&quot;), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(0, 47, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(0, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(detachedXmlComment.length, 47, &quot;foo&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.replaceData(detachedXmlComment.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 47, &quot;foo&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(1, 47, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(1, 47, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(2, 47, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(2, 47, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(3, 47, &quot;foo&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(3, 47, &quot;foo&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(376, 47, &quot;&quot;), with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.replaceData(376, 47, &quot;&quot;), with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(376, 47, &quot;&quot;), with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(0, 47, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(0, 47, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(1, 47, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(1, 47, &quot;&quot;), with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(detachedXmlComment.length, 47, &quot;&quot;), with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.replaceData(detachedXmlComment.length, 47, &quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(detachedXmlComment.length, 47, &quot;&quot;), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(1, 47, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(1, 47, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(1, 47, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(2, 47, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(2, 47, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(2, 47, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS detachedXmlComment.replaceData(3, 47, &quot;&quot;), with unselected range on detachedXmlComment from 1 to 3 
</span><del>-FAIL detachedXmlComment.replaceData(3, 47, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.replaceData(3, 47, &quot;&quot;), with selected range on detachedXmlComment from 1 to 3 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 0, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(2, 0, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(3, 0, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 1, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(2, 1, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(3, 1, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with unselected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</span><del>-FAIL paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with selected range from (paras[0].firstChild, 1) to (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(1, 47, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(2, 47, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with unselected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</span><del>-FAIL paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb&quot; but got object &quot;Äb̈&quot;
</del><ins>+PASS paras[0].firstChild.replaceData(3, 47, &quot;foo&quot;), with selected range from (paras[0], 0) to (paras[0].firstChild, 3) 
</ins><span class="cx"> PASS paras[0].firstChild.data = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.data = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.data = paras[0].firstChild.data, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.data = paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data = paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.data += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.data += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.data += paras[0].firstChild.data, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.data += paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data += paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with unselected range collapsed at (paras[0].firstChild, 0) 
</span><del>-FAIL paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, 0) 
</ins><span class="cx"> PASS paras[0].firstChild.data = &quot;&quot;, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.data = &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.data = &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.data = &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.data = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.data = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.data = paras[0].firstChild.data, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.data = paras[0].firstChild.data, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.data = paras[0].firstChild.data, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.data += &quot;&quot;, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.data += &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.data += &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.data += &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.data += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.data += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.data += paras[0].firstChild.data, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.data += paras[0].firstChild.data, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.data += paras[0].firstChild.data, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = &quot;&quot;, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.textContent = &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.textContent = &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.textContent = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += &quot;&quot;, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.textContent += &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.textContent += &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.textContent += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = &quot;&quot;, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.nodeValue = &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += &quot;&quot;, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.nodeValue += &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with unselected range on paras[0].firstChild from 0 to 1 
</span><del>-FAIL paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;A&quot; but got object &quot;Ä&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[0].firstChild.data = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.data = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.data = paras[0].firstChild.data, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.data = paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data = paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.data += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.data += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.data += paras[0].firstChild.data, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.data += paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data += paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with unselected range collapsed at (paras[0].firstChild, 1) 
</span><del>-FAIL paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, 1) 
</ins><span class="cx"> PASS paras[0].firstChild.data = &quot;&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.data = &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.data = &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.data = &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.data = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.data = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.data = paras[0].firstChild.data, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.data = paras[0].firstChild.data, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.data = paras[0].firstChild.data, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.data += &quot;&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.data += &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.data += &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.data += &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.data += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.data += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.data += paras[0].firstChild.data, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.data += paras[0].firstChild.data, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.data += paras[0].firstChild.data, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = &quot;&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.textContent = &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.textContent = &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.textContent = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += &quot;&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.textContent += &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.textContent += &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.textContent += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = &quot;&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.nodeValue = &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += &quot;&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.nodeValue += &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with unselected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 0 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.data = &quot;&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.data = &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.data = &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.data = &quot;foo&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.data = &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.data = &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.data = paras[0].firstChild.data, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.data = paras[0].firstChild.data, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.data = paras[0].firstChild.data, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.data += &quot;&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.data += &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.data += &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.data += &quot;foo&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.data += &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.data += &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.data += paras[0].firstChild.data, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.data += paras[0].firstChild.data, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.data += paras[0].firstChild.data, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = &quot;&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.textContent = &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.textContent = &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = &quot;foo&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.textContent = &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += &quot;&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.textContent += &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.textContent += &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += &quot;foo&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.textContent += &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = &quot;&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.nodeValue = &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += &quot;&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.nodeValue += &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with unselected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</span><del>-FAIL paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;̈b̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;b̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range on paras[0].firstChild from 1 to paras[0].firstChild.length 
</ins><span class="cx"> PASS paras[0].firstChild.data = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.data = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.data = paras[0].firstChild.data, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.data = paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data = paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.data += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.data += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.data += paras[0].firstChild.data, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.data += paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.data += paras[0].firstChild.data, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent = paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.textContent += paras[0].firstChild.textContent, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue = paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += &quot;&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with unselected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</span><del>-FAIL paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].firstChild.nodeValue += paras[0].firstChild.nodeValue, with selected range collapsed at (paras[0].firstChild, paras[0].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.data = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.data = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.data = paras[1].firstChild.data, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.data = paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.data += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.data += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.data += paras[1].firstChild.data, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.data += paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with unselected range collapsed at (paras[1].firstChild, 0) 
</span><del>-FAIL paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, 0) 
</ins><span class="cx"> PASS paras[1].firstChild.data = &quot;&quot;, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.data = &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.data = &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.data = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.data = paras[1].firstChild.data, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.data = paras[1].firstChild.data, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = paras[1].firstChild.data, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.data += &quot;&quot;, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.data += &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.data += &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.data += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.data += paras[1].firstChild.data, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.data += paras[1].firstChild.data, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += paras[1].firstChild.data, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = &quot;&quot;, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.textContent = &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.textContent = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += &quot;&quot;, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.textContent += &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.textContent += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = &quot;&quot;, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.nodeValue = &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += &quot;&quot;, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.nodeValue += &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with unselected range on paras[1].firstChild from 0 to 1 
</span><del>-FAIL paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;I&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 0 to 1 
</ins><span class="cx"> PASS paras[1].firstChild.data = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.data = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.data = paras[1].firstChild.data, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.data = paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.data += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.data += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.data += paras[1].firstChild.data, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.data += paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with unselected range collapsed at (paras[1].firstChild, 1) 
</span><del>-FAIL paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, 1) 
</ins><span class="cx"> PASS paras[1].firstChild.data = &quot;&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.data = &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.data = &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.data = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.data = paras[1].firstChild.data, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.data = paras[1].firstChild.data, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = paras[1].firstChild.data, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.data += &quot;&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.data += &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.data += &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.data += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.data += paras[1].firstChild.data, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.data += paras[1].firstChild.data, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += paras[1].firstChild.data, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = &quot;&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.textContent = &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.textContent = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += &quot;&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.textContent += &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.textContent += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = &quot;&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.nodeValue = &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += &quot;&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.nodeValue += &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with unselected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 0 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.data = &quot;&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.data = &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.data = &quot;foo&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.data = &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.data = paras[1].firstChild.data, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.data = paras[1].firstChild.data, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = paras[1].firstChild.data, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.data += &quot;&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.data += &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.data += &quot;foo&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.data += &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.data += paras[1].firstChild.data, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.data += paras[1].firstChild.data, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += paras[1].firstChild.data, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = &quot;&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.textContent = &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = &quot;foo&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.textContent = &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += &quot;&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.textContent += &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += &quot;foo&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.textContent += &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = &quot;&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.nodeValue = &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += &quot;&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.nodeValue += &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with unselected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</span><del>-FAIL paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;jklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range on paras[1].firstChild from 1 to paras[1].firstChild.length 
</ins><span class="cx"> PASS paras[1].firstChild.data = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.data = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.data = paras[1].firstChild.data, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.data = paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data = paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.data += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.data += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.data += paras[1].firstChild.data, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.data += paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.data += paras[1].firstChild.data, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent = paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.textContent += paras[1].firstChild.textContent, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue = paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += &quot;&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += &quot;&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += &quot;foo&quot;, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with unselected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</span><del>-FAIL paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[1].firstChild.nodeValue += paras[1].firstChild.nodeValue, with selected range collapsed at (paras[1].firstChild, paras[1].firstChild.length) 
</ins><span class="cx"> PASS foreignTextNode.data = &quot;&quot;, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.data = &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.data = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.data = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.data = foreignTextNode.data, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.data = foreignTextNode.data, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = foreignTextNode.data, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.data += &quot;&quot;, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.data += &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.data += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.data += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.data += foreignTextNode.data, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.data += foreignTextNode.data, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += foreignTextNode.data, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.textContent = &quot;&quot;, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.textContent = &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.textContent = foreignTextNode.textContent, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.textContent = foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.textContent += &quot;&quot;, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.textContent += &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.textContent += foreignTextNode.textContent, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.textContent += foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with unselected range collapsed at (foreignTextNode, 0) 
</span><del>-FAIL foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, 0) 
</ins><span class="cx"> PASS foreignTextNode.data = &quot;&quot;, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.data = &quot;&quot;, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = &quot;&quot;, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.data = &quot;foo&quot;, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.data = &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.data = foreignTextNode.data, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.data = foreignTextNode.data, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = foreignTextNode.data, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.data += &quot;&quot;, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.data += &quot;&quot;, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += &quot;&quot;, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.data += &quot;foo&quot;, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.data += &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.data += foreignTextNode.data, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.data += foreignTextNode.data, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += foreignTextNode.data, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.textContent = &quot;&quot;, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.textContent = &quot;&quot;, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = &quot;&quot;, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.textContent = &quot;foo&quot;, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.textContent = &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.textContent = foreignTextNode.textContent, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.textContent = foreignTextNode.textContent, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = foreignTextNode.textContent, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.textContent += &quot;&quot;, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.textContent += &quot;&quot;, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += &quot;&quot;, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.textContent += &quot;foo&quot;, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.textContent += &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.textContent += foreignTextNode.textContent, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.textContent += foreignTextNode.textContent, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += foreignTextNode.textContent, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = &quot;&quot;, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.nodeValue = &quot;&quot;, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = &quot;&quot;, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = &quot;foo&quot;, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.nodeValue = &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += &quot;&quot;, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.nodeValue += &quot;&quot;, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += &quot;&quot;, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += &quot;foo&quot;, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.nodeValue += &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with unselected range on foreignTextNode from 0 to 1 
</span><del>-FAIL foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range on foreignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range on foreignTextNode from 0 to 1 
</ins><span class="cx"> PASS foreignTextNode.data = &quot;&quot;, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.data = &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.data = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.data = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.data = foreignTextNode.data, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.data = foreignTextNode.data, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = foreignTextNode.data, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.data += &quot;&quot;, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.data += &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.data += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.data += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.data += foreignTextNode.data, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.data += foreignTextNode.data, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += foreignTextNode.data, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.textContent = &quot;&quot;, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.textContent = &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.textContent = foreignTextNode.textContent, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.textContent = foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.textContent += &quot;&quot;, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.textContent += &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.textContent += foreignTextNode.textContent, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.textContent += foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with unselected range collapsed at (foreignTextNode, 1) 
</span><del>-FAIL foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, 1) 
</ins><span class="cx"> PASS foreignTextNode.data = &quot;&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.data = &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.data = &quot;foo&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.data = &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.data = foreignTextNode.data, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.data = foreignTextNode.data, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = foreignTextNode.data, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.data += &quot;&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.data += &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.data += &quot;foo&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.data += &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.data += foreignTextNode.data, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.data += foreignTextNode.data, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += foreignTextNode.data, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.textContent = &quot;&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.textContent = &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.textContent = &quot;foo&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.textContent = &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.textContent = foreignTextNode.textContent, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.textContent = foreignTextNode.textContent, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = foreignTextNode.textContent, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.textContent += &quot;&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.textContent += &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.textContent += &quot;foo&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.textContent += &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.textContent += foreignTextNode.textContent, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.textContent += foreignTextNode.textContent, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += foreignTextNode.textContent, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = &quot;&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.nodeValue = &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = &quot;foo&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.nodeValue = &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += &quot;&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.nodeValue += &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += &quot;&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += &quot;foo&quot;, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.nodeValue += &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with unselected range on foreignTextNode from 0 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range on foreignTextNode from 0 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range on foreignTextNode from 0 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.data = &quot;&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.data = &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.data = &quot;foo&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.data = &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.data = foreignTextNode.data, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.data = foreignTextNode.data, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = foreignTextNode.data, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.data += &quot;&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.data += &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.data += &quot;foo&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.data += &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.data += foreignTextNode.data, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.data += foreignTextNode.data, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += foreignTextNode.data, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.textContent = &quot;&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.textContent = &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.textContent = &quot;foo&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.textContent = &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.textContent = foreignTextNode.textContent, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.textContent = foreignTextNode.textContent, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = foreignTextNode.textContent, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.textContent += &quot;&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.textContent += &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.textContent += &quot;foo&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.textContent += &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.textContent += foreignTextNode.textContent, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.textContent += foreignTextNode.textContent, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += foreignTextNode.textContent, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = &quot;&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.nodeValue = &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = &quot;foo&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.nodeValue = &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += &quot;&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.nodeValue += &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += &quot;&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += &quot;foo&quot;, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.nodeValue += &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with unselected range on foreignTextNode from 1 to foreignTextNode.length 
</span><del>-FAIL foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range on foreignTextNode from 1 to foreignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range on foreignTextNode from 1 to foreignTextNode.length 
</ins><span class="cx"> PASS foreignTextNode.data = &quot;&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.data = &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.data = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.data = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.data = foreignTextNode.data, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.data = foreignTextNode.data, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data = foreignTextNode.data, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.data += &quot;&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.data += &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.data += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.data += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.data += foreignTextNode.data, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.data += foreignTextNode.data, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.data += foreignTextNode.data, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.textContent = &quot;&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.textContent = &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.textContent = foreignTextNode.textContent, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.textContent = foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent = foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.textContent += &quot;&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.textContent += &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.textContent += foreignTextNode.textContent, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.textContent += foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.textContent += foreignTextNode.textContent, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue = foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with unselected range collapsed at (foreignTextNode, foreignTextNode.length) 
</span><del>-FAIL foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, foreignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignTextNode.nodeValue += foreignTextNode.nodeValue, with selected range collapsed at (foreignTextNode, foreignTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.data = &quot;&quot;, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.data = &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.data = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.data = xmlTextNode.data, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.data = xmlTextNode.data, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = xmlTextNode.data, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.data += &quot;&quot;, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.data += &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.data += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.data += xmlTextNode.data, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.data += xmlTextNode.data, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += xmlTextNode.data, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.textContent = &quot;&quot;, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.textContent = xmlTextNode.textContent, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.textContent = xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.textContent += &quot;&quot;, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.textContent += xmlTextNode.textContent, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.textContent += xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with unselected range collapsed at (xmlTextNode, 0) 
</span><del>-FAIL xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, 0) 
</ins><span class="cx"> PASS xmlTextNode.data = &quot;&quot;, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.data = &quot;&quot;, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = &quot;&quot;, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.data = &quot;foo&quot;, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.data = &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.data = xmlTextNode.data, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.data = xmlTextNode.data, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = xmlTextNode.data, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.data += &quot;&quot;, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.data += &quot;&quot;, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += &quot;&quot;, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.data += &quot;foo&quot;, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.data += &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.data += xmlTextNode.data, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.data += xmlTextNode.data, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += xmlTextNode.data, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.textContent = &quot;&quot;, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.textContent = &quot;&quot;, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = &quot;&quot;, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.textContent = &quot;foo&quot;, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.textContent = &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.textContent = xmlTextNode.textContent, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.textContent = xmlTextNode.textContent, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = xmlTextNode.textContent, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.textContent += &quot;&quot;, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.textContent += &quot;&quot;, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += &quot;&quot;, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.textContent += &quot;foo&quot;, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.textContent += &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.textContent += xmlTextNode.textContent, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.textContent += xmlTextNode.textContent, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += xmlTextNode.textContent, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = &quot;&quot;, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.nodeValue = &quot;&quot;, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = &quot;&quot;, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = &quot;foo&quot;, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.nodeValue = &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += &quot;&quot;, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.nodeValue += &quot;&quot;, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += &quot;&quot;, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += &quot;foo&quot;, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.nodeValue += &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with unselected range on xmlTextNode from 0 to 1 
</span><del>-FAIL xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range on xmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range on xmlTextNode from 0 to 1 
</ins><span class="cx"> PASS xmlTextNode.data = &quot;&quot;, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.data = &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.data = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.data = xmlTextNode.data, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.data = xmlTextNode.data, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = xmlTextNode.data, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.data += &quot;&quot;, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.data += &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.data += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.data += xmlTextNode.data, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.data += xmlTextNode.data, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += xmlTextNode.data, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.textContent = &quot;&quot;, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.textContent = xmlTextNode.textContent, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.textContent = xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.textContent += &quot;&quot;, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.textContent += xmlTextNode.textContent, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.textContent += xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with unselected range collapsed at (xmlTextNode, 1) 
</span><del>-FAIL xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, 1) 
</ins><span class="cx"> PASS xmlTextNode.data = &quot;&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.data = &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.data = &quot;foo&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.data = &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.data = xmlTextNode.data, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.data = xmlTextNode.data, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = xmlTextNode.data, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.data += &quot;&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.data += &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.data += &quot;foo&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.data += &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.data += xmlTextNode.data, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.data += xmlTextNode.data, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += xmlTextNode.data, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.textContent = &quot;&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.textContent = &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.textContent = &quot;foo&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.textContent = &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.textContent = xmlTextNode.textContent, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.textContent = xmlTextNode.textContent, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = xmlTextNode.textContent, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.textContent += &quot;&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.textContent += &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.textContent += &quot;foo&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.textContent += &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.textContent += xmlTextNode.textContent, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.textContent += xmlTextNode.textContent, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += xmlTextNode.textContent, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = &quot;&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.nodeValue = &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = &quot;foo&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.nodeValue = &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += &quot;&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.nodeValue += &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += &quot;&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += &quot;foo&quot;, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.nodeValue += &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with unselected range on xmlTextNode from 0 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range on xmlTextNode from 0 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range on xmlTextNode from 0 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.data = &quot;&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.data = &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.data = &quot;foo&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.data = &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.data = xmlTextNode.data, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.data = xmlTextNode.data, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = xmlTextNode.data, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.data += &quot;&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.data += &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.data += &quot;foo&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.data += &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.data += xmlTextNode.data, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.data += xmlTextNode.data, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += xmlTextNode.data, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.textContent = &quot;&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.textContent = &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.textContent = &quot;foo&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.textContent = &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.textContent = xmlTextNode.textContent, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.textContent = xmlTextNode.textContent, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = xmlTextNode.textContent, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.textContent += &quot;&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.textContent += &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.textContent += &quot;foo&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.textContent += &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.textContent += xmlTextNode.textContent, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.textContent += xmlTextNode.textContent, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += xmlTextNode.textContent, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = &quot;&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.nodeValue = &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = &quot;foo&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.nodeValue = &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += &quot;&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.nodeValue += &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += &quot;&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += &quot;foo&quot;, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.nodeValue += &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with unselected range on xmlTextNode from 1 to xmlTextNode.length 
</span><del>-FAIL xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range on xmlTextNode from 1 to xmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range on xmlTextNode from 1 to xmlTextNode.length 
</ins><span class="cx"> PASS xmlTextNode.data = &quot;&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.data = &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.data = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.data = xmlTextNode.data, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.data = xmlTextNode.data, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data = xmlTextNode.data, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.data += &quot;&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.data += &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.data += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.data += xmlTextNode.data, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.data += xmlTextNode.data, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.data += xmlTextNode.data, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.textContent = &quot;&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.textContent = xmlTextNode.textContent, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.textContent = xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent = xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.textContent += &quot;&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.textContent += xmlTextNode.textContent, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.textContent += xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.textContent += xmlTextNode.textContent, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue = xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with unselected range collapsed at (xmlTextNode, xmlTextNode.length) 
</span><del>-FAIL xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, xmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlTextNode.nodeValue += xmlTextNode.nodeValue, with selected range collapsed at (xmlTextNode, xmlTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.data = &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.data = detachedTextNode.data, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.data = detachedTextNode.data, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = detachedTextNode.data, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.data += &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.data += detachedTextNode.data, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.data += detachedTextNode.data, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += detachedTextNode.data, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.textContent = detachedTextNode.textContent, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.textContent = detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.textContent += detachedTextNode.textContent, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.textContent += detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with unselected range collapsed at (detachedTextNode, 0) 
</span><del>-FAIL detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, 0) 
</ins><span class="cx"> PASS detachedTextNode.data = &quot;&quot;, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.data = &quot;&quot;, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = &quot;&quot;, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.data = &quot;foo&quot;, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.data = &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.data = detachedTextNode.data, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.data = detachedTextNode.data, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = detachedTextNode.data, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.data += &quot;&quot;, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.data += &quot;&quot;, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += &quot;&quot;, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.data += &quot;foo&quot;, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.data += &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.data += detachedTextNode.data, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.data += detachedTextNode.data, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += detachedTextNode.data, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.textContent = &quot;&quot;, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.textContent = &quot;&quot;, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = &quot;&quot;, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.textContent = &quot;foo&quot;, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.textContent = &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.textContent = detachedTextNode.textContent, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.textContent = detachedTextNode.textContent, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = detachedTextNode.textContent, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.textContent += &quot;&quot;, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.textContent += &quot;&quot;, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += &quot;&quot;, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.textContent += &quot;foo&quot;, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.textContent += &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.textContent += detachedTextNode.textContent, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.textContent += detachedTextNode.textContent, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += detachedTextNode.textContent, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = &quot;&quot;, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.nodeValue = &quot;&quot;, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = &quot;&quot;, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += &quot;&quot;, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.nodeValue += &quot;&quot;, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += &quot;&quot;, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with unselected range on detachedTextNode from 0 to 1 
</span><del>-FAIL detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range on detachedTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range on detachedTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.data = &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.data = detachedTextNode.data, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.data = detachedTextNode.data, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = detachedTextNode.data, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.data += &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.data += detachedTextNode.data, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.data += detachedTextNode.data, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += detachedTextNode.data, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.textContent = detachedTextNode.textContent, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.textContent = detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.textContent += detachedTextNode.textContent, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.textContent += detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with unselected range collapsed at (detachedTextNode, 1) 
</span><del>-FAIL detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, 1) 
</ins><span class="cx"> PASS detachedTextNode.data = &quot;&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.data = &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.data = &quot;foo&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.data = &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.data = detachedTextNode.data, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.data = detachedTextNode.data, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = detachedTextNode.data, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.data += &quot;&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.data += &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.data += &quot;foo&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.data += &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.data += detachedTextNode.data, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.data += detachedTextNode.data, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += detachedTextNode.data, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.textContent = &quot;&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.textContent = &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.textContent = &quot;foo&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.textContent = &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.textContent = detachedTextNode.textContent, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.textContent = detachedTextNode.textContent, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = detachedTextNode.textContent, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.textContent += &quot;&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.textContent += &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.textContent += &quot;foo&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.textContent += &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.textContent += detachedTextNode.textContent, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.textContent += detachedTextNode.textContent, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += detachedTextNode.textContent, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = &quot;&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.nodeValue = &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += &quot;&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.nodeValue += &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += &quot;&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with unselected range on detachedTextNode from 0 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range on detachedTextNode from 0 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range on detachedTextNode from 0 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.data = &quot;&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.data = &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.data = &quot;foo&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.data = &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.data = detachedTextNode.data, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.data = detachedTextNode.data, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = detachedTextNode.data, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.data += &quot;&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.data += &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.data += &quot;foo&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.data += &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.data += detachedTextNode.data, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.data += detachedTextNode.data, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += detachedTextNode.data, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.textContent = &quot;&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.textContent = &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.textContent = &quot;foo&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.textContent = &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.textContent = detachedTextNode.textContent, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.textContent = detachedTextNode.textContent, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = detachedTextNode.textContent, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.textContent += &quot;&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.textContent += &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.textContent += &quot;foo&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.textContent += &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.textContent += detachedTextNode.textContent, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.textContent += detachedTextNode.textContent, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += detachedTextNode.textContent, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = &quot;&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.nodeValue = &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += &quot;&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.nodeValue += &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += &quot;&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with unselected range on detachedTextNode from 1 to detachedTextNode.length 
</span><del>-FAIL detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range on detachedTextNode from 1 to detachedTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range on detachedTextNode from 1 to detachedTextNode.length 
</ins><span class="cx"> PASS detachedTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.data = &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.data = detachedTextNode.data, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.data = detachedTextNode.data, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data = detachedTextNode.data, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.data += &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.data += detachedTextNode.data, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.data += detachedTextNode.data, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.data += detachedTextNode.data, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.textContent = detachedTextNode.textContent, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.textContent = detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent = detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.textContent += detachedTextNode.textContent, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.textContent += detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.textContent += detachedTextNode.textContent, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue = detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with unselected range collapsed at (detachedTextNode, detachedTextNode.length) 
</span><del>-FAIL detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, detachedTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedTextNode.nodeValue += detachedTextNode.nodeValue, with selected range collapsed at (detachedTextNode, detachedTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.data = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.data += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with unselected range collapsed at (detachedForeignTextNode, 0) 
</span><del>-FAIL detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, 0) 
</ins><span class="cx"> PASS detachedForeignTextNode.data = &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.data = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.data = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.data = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.data += &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.data += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.data += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.data += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.textContent = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.textContent += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with unselected range on detachedForeignTextNode from 0 to 1 
</span><del>-FAIL detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedForeignTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.data = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.data += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with unselected range collapsed at (detachedForeignTextNode, 1) 
</span><del>-FAIL detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, 1) 
</ins><span class="cx"> PASS detachedForeignTextNode.data = &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.data = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.data = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.data = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.data += &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.data += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.data += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.data += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.textContent = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.textContent += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with unselected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.data = &quot;&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.data = &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.data = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.data = &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.data += &quot;&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.data += &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.data += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.data += &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = &quot;&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.textContent = &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += &quot;&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.textContent += &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with unselected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</span><del>-FAIL detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length 
</ins><span class="cx"> PASS detachedForeignTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.data = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data = detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.data += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.data += detachedForeignTextNode.data, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent = detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.textContent += detachedForeignTextNode.textContent, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue = detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with unselected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</span><del>-FAIL detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignTextNode.nodeValue += detachedForeignTextNode.nodeValue, with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.data = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.data += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with unselected range collapsed at (detachedXmlTextNode, 0) 
</span><del>-FAIL detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, 0) 
</ins><span class="cx"> PASS detachedXmlTextNode.data = &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.data = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.data = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.data = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.data += &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.data += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.data += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.data += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.textContent = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.textContent += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with unselected range on detachedXmlTextNode from 0 to 1 
</span><del>-FAIL detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 0 to 1 
</ins><span class="cx"> PASS detachedXmlTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.data = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.data += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with unselected range collapsed at (detachedXmlTextNode, 1) 
</span><del>-FAIL detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, 1) 
</ins><span class="cx"> PASS detachedXmlTextNode.data = &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.data = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.data = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.data = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.data += &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.data += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.data += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.data += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.textContent = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.textContent += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with unselected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.data = &quot;&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.data = &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.data = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.data = &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.data += &quot;&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.data += &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.data += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.data += &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = &quot;&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.textContent = &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += &quot;&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.textContent += &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with unselected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</span><del>-FAIL detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length 
</ins><span class="cx"> PASS detachedXmlTextNode.data = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.data = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.data = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data = detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.data += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.data += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.data += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.data += detachedXmlTextNode.data, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent = detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.textContent += detachedXmlTextNode.textContent, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue = detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with unselected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</span><del>-FAIL detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlTextNode.nodeValue += detachedXmlTextNode.nodeValue, with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length) 
</ins><span class="cx"> PASS comment.data = &quot;&quot;, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.data = &quot;&quot;, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = &quot;&quot;, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.data = &quot;foo&quot;, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.data = &quot;foo&quot;, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = &quot;foo&quot;, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.data = comment.data, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.data = comment.data, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = comment.data, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.data += &quot;&quot;, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.data += &quot;&quot;, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += &quot;&quot;, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.data += &quot;foo&quot;, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.data += &quot;foo&quot;, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += &quot;foo&quot;, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.data += comment.data, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.data += comment.data, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += comment.data, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.textContent = &quot;&quot;, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.textContent = &quot;&quot;, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = &quot;&quot;, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.textContent = &quot;foo&quot;, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.textContent = &quot;foo&quot;, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = &quot;foo&quot;, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.textContent = comment.textContent, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.textContent = comment.textContent, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = comment.textContent, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.textContent += &quot;&quot;, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.textContent += &quot;&quot;, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += &quot;&quot;, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.textContent += &quot;foo&quot;, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.textContent += &quot;foo&quot;, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += &quot;foo&quot;, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.textContent += comment.textContent, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.textContent += comment.textContent, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += comment.textContent, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.nodeValue = &quot;&quot;, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.nodeValue = &quot;&quot;, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = &quot;&quot;, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.nodeValue = &quot;foo&quot;, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = &quot;foo&quot;, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.nodeValue = comment.nodeValue, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.nodeValue = comment.nodeValue, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = comment.nodeValue, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.nodeValue += &quot;&quot;, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.nodeValue += &quot;&quot;, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += &quot;&quot;, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.nodeValue += &quot;foo&quot;, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += &quot;foo&quot;, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.nodeValue += comment.nodeValue, with unselected range collapsed at (comment, 0) 
</span><del>-FAIL comment.nodeValue += comment.nodeValue, with selected range collapsed at (comment, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += comment.nodeValue, with selected range collapsed at (comment, 0) 
</ins><span class="cx"> PASS comment.data = &quot;&quot;, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.data = &quot;&quot;, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = &quot;&quot;, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.data = &quot;foo&quot;, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.data = &quot;foo&quot;, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = &quot;foo&quot;, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.data = comment.data, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.data = comment.data, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = comment.data, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.data += &quot;&quot;, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.data += &quot;&quot;, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += &quot;&quot;, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.data += &quot;foo&quot;, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.data += &quot;foo&quot;, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += &quot;foo&quot;, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.data += comment.data, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.data += comment.data, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += comment.data, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.textContent = &quot;&quot;, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.textContent = &quot;&quot;, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = &quot;&quot;, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.textContent = &quot;foo&quot;, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.textContent = &quot;foo&quot;, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = &quot;foo&quot;, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.textContent = comment.textContent, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.textContent = comment.textContent, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = comment.textContent, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.textContent += &quot;&quot;, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.textContent += &quot;&quot;, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += &quot;&quot;, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.textContent += &quot;foo&quot;, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.textContent += &quot;foo&quot;, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += &quot;foo&quot;, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.textContent += comment.textContent, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.textContent += comment.textContent, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += comment.textContent, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.nodeValue = &quot;&quot;, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.nodeValue = &quot;&quot;, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = &quot;&quot;, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.nodeValue = &quot;foo&quot;, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.nodeValue = &quot;foo&quot;, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = &quot;foo&quot;, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.nodeValue = comment.nodeValue, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.nodeValue = comment.nodeValue, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = comment.nodeValue, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.nodeValue += &quot;&quot;, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.nodeValue += &quot;&quot;, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += &quot;&quot;, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.nodeValue += &quot;foo&quot;, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.nodeValue += &quot;foo&quot;, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += &quot;foo&quot;, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.nodeValue += comment.nodeValue, with unselected range on comment from 0 to 1 
</span><del>-FAIL comment.nodeValue += comment.nodeValue, with selected range on comment from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += comment.nodeValue, with selected range on comment from 0 to 1 
</ins><span class="cx"> PASS comment.data = &quot;&quot;, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.data = &quot;&quot;, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = &quot;&quot;, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.data = &quot;foo&quot;, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.data = &quot;foo&quot;, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = &quot;foo&quot;, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.data = comment.data, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.data = comment.data, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = comment.data, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.data += &quot;&quot;, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.data += &quot;&quot;, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += &quot;&quot;, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.data += &quot;foo&quot;, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.data += &quot;foo&quot;, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += &quot;foo&quot;, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.data += comment.data, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.data += comment.data, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += comment.data, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.textContent = &quot;&quot;, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.textContent = &quot;&quot;, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = &quot;&quot;, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.textContent = &quot;foo&quot;, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.textContent = &quot;foo&quot;, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = &quot;foo&quot;, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.textContent = comment.textContent, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.textContent = comment.textContent, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = comment.textContent, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.textContent += &quot;&quot;, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.textContent += &quot;&quot;, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += &quot;&quot;, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.textContent += &quot;foo&quot;, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.textContent += &quot;foo&quot;, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += &quot;foo&quot;, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.textContent += comment.textContent, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.textContent += comment.textContent, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += comment.textContent, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.nodeValue = &quot;&quot;, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.nodeValue = &quot;&quot;, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = &quot;&quot;, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.nodeValue = &quot;foo&quot;, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = &quot;foo&quot;, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.nodeValue = comment.nodeValue, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.nodeValue = comment.nodeValue, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = comment.nodeValue, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.nodeValue += &quot;&quot;, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.nodeValue += &quot;&quot;, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += &quot;&quot;, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.nodeValue += &quot;foo&quot;, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += &quot;foo&quot;, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.nodeValue += comment.nodeValue, with unselected range collapsed at (comment, 1) 
</span><del>-FAIL comment.nodeValue += comment.nodeValue, with selected range collapsed at (comment, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += comment.nodeValue, with selected range collapsed at (comment, 1) 
</ins><span class="cx"> PASS comment.data = &quot;&quot;, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.data = &quot;&quot;, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = &quot;&quot;, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.data = &quot;foo&quot;, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.data = &quot;foo&quot;, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = &quot;foo&quot;, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.data = comment.data, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.data = comment.data, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = comment.data, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.data += &quot;&quot;, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.data += &quot;&quot;, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += &quot;&quot;, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.data += &quot;foo&quot;, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.data += &quot;foo&quot;, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += &quot;foo&quot;, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.data += comment.data, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.data += comment.data, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += comment.data, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.textContent = &quot;&quot;, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.textContent = &quot;&quot;, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = &quot;&quot;, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.textContent = &quot;foo&quot;, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.textContent = &quot;foo&quot;, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = &quot;foo&quot;, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.textContent = comment.textContent, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.textContent = comment.textContent, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = comment.textContent, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.textContent += &quot;&quot;, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.textContent += &quot;&quot;, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += &quot;&quot;, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.textContent += &quot;foo&quot;, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.textContent += &quot;foo&quot;, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += &quot;foo&quot;, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.textContent += comment.textContent, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.textContent += comment.textContent, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += comment.textContent, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.nodeValue = &quot;&quot;, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.nodeValue = &quot;&quot;, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = &quot;&quot;, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.nodeValue = &quot;foo&quot;, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.nodeValue = &quot;foo&quot;, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = &quot;foo&quot;, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.nodeValue = comment.nodeValue, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.nodeValue = comment.nodeValue, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = comment.nodeValue, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.nodeValue += &quot;&quot;, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.nodeValue += &quot;&quot;, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += &quot;&quot;, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.nodeValue += &quot;foo&quot;, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.nodeValue += &quot;foo&quot;, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += &quot;foo&quot;, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.nodeValue += comment.nodeValue, with unselected range on comment from 0 to comment.length 
</span><del>-FAIL comment.nodeValue += comment.nodeValue, with selected range on comment from 0 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += comment.nodeValue, with selected range on comment from 0 to comment.length 
</ins><span class="cx"> PASS comment.data = &quot;&quot;, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.data = &quot;&quot;, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = &quot;&quot;, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.data = &quot;foo&quot;, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.data = &quot;foo&quot;, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = &quot;foo&quot;, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.data = comment.data, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.data = comment.data, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = comment.data, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.data += &quot;&quot;, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.data += &quot;&quot;, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += &quot;&quot;, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.data += &quot;foo&quot;, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.data += &quot;foo&quot;, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += &quot;foo&quot;, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.data += comment.data, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.data += comment.data, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += comment.data, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.textContent = &quot;&quot;, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.textContent = &quot;&quot;, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = &quot;&quot;, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.textContent = &quot;foo&quot;, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.textContent = &quot;foo&quot;, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = &quot;foo&quot;, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.textContent = comment.textContent, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.textContent = comment.textContent, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = comment.textContent, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.textContent += &quot;&quot;, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.textContent += &quot;&quot;, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += &quot;&quot;, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.textContent += &quot;foo&quot;, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.textContent += &quot;foo&quot;, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += &quot;foo&quot;, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.textContent += comment.textContent, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.textContent += comment.textContent, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += comment.textContent, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.nodeValue = &quot;&quot;, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.nodeValue = &quot;&quot;, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = &quot;&quot;, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.nodeValue = &quot;foo&quot;, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.nodeValue = &quot;foo&quot;, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = &quot;foo&quot;, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.nodeValue = comment.nodeValue, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.nodeValue = comment.nodeValue, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = comment.nodeValue, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.nodeValue += &quot;&quot;, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.nodeValue += &quot;&quot;, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += &quot;&quot;, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.nodeValue += &quot;foo&quot;, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.nodeValue += &quot;foo&quot;, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += &quot;foo&quot;, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.nodeValue += comment.nodeValue, with unselected range on comment from 1 to comment.length 
</span><del>-FAIL comment.nodeValue += comment.nodeValue, with selected range on comment from 1 to comment.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += comment.nodeValue, with selected range on comment from 1 to comment.length 
</ins><span class="cx"> PASS comment.data = &quot;&quot;, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.data = &quot;&quot;, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = &quot;&quot;, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.data = &quot;foo&quot;, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.data = &quot;foo&quot;, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = &quot;foo&quot;, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.data = comment.data, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.data = comment.data, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data = comment.data, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.data += &quot;&quot;, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.data += &quot;&quot;, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += &quot;&quot;, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.data += &quot;foo&quot;, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.data += &quot;foo&quot;, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += &quot;foo&quot;, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.data += comment.data, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.data += comment.data, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.data += comment.data, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.textContent = &quot;&quot;, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.textContent = &quot;&quot;, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = &quot;&quot;, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.textContent = &quot;foo&quot;, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.textContent = &quot;foo&quot;, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = &quot;foo&quot;, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.textContent = comment.textContent, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.textContent = comment.textContent, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent = comment.textContent, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.textContent += &quot;&quot;, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.textContent += &quot;&quot;, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += &quot;&quot;, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.textContent += &quot;foo&quot;, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.textContent += &quot;foo&quot;, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += &quot;foo&quot;, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.textContent += comment.textContent, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.textContent += comment.textContent, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.textContent += comment.textContent, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.nodeValue = &quot;&quot;, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.nodeValue = &quot;&quot;, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = &quot;&quot;, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.nodeValue = &quot;foo&quot;, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = &quot;foo&quot;, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.nodeValue = comment.nodeValue, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.nodeValue = comment.nodeValue, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue = comment.nodeValue, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.nodeValue += &quot;&quot;, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.nodeValue += &quot;&quot;, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += &quot;&quot;, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.nodeValue += &quot;foo&quot;, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += &quot;foo&quot;, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS comment.nodeValue += comment.nodeValue, with unselected range collapsed at (comment, comment.length) 
</span><del>-FAIL comment.nodeValue += comment.nodeValue, with selected range collapsed at (comment, comment.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS comment.nodeValue += comment.nodeValue, with selected range collapsed at (comment, comment.length) 
</ins><span class="cx"> PASS foreignComment.data = &quot;&quot;, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.data = &quot;&quot;, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = &quot;&quot;, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.data = &quot;foo&quot;, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.data = &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.data = foreignComment.data, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.data = foreignComment.data, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = foreignComment.data, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.data += &quot;&quot;, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.data += &quot;&quot;, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += &quot;&quot;, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.data += &quot;foo&quot;, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.data += &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.data += foreignComment.data, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.data += foreignComment.data, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += foreignComment.data, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.textContent = &quot;&quot;, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.textContent = &quot;&quot;, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = &quot;&quot;, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.textContent = &quot;foo&quot;, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.textContent = &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.textContent = foreignComment.textContent, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.textContent = foreignComment.textContent, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = foreignComment.textContent, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.textContent += &quot;&quot;, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.textContent += &quot;&quot;, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += &quot;&quot;, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.textContent += &quot;foo&quot;, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.textContent += &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.textContent += foreignComment.textContent, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.textContent += foreignComment.textContent, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += foreignComment.textContent, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.nodeValue = &quot;&quot;, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.nodeValue = &quot;&quot;, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = &quot;&quot;, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.nodeValue = foreignComment.nodeValue, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.nodeValue = foreignComment.nodeValue, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = foreignComment.nodeValue, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.nodeValue += &quot;&quot;, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.nodeValue += &quot;&quot;, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += &quot;&quot;, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.nodeValue += foreignComment.nodeValue, with unselected range collapsed at (foreignComment, 0) 
</span><del>-FAIL foreignComment.nodeValue += foreignComment.nodeValue, with selected range collapsed at (foreignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += foreignComment.nodeValue, with selected range collapsed at (foreignComment, 0) 
</ins><span class="cx"> PASS foreignComment.data = &quot;&quot;, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.data = &quot;&quot;, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = &quot;&quot;, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.data = &quot;foo&quot;, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.data = &quot;foo&quot;, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = &quot;foo&quot;, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.data = foreignComment.data, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.data = foreignComment.data, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = foreignComment.data, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.data += &quot;&quot;, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.data += &quot;&quot;, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += &quot;&quot;, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.data += &quot;foo&quot;, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.data += &quot;foo&quot;, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += &quot;foo&quot;, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.data += foreignComment.data, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.data += foreignComment.data, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += foreignComment.data, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.textContent = &quot;&quot;, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.textContent = &quot;&quot;, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = &quot;&quot;, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.textContent = &quot;foo&quot;, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.textContent = &quot;foo&quot;, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = &quot;foo&quot;, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.textContent = foreignComment.textContent, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.textContent = foreignComment.textContent, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = foreignComment.textContent, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.textContent += &quot;&quot;, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.textContent += &quot;&quot;, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += &quot;&quot;, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.textContent += &quot;foo&quot;, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.textContent += &quot;foo&quot;, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += &quot;foo&quot;, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.textContent += foreignComment.textContent, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.textContent += foreignComment.textContent, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += foreignComment.textContent, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.nodeValue = &quot;&quot;, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.nodeValue = &quot;&quot;, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = &quot;&quot;, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.nodeValue = &quot;foo&quot;, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.nodeValue = &quot;foo&quot;, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = &quot;foo&quot;, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.nodeValue = foreignComment.nodeValue, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.nodeValue = foreignComment.nodeValue, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = foreignComment.nodeValue, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.nodeValue += &quot;&quot;, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.nodeValue += &quot;&quot;, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += &quot;&quot;, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.nodeValue += &quot;foo&quot;, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.nodeValue += &quot;foo&quot;, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += &quot;foo&quot;, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.nodeValue += foreignComment.nodeValue, with unselected range on foreignComment from 0 to 1 
</span><del>-FAIL foreignComment.nodeValue += foreignComment.nodeValue, with selected range on foreignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += foreignComment.nodeValue, with selected range on foreignComment from 0 to 1 
</ins><span class="cx"> PASS foreignComment.data = &quot;&quot;, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.data = &quot;&quot;, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = &quot;&quot;, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.data = &quot;foo&quot;, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.data = &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.data = foreignComment.data, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.data = foreignComment.data, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = foreignComment.data, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.data += &quot;&quot;, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.data += &quot;&quot;, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += &quot;&quot;, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.data += &quot;foo&quot;, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.data += &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.data += foreignComment.data, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.data += foreignComment.data, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += foreignComment.data, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.textContent = &quot;&quot;, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.textContent = &quot;&quot;, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = &quot;&quot;, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.textContent = &quot;foo&quot;, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.textContent = &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.textContent = foreignComment.textContent, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.textContent = foreignComment.textContent, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = foreignComment.textContent, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.textContent += &quot;&quot;, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.textContent += &quot;&quot;, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += &quot;&quot;, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.textContent += &quot;foo&quot;, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.textContent += &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.textContent += foreignComment.textContent, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.textContent += foreignComment.textContent, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += foreignComment.textContent, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.nodeValue = &quot;&quot;, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.nodeValue = &quot;&quot;, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = &quot;&quot;, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.nodeValue = foreignComment.nodeValue, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.nodeValue = foreignComment.nodeValue, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = foreignComment.nodeValue, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.nodeValue += &quot;&quot;, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.nodeValue += &quot;&quot;, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += &quot;&quot;, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.nodeValue += foreignComment.nodeValue, with unselected range collapsed at (foreignComment, 1) 
</span><del>-FAIL foreignComment.nodeValue += foreignComment.nodeValue, with selected range collapsed at (foreignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += foreignComment.nodeValue, with selected range collapsed at (foreignComment, 1) 
</ins><span class="cx"> PASS foreignComment.data = &quot;&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.data = &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.data = &quot;foo&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.data = &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.data = foreignComment.data, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.data = foreignComment.data, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = foreignComment.data, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.data += &quot;&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.data += &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.data += &quot;foo&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.data += &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.data += foreignComment.data, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.data += foreignComment.data, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += foreignComment.data, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.textContent = &quot;&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.textContent = &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.textContent = &quot;foo&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.textContent = &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.textContent = foreignComment.textContent, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.textContent = foreignComment.textContent, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = foreignComment.textContent, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.textContent += &quot;&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.textContent += &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.textContent += &quot;foo&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.textContent += &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.textContent += foreignComment.textContent, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.textContent += foreignComment.textContent, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += foreignComment.textContent, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.nodeValue = &quot;&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.nodeValue = &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.nodeValue = &quot;foo&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.nodeValue = &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.nodeValue = foreignComment.nodeValue, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.nodeValue = foreignComment.nodeValue, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = foreignComment.nodeValue, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.nodeValue += &quot;&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.nodeValue += &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += &quot;&quot;, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.nodeValue += &quot;foo&quot;, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.nodeValue += &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += &quot;foo&quot;, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.nodeValue += foreignComment.nodeValue, with unselected range on foreignComment from 0 to foreignComment.length 
</span><del>-FAIL foreignComment.nodeValue += foreignComment.nodeValue, with selected range on foreignComment from 0 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += foreignComment.nodeValue, with selected range on foreignComment from 0 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.data = &quot;&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.data = &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.data = &quot;foo&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.data = &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.data = foreignComment.data, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.data = foreignComment.data, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = foreignComment.data, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.data += &quot;&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.data += &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.data += &quot;foo&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.data += &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.data += foreignComment.data, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.data += foreignComment.data, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += foreignComment.data, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.textContent = &quot;&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.textContent = &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.textContent = &quot;foo&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.textContent = &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.textContent = foreignComment.textContent, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.textContent = foreignComment.textContent, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = foreignComment.textContent, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.textContent += &quot;&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.textContent += &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.textContent += &quot;foo&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.textContent += &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.textContent += foreignComment.textContent, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.textContent += foreignComment.textContent, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += foreignComment.textContent, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.nodeValue = &quot;&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.nodeValue = &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.nodeValue = &quot;foo&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.nodeValue = &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.nodeValue = foreignComment.nodeValue, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.nodeValue = foreignComment.nodeValue, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = foreignComment.nodeValue, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.nodeValue += &quot;&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.nodeValue += &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += &quot;&quot;, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.nodeValue += &quot;foo&quot;, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.nodeValue += &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += &quot;foo&quot;, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.nodeValue += foreignComment.nodeValue, with unselected range on foreignComment from 1 to foreignComment.length 
</span><del>-FAIL foreignComment.nodeValue += foreignComment.nodeValue, with selected range on foreignComment from 1 to foreignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += foreignComment.nodeValue, with selected range on foreignComment from 1 to foreignComment.length 
</ins><span class="cx"> PASS foreignComment.data = &quot;&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.data = &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.data = &quot;foo&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.data = &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.data = foreignComment.data, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.data = foreignComment.data, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data = foreignComment.data, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.data += &quot;&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.data += &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.data += &quot;foo&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.data += &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.data += foreignComment.data, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.data += foreignComment.data, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.data += foreignComment.data, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.textContent = &quot;&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.textContent = &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.textContent = &quot;foo&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.textContent = &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.textContent = foreignComment.textContent, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.textContent = foreignComment.textContent, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent = foreignComment.textContent, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.textContent += &quot;&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.textContent += &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.textContent += &quot;foo&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.textContent += &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.textContent += foreignComment.textContent, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.textContent += foreignComment.textContent, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.textContent += foreignComment.textContent, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.nodeValue = &quot;&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.nodeValue = &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.nodeValue = foreignComment.nodeValue, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.nodeValue = foreignComment.nodeValue, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue = foreignComment.nodeValue, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.nodeValue += &quot;&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.nodeValue += &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += &quot;&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS foreignComment.nodeValue += foreignComment.nodeValue, with unselected range collapsed at (foreignComment, foreignComment.length) 
</span><del>-FAIL foreignComment.nodeValue += foreignComment.nodeValue, with selected range collapsed at (foreignComment, foreignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignComment.nodeValue += foreignComment.nodeValue, with selected range collapsed at (foreignComment, foreignComment.length) 
</ins><span class="cx"> PASS xmlComment.data = &quot;&quot;, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.data = &quot;&quot;, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = &quot;&quot;, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.data = &quot;foo&quot;, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.data = &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.data = xmlComment.data, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.data = xmlComment.data, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = xmlComment.data, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.data += &quot;&quot;, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.data += &quot;&quot;, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += &quot;&quot;, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.data += &quot;foo&quot;, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.data += &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.data += xmlComment.data, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.data += xmlComment.data, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += xmlComment.data, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.textContent = &quot;&quot;, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.textContent = &quot;&quot;, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = &quot;&quot;, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.textContent = &quot;foo&quot;, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.textContent = xmlComment.textContent, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.textContent = xmlComment.textContent, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = xmlComment.textContent, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.textContent += &quot;&quot;, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.textContent += &quot;&quot;, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += &quot;&quot;, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.textContent += &quot;foo&quot;, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.textContent += xmlComment.textContent, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.textContent += xmlComment.textContent, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += xmlComment.textContent, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.nodeValue = &quot;&quot;, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.nodeValue = xmlComment.nodeValue, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.nodeValue = xmlComment.nodeValue, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = xmlComment.nodeValue, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.nodeValue += &quot;&quot;, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.nodeValue += xmlComment.nodeValue, with unselected range collapsed at (xmlComment, 0) 
</span><del>-FAIL xmlComment.nodeValue += xmlComment.nodeValue, with selected range collapsed at (xmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += xmlComment.nodeValue, with selected range collapsed at (xmlComment, 0) 
</ins><span class="cx"> PASS xmlComment.data = &quot;&quot;, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.data = &quot;&quot;, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = &quot;&quot;, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.data = &quot;foo&quot;, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.data = &quot;foo&quot;, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = &quot;foo&quot;, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.data = xmlComment.data, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.data = xmlComment.data, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = xmlComment.data, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.data += &quot;&quot;, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.data += &quot;&quot;, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += &quot;&quot;, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.data += &quot;foo&quot;, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.data += &quot;foo&quot;, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += &quot;foo&quot;, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.data += xmlComment.data, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.data += xmlComment.data, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += xmlComment.data, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.textContent = &quot;&quot;, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.textContent = &quot;&quot;, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = &quot;&quot;, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.textContent = &quot;foo&quot;, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.textContent = &quot;foo&quot;, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = &quot;foo&quot;, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.textContent = xmlComment.textContent, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.textContent = xmlComment.textContent, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = xmlComment.textContent, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.textContent += &quot;&quot;, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.textContent += &quot;&quot;, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += &quot;&quot;, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.textContent += &quot;foo&quot;, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.textContent += &quot;foo&quot;, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += &quot;foo&quot;, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.textContent += xmlComment.textContent, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.textContent += xmlComment.textContent, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += xmlComment.textContent, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.nodeValue = &quot;&quot;, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.nodeValue = &quot;&quot;, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = &quot;&quot;, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.nodeValue = &quot;foo&quot;, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.nodeValue = &quot;foo&quot;, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = &quot;foo&quot;, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.nodeValue = xmlComment.nodeValue, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.nodeValue = xmlComment.nodeValue, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = xmlComment.nodeValue, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.nodeValue += &quot;&quot;, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.nodeValue += &quot;&quot;, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += &quot;&quot;, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.nodeValue += &quot;foo&quot;, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.nodeValue += &quot;foo&quot;, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += &quot;foo&quot;, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.nodeValue += xmlComment.nodeValue, with unselected range on xmlComment from 0 to 1 
</span><del>-FAIL xmlComment.nodeValue += xmlComment.nodeValue, with selected range on xmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += xmlComment.nodeValue, with selected range on xmlComment from 0 to 1 
</ins><span class="cx"> PASS xmlComment.data = &quot;&quot;, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.data = &quot;&quot;, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = &quot;&quot;, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.data = &quot;foo&quot;, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.data = &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.data = xmlComment.data, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.data = xmlComment.data, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = xmlComment.data, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.data += &quot;&quot;, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.data += &quot;&quot;, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += &quot;&quot;, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.data += &quot;foo&quot;, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.data += &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.data += xmlComment.data, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.data += xmlComment.data, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += xmlComment.data, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.textContent = &quot;&quot;, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.textContent = &quot;&quot;, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = &quot;&quot;, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.textContent = &quot;foo&quot;, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.textContent = xmlComment.textContent, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.textContent = xmlComment.textContent, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = xmlComment.textContent, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.textContent += &quot;&quot;, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.textContent += &quot;&quot;, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += &quot;&quot;, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.textContent += &quot;foo&quot;, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.textContent += xmlComment.textContent, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.textContent += xmlComment.textContent, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += xmlComment.textContent, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.nodeValue = &quot;&quot;, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.nodeValue = xmlComment.nodeValue, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.nodeValue = xmlComment.nodeValue, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = xmlComment.nodeValue, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.nodeValue += &quot;&quot;, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.nodeValue += xmlComment.nodeValue, with unselected range collapsed at (xmlComment, 1) 
</span><del>-FAIL xmlComment.nodeValue += xmlComment.nodeValue, with selected range collapsed at (xmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += xmlComment.nodeValue, with selected range collapsed at (xmlComment, 1) 
</ins><span class="cx"> PASS xmlComment.data = &quot;&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.data = &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.data = &quot;foo&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.data = &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.data = xmlComment.data, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.data = xmlComment.data, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = xmlComment.data, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.data += &quot;&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.data += &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.data += &quot;foo&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.data += &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.data += xmlComment.data, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.data += xmlComment.data, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += xmlComment.data, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.textContent = &quot;&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.textContent = &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.textContent = &quot;foo&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.textContent = &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.textContent = xmlComment.textContent, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.textContent = xmlComment.textContent, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = xmlComment.textContent, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.textContent += &quot;&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.textContent += &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.textContent += &quot;foo&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.textContent += &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.textContent += xmlComment.textContent, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.textContent += xmlComment.textContent, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += xmlComment.textContent, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.nodeValue = &quot;&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.nodeValue = &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.nodeValue = &quot;foo&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.nodeValue = &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.nodeValue = xmlComment.nodeValue, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.nodeValue = xmlComment.nodeValue, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = xmlComment.nodeValue, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.nodeValue += &quot;&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.nodeValue += &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += &quot;&quot;, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.nodeValue += &quot;foo&quot;, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.nodeValue += &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += &quot;foo&quot;, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.nodeValue += xmlComment.nodeValue, with unselected range on xmlComment from 0 to xmlComment.length 
</span><del>-FAIL xmlComment.nodeValue += xmlComment.nodeValue, with selected range on xmlComment from 0 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += xmlComment.nodeValue, with selected range on xmlComment from 0 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.data = &quot;&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.data = &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.data = &quot;foo&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.data = &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.data = xmlComment.data, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.data = xmlComment.data, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = xmlComment.data, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.data += &quot;&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.data += &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.data += &quot;foo&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.data += &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.data += xmlComment.data, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.data += xmlComment.data, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += xmlComment.data, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.textContent = &quot;&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.textContent = &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.textContent = &quot;foo&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.textContent = &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.textContent = xmlComment.textContent, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.textContent = xmlComment.textContent, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = xmlComment.textContent, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.textContent += &quot;&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.textContent += &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.textContent += &quot;foo&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.textContent += &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.textContent += xmlComment.textContent, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.textContent += xmlComment.textContent, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += xmlComment.textContent, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.nodeValue = &quot;&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.nodeValue = &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.nodeValue = &quot;foo&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.nodeValue = &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.nodeValue = xmlComment.nodeValue, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.nodeValue = xmlComment.nodeValue, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = xmlComment.nodeValue, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.nodeValue += &quot;&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.nodeValue += &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += &quot;&quot;, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.nodeValue += &quot;foo&quot;, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.nodeValue += &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += &quot;foo&quot;, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.nodeValue += xmlComment.nodeValue, with unselected range on xmlComment from 1 to xmlComment.length 
</span><del>-FAIL xmlComment.nodeValue += xmlComment.nodeValue, with selected range on xmlComment from 1 to xmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += xmlComment.nodeValue, with selected range on xmlComment from 1 to xmlComment.length 
</ins><span class="cx"> PASS xmlComment.data = &quot;&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.data = &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.data = &quot;foo&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.data = &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.data = xmlComment.data, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.data = xmlComment.data, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data = xmlComment.data, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.data += &quot;&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.data += &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.data += &quot;foo&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.data += &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.data += xmlComment.data, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.data += xmlComment.data, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.data += xmlComment.data, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.textContent = &quot;&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.textContent = &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.textContent = &quot;foo&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.textContent = xmlComment.textContent, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.textContent = xmlComment.textContent, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent = xmlComment.textContent, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.textContent += &quot;&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.textContent += &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.textContent += &quot;foo&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.textContent += xmlComment.textContent, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.textContent += xmlComment.textContent, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.textContent += xmlComment.textContent, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.nodeValue = &quot;&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.nodeValue = xmlComment.nodeValue, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.nodeValue = xmlComment.nodeValue, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue = xmlComment.nodeValue, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.nodeValue += &quot;&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS xmlComment.nodeValue += xmlComment.nodeValue, with unselected range collapsed at (xmlComment, xmlComment.length) 
</span><del>-FAIL xmlComment.nodeValue += xmlComment.nodeValue, with selected range collapsed at (xmlComment, xmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS xmlComment.nodeValue += xmlComment.nodeValue, with selected range collapsed at (xmlComment, xmlComment.length) 
</ins><span class="cx"> PASS detachedComment.data = &quot;&quot;, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.data = &quot;&quot;, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = &quot;&quot;, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.data = &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.data = detachedComment.data, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.data = detachedComment.data, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = detachedComment.data, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.data += &quot;&quot;, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.data += &quot;&quot;, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += &quot;&quot;, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.data += &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.data += detachedComment.data, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.data += detachedComment.data, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += detachedComment.data, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.textContent = &quot;&quot;, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = &quot;&quot;, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.textContent = detachedComment.textContent, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.textContent = detachedComment.textContent, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = detachedComment.textContent, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.textContent += &quot;&quot;, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += &quot;&quot;, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.textContent += detachedComment.textContent, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.textContent += detachedComment.textContent, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += detachedComment.textContent, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.nodeValue = detachedComment.nodeValue, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.nodeValue = detachedComment.nodeValue, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = detachedComment.nodeValue, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.nodeValue += detachedComment.nodeValue, with unselected range collapsed at (detachedComment, 0) 
</span><del>-FAIL detachedComment.nodeValue += detachedComment.nodeValue, with selected range collapsed at (detachedComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += detachedComment.nodeValue, with selected range collapsed at (detachedComment, 0) 
</ins><span class="cx"> PASS detachedComment.data = &quot;&quot;, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.data = &quot;&quot;, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = &quot;&quot;, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.data = &quot;foo&quot;, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.data = &quot;foo&quot;, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = &quot;foo&quot;, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.data = detachedComment.data, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.data = detachedComment.data, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = detachedComment.data, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.data += &quot;&quot;, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.data += &quot;&quot;, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += &quot;&quot;, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.data += &quot;foo&quot;, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.data += &quot;foo&quot;, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += &quot;foo&quot;, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.data += detachedComment.data, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.data += detachedComment.data, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += detachedComment.data, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.textContent = &quot;&quot;, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.textContent = &quot;&quot;, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = &quot;&quot;, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.textContent = &quot;foo&quot;, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.textContent = &quot;foo&quot;, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = &quot;foo&quot;, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.textContent = detachedComment.textContent, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.textContent = detachedComment.textContent, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = detachedComment.textContent, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.textContent += &quot;&quot;, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.textContent += &quot;&quot;, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += &quot;&quot;, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.textContent += &quot;foo&quot;, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.textContent += &quot;foo&quot;, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += &quot;foo&quot;, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.textContent += detachedComment.textContent, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.textContent += detachedComment.textContent, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += detachedComment.textContent, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.nodeValue = &quot;&quot;, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.nodeValue = &quot;&quot;, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = &quot;&quot;, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.nodeValue = &quot;foo&quot;, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.nodeValue = &quot;foo&quot;, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = &quot;foo&quot;, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.nodeValue = detachedComment.nodeValue, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.nodeValue = detachedComment.nodeValue, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = detachedComment.nodeValue, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.nodeValue += &quot;&quot;, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.nodeValue += &quot;&quot;, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += &quot;&quot;, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.nodeValue += &quot;foo&quot;, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.nodeValue += &quot;foo&quot;, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += &quot;foo&quot;, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.nodeValue += detachedComment.nodeValue, with unselected range on detachedComment from 0 to 1 
</span><del>-FAIL detachedComment.nodeValue += detachedComment.nodeValue, with selected range on detachedComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += detachedComment.nodeValue, with selected range on detachedComment from 0 to 1 
</ins><span class="cx"> PASS detachedComment.data = &quot;&quot;, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.data = &quot;&quot;, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = &quot;&quot;, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.data = &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.data = detachedComment.data, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.data = detachedComment.data, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = detachedComment.data, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.data += &quot;&quot;, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.data += &quot;&quot;, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += &quot;&quot;, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.data += &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.data += detachedComment.data, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.data += detachedComment.data, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += detachedComment.data, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.textContent = &quot;&quot;, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = &quot;&quot;, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.textContent = detachedComment.textContent, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.textContent = detachedComment.textContent, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = detachedComment.textContent, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.textContent += &quot;&quot;, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += &quot;&quot;, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.textContent += detachedComment.textContent, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.textContent += detachedComment.textContent, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += detachedComment.textContent, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.nodeValue = detachedComment.nodeValue, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.nodeValue = detachedComment.nodeValue, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = detachedComment.nodeValue, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.nodeValue += detachedComment.nodeValue, with unselected range collapsed at (detachedComment, 1) 
</span><del>-FAIL detachedComment.nodeValue += detachedComment.nodeValue, with selected range collapsed at (detachedComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += detachedComment.nodeValue, with selected range collapsed at (detachedComment, 1) 
</ins><span class="cx"> PASS detachedComment.data = &quot;&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.data = &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.data = &quot;foo&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.data = &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.data = detachedComment.data, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.data = detachedComment.data, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = detachedComment.data, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.data += &quot;&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.data += &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.data += &quot;foo&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.data += &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.data += detachedComment.data, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.data += detachedComment.data, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += detachedComment.data, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.textContent = &quot;&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.textContent = &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.textContent = &quot;foo&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.textContent = &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.textContent = detachedComment.textContent, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.textContent = detachedComment.textContent, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = detachedComment.textContent, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.textContent += &quot;&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.textContent += &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.textContent += &quot;foo&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.textContent += &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.textContent += detachedComment.textContent, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.textContent += detachedComment.textContent, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += detachedComment.textContent, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.nodeValue = &quot;&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.nodeValue = &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.nodeValue = &quot;foo&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.nodeValue = &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.nodeValue = detachedComment.nodeValue, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.nodeValue = detachedComment.nodeValue, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = detachedComment.nodeValue, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.nodeValue += &quot;&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.nodeValue += &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += &quot;&quot;, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.nodeValue += &quot;foo&quot;, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.nodeValue += &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += &quot;foo&quot;, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.nodeValue += detachedComment.nodeValue, with unselected range on detachedComment from 0 to detachedComment.length 
</span><del>-FAIL detachedComment.nodeValue += detachedComment.nodeValue, with selected range on detachedComment from 0 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += detachedComment.nodeValue, with selected range on detachedComment from 0 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.data = &quot;&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.data = &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.data = &quot;foo&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.data = &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.data = detachedComment.data, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.data = detachedComment.data, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = detachedComment.data, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.data += &quot;&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.data += &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.data += &quot;foo&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.data += &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.data += detachedComment.data, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.data += detachedComment.data, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += detachedComment.data, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.textContent = &quot;&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.textContent = &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.textContent = &quot;foo&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.textContent = &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.textContent = detachedComment.textContent, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.textContent = detachedComment.textContent, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = detachedComment.textContent, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.textContent += &quot;&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.textContent += &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.textContent += &quot;foo&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.textContent += &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.textContent += detachedComment.textContent, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.textContent += detachedComment.textContent, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += detachedComment.textContent, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.nodeValue = &quot;&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.nodeValue = &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.nodeValue = &quot;foo&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.nodeValue = &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.nodeValue = detachedComment.nodeValue, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.nodeValue = detachedComment.nodeValue, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = detachedComment.nodeValue, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.nodeValue += &quot;&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.nodeValue += &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += &quot;&quot;, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.nodeValue += &quot;foo&quot;, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.nodeValue += &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += &quot;foo&quot;, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.nodeValue += detachedComment.nodeValue, with unselected range on detachedComment from 1 to detachedComment.length 
</span><del>-FAIL detachedComment.nodeValue += detachedComment.nodeValue, with selected range on detachedComment from 1 to detachedComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += detachedComment.nodeValue, with selected range on detachedComment from 1 to detachedComment.length 
</ins><span class="cx"> PASS detachedComment.data = &quot;&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.data = &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.data = &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.data = detachedComment.data, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.data = detachedComment.data, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data = detachedComment.data, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.data += &quot;&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.data += &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.data += &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.data += detachedComment.data, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.data += detachedComment.data, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.data += detachedComment.data, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.textContent = &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.textContent = detachedComment.textContent, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.textContent = detachedComment.textContent, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent = detachedComment.textContent, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.textContent += &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.textContent += detachedComment.textContent, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.textContent += detachedComment.textContent, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.textContent += detachedComment.textContent, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.nodeValue = detachedComment.nodeValue, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.nodeValue = detachedComment.nodeValue, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue = detachedComment.nodeValue, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedComment.nodeValue += detachedComment.nodeValue, with unselected range collapsed at (detachedComment, detachedComment.length) 
</span><del>-FAIL detachedComment.nodeValue += detachedComment.nodeValue, with selected range collapsed at (detachedComment, detachedComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedComment.nodeValue += detachedComment.nodeValue, with selected range collapsed at (detachedComment, detachedComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.data = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.data = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.data = detachedForeignComment.data, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.data = detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.data += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.data += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.data += detachedForeignComment.data, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.data += detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with unselected range collapsed at (detachedForeignComment, 0) 
</span><del>-FAIL detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, 0) 
</ins><span class="cx"> PASS detachedForeignComment.data = &quot;&quot;, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.data = &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.data = &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.data = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.data = detachedForeignComment.data, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.data = detachedForeignComment.data, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = detachedForeignComment.data, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.data += &quot;&quot;, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.data += &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.data += &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.data += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.data += detachedForeignComment.data, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.data += detachedForeignComment.data, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += detachedForeignComment.data, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.textContent = &quot;&quot;, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.textContent = &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.textContent = &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.textContent = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.textContent += &quot;&quot;, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.textContent += &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.textContent += &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.textContent += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = &quot;&quot;, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.nodeValue = &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += &quot;&quot;, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.nodeValue += &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += &quot;&quot;, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with unselected range on detachedForeignComment from 0 to 1 
</span><del>-FAIL detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 0 to 1 
</ins><span class="cx"> PASS detachedForeignComment.data = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.data = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.data = detachedForeignComment.data, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.data = detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.data += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.data += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.data += detachedForeignComment.data, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.data += detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with unselected range collapsed at (detachedForeignComment, 1) 
</span><del>-FAIL detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, 1) 
</ins><span class="cx"> PASS detachedForeignComment.data = &quot;&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.data = &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.data = &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.data = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.data = detachedForeignComment.data, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.data = detachedForeignComment.data, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = detachedForeignComment.data, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.data += &quot;&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.data += &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.data += &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.data += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.data += detachedForeignComment.data, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.data += detachedForeignComment.data, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += detachedForeignComment.data, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.textContent = &quot;&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.textContent = &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.textContent = &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.textContent = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.textContent += &quot;&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.textContent += &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.textContent += &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.textContent += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = &quot;&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.nodeValue = &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += &quot;&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.nodeValue += &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += &quot;&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with unselected range on detachedForeignComment from 0 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 0 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 0 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.data = &quot;&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.data = &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.data = &quot;foo&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.data = &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.data = detachedForeignComment.data, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.data = detachedForeignComment.data, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = detachedForeignComment.data, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.data += &quot;&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.data += &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.data += &quot;foo&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.data += &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.data += detachedForeignComment.data, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.data += detachedForeignComment.data, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += detachedForeignComment.data, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.textContent = &quot;&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.textContent = &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.textContent = &quot;foo&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.textContent = &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.textContent += &quot;&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.textContent += &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.textContent += &quot;foo&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.textContent += &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = &quot;&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.nodeValue = &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += &quot;&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.nodeValue += &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += &quot;&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with unselected range on detachedForeignComment from 1 to detachedForeignComment.length 
</span><del>-FAIL detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 1 to detachedForeignComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range on detachedForeignComment from 1 to detachedForeignComment.length 
</ins><span class="cx"> PASS detachedForeignComment.data = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.data = &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.data = detachedForeignComment.data, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.data = detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data = detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.data += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.data += &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.data += detachedForeignComment.data, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.data += detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.data += detachedForeignComment.data, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent = detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.textContent += detachedForeignComment.textContent, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue = detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with unselected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</span><del>-FAIL detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedForeignComment.nodeValue += detachedForeignComment.nodeValue, with selected range collapsed at (detachedForeignComment, detachedForeignComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.data = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.data = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.data = detachedXmlComment.data, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.data = detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.data += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.data += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.data += detachedXmlComment.data, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.data += detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with unselected range collapsed at (detachedXmlComment, 0) 
</span><del>-FAIL detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, 0) 
</ins><span class="cx"> PASS detachedXmlComment.data = &quot;&quot;, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.data = &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.data = &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.data = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.data = detachedXmlComment.data, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.data = detachedXmlComment.data, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = detachedXmlComment.data, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.data += &quot;&quot;, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.data += &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.data += &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.data += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.data += detachedXmlComment.data, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.data += detachedXmlComment.data, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += detachedXmlComment.data, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.textContent = &quot;&quot;, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.textContent = &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.textContent = &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.textContent = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.textContent += &quot;&quot;, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.textContent += &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.textContent += &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.textContent += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = &quot;&quot;, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.nodeValue = &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += &quot;&quot;, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.nodeValue += &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += &quot;&quot;, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with unselected range on detachedXmlComment from 0 to 1 
</span><del>-FAIL detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 0 to 1 
</ins><span class="cx"> PASS detachedXmlComment.data = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.data = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.data = detachedXmlComment.data, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.data = detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.data += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.data += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.data += detachedXmlComment.data, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.data += detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with unselected range collapsed at (detachedXmlComment, 1) 
</span><del>-FAIL detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, 1) 
</ins><span class="cx"> PASS detachedXmlComment.data = &quot;&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.data = &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.data = &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.data = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.data = detachedXmlComment.data, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.data = detachedXmlComment.data, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = detachedXmlComment.data, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.data += &quot;&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.data += &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.data += &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.data += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.data += detachedXmlComment.data, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.data += detachedXmlComment.data, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += detachedXmlComment.data, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.textContent = &quot;&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.textContent = &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.textContent = &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.textContent = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.textContent += &quot;&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.textContent += &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.textContent += &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.textContent += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = &quot;&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.nodeValue = &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += &quot;&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.nodeValue += &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += &quot;&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with unselected range on detachedXmlComment from 0 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 0 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 0 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.data = &quot;&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.data = &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.data = &quot;foo&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.data = &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.data = detachedXmlComment.data, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.data = detachedXmlComment.data, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = detachedXmlComment.data, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.data += &quot;&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.data += &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.data += &quot;foo&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.data += &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.data += detachedXmlComment.data, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.data += detachedXmlComment.data, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += detachedXmlComment.data, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.textContent = &quot;&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.textContent = &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.textContent = &quot;foo&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.textContent = &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.textContent += &quot;&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.textContent += &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.textContent += &quot;foo&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.textContent += &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = &quot;&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.nodeValue = &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += &quot;&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.nodeValue += &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += &quot;&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with unselected range on detachedXmlComment from 1 to detachedXmlComment.length 
</span><del>-FAIL detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 1 to detachedXmlComment.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range on detachedXmlComment from 1 to detachedXmlComment.length 
</ins><span class="cx"> PASS detachedXmlComment.data = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.data = &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.data = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.data = detachedXmlComment.data, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.data = detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data = detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.data += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.data += &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.data += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.data += detachedXmlComment.data, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.data += detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.data += detachedXmlComment.data, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.textContent = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.textContent = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent = detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.textContent += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.textContent += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.textContent += detachedXmlComment.textContent, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = &quot;&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue = detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += &quot;&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += &quot;&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += &quot;foo&quot;, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with unselected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</span><del>-FAIL detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length) 
</ins><span class="cx"> PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL testDiv.insertBefore(paras[0], paras[1]), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL testDiv.insertBefore(paras[0], paras[1]), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL testDiv.insertBefore(paras[0], paras[1]), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range on testDiv from 0 to 2 
</span><del>-FAIL testDiv.insertBefore(paras[0], paras[1]), with selected range on testDiv from 0 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot;
</del><ins>+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range on testDiv from 0 to 2 
</ins><span class="cx"> PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range collapsed at (testDiv, 1) 
</span><del>-FAIL testDiv.insertBefore(paras[0], paras[1]), with selected range collapsed at (testDiv, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range collapsed at (testDiv, 1) 
</ins><span class="cx"> PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range on testDiv from 1 to 2 
</span><del>-FAIL testDiv.insertBefore(paras[0], paras[1]), with selected range on testDiv from 1 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range on testDiv from 1 to 2 
</ins><span class="cx"> PASS testDiv.insertBefore(paras[0], paras[1]), with unselected range collapsed at (testDiv, 2) 
</span><del>-FAIL testDiv.insertBefore(paras[0], paras[1]), with selected range collapsed at (testDiv, 2) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.insertBefore(paras[0], paras[1]), with selected range collapsed at (testDiv, 2) 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range on testDiv from 0 to 1 
</span><del>-FAIL paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range on testDiv from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range on testDiv from 0 to 1 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range on testDiv from 0 to 2 
</span><del>-FAIL paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range on testDiv from 0 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range on testDiv from 0 to 2 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range collapsed at (testDiv, 1) 
</span><del>-FAIL paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range collapsed at (testDiv, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range collapsed at (testDiv, 1) 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with unselected range on testDiv from 1 to 2 
</span><del>-FAIL paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range on testDiv from 1 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], paras[0].firstChild), with selected range on testDiv from 1 to 2 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], null), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].insertBefore(paras[1], null), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], null), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], null), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].insertBefore(paras[1], null), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], null), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], null), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].insertBefore(paras[1], null), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], null), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], null), with unselected range on testDiv from 0 to 1 
</span><del>-FAIL paras[0].insertBefore(paras[1], null), with selected range on testDiv from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], null), with selected range on testDiv from 0 to 1 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], null), with unselected range on testDiv from 0 to 2 
</span><del>-FAIL paras[0].insertBefore(paras[1], null), with selected range on testDiv from 0 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], null), with selected range on testDiv from 0 to 2 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], null), with unselected range collapsed at (testDiv, 1) 
</span><del>-FAIL paras[0].insertBefore(paras[1], null), with selected range collapsed at (testDiv, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], null), with selected range collapsed at (testDiv, 1) 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[1], null), with unselected range on testDiv from 1 to 2 
</span><del>-FAIL paras[0].insertBefore(paras[1], null), with selected range on testDiv from 1 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].insertBefore(paras[1], null), with selected range on testDiv from 1 to 2 
</ins><span class="cx"> PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with unselected range collapsed at (foreignDoc, 0) 
</span><del>-FAIL foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 0) 
</ins><span class="cx"> PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with unselected range on foreignDoc from 0 to 1 
</span><del>-FAIL foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 1 
</ins><span class="cx"> PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with unselected range on foreignDoc from 0 to 2 
</span><del>-FAIL foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 2 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 2 
</ins><span class="cx"> PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with unselected range collapsed at (foreignDoc, 1) 
</span><del>-FAIL foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 1) 
</ins><span class="cx"> PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with unselected range collapsed at (foreignDoc, 0) 
</span><del>-FAIL foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 0) 
</ins><span class="cx"> PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with unselected range on foreignDoc from 0 to 1 
</span><del>-FAIL foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 1 
</ins><span class="cx"> PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with unselected range on foreignDoc from 0 to 2 
</span><del>-FAIL foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 2 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 2 
</ins><span class="cx"> PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with unselected range collapsed at (foreignDoc, 1) 
</span><del>-FAIL foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 1) 
</ins><span class="cx"> PASS foreignDoc.insertBefore(detachedComment, null), with unselected range on foreignDoc from 0 to 1 
</span><del>-FAIL foreignDoc.insertBefore(detachedComment, null), with selected range on foreignDoc from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.insertBefore(detachedComment, null), with selected range on foreignDoc from 0 to 1 
</ins><span class="cx"> PASS paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].insertBefore(xmlTextNode, paras[0].firstChild), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].insertBefore(paras[0], paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].insertBefore(paras[0], paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].insertBefore(paras[0], paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].insertBefore(testDiv, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].insertBefore(testDiv, paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].insertBefore(testDiv, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].insertBefore(document, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].insertBefore(document, paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].insertBefore(document, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].insertBefore(foreignDoc, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].insertBefore(foreignDoc, paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].insertBefore(foreignDoc, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].insertBefore(document.doctype, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].insertBefore(document.doctype, paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].insertBefore(document.doctype, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL testDiv.replaceChild(paras[0], paras[0]), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL testDiv.replaceChild(paras[0], paras[0]), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL testDiv.replaceChild(paras[0], paras[0]), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range on testDiv from 0 to 2 
</span><del>-FAIL testDiv.replaceChild(paras[0], paras[0]), with selected range on testDiv from 0 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot;
</del><ins>+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range on testDiv from 0 to 2 
</ins><span class="cx"> PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range collapsed at (testDiv, 1) 
</span><del>-FAIL testDiv.replaceChild(paras[0], paras[0]), with selected range collapsed at (testDiv, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range collapsed at (testDiv, 1) 
</ins><span class="cx"> PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range on testDiv from 1 to 2 
</span><del>-FAIL testDiv.replaceChild(paras[0], paras[0]), with selected range on testDiv from 1 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range on testDiv from 1 to 2 
</ins><span class="cx"> PASS testDiv.replaceChild(paras[0], paras[0]), with unselected range collapsed at (testDiv, 2) 
</span><del>-FAIL testDiv.replaceChild(paras[0], paras[0]), with selected range collapsed at (testDiv, 2) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.replaceChild(paras[0], paras[0]), with selected range collapsed at (testDiv, 2) 
</ins><span class="cx"> PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range on testDiv from 0 to 1 
</span><del>-FAIL paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range on testDiv from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot;
</del><ins>+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range on testDiv from 0 to 1 
</ins><span class="cx"> PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range on testDiv from 0 to 2 
</span><del>-FAIL paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range on testDiv from 0 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot;
</del><ins>+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range on testDiv from 0 to 2 
</ins><span class="cx"> PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range collapsed at (testDiv, 1) 
</span><del>-FAIL paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range collapsed at (testDiv, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range collapsed at (testDiv, 1) 
</ins><span class="cx"> PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with unselected range on testDiv from 1 to 2 
</span><del>-FAIL paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range on testDiv from 1 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].replaceChild(paras[1], paras[0].firstChild), with selected range on testDiv from 1 to 2 
</ins><span class="cx"> PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with unselected range collapsed at (foreignDoc, 0) 
</span><del>-FAIL foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 0) 
</ins><span class="cx"> PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with unselected range on foreignDoc from 0 to 1 
</span><del>-FAIL foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 1 
</ins><span class="cx"> PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with unselected range on foreignDoc from 0 to 2 
</span><del>-FAIL foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 2 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 2 
</ins><span class="cx"> PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with unselected range collapsed at (foreignDoc, 1) 
</span><del>-FAIL foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 1) 
</ins><span class="cx"> PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with unselected range collapsed at (foreignDoc, 0) 
</span><del>-FAIL foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 0) 
</ins><span class="cx"> PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with unselected range on foreignDoc from 0 to 1 
</span><del>-FAIL foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 1 
</ins><span class="cx"> PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with unselected range on foreignDoc from 0 to 2 
</span><del>-FAIL foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 2 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 2 
</ins><span class="cx"> PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with unselected range collapsed at (foreignDoc, 1) 
</span><del>-FAIL foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 1) 
</ins><span class="cx"> PASS paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].replaceChild(xmlTextNode, paras[0].firstChild), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].replaceChild(paras[0], paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].replaceChild(paras[0], paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].replaceChild(paras[0], paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].replaceChild(testDiv, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].replaceChild(testDiv, paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].replaceChild(testDiv, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].replaceChild(document, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].replaceChild(document, paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].replaceChild(document, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].replaceChild(foreignDoc, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].replaceChild(foreignDoc, paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].replaceChild(foreignDoc, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].replaceChild(document.doctype, paras[0].firstChild), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].replaceChild(document.doctype, paras[0].firstChild), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].replaceChild(document.doctype, paras[0].firstChild), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS testDiv.appendChild(testDiv.lastChild), with unselected range collapsed at (testDiv.lastChild, 0) 
</span><del>-FAIL testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv.lastChild, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv.lastChild, 0) 
</ins><span class="cx"> PASS testDiv.appendChild(testDiv.lastChild), with unselected range on testDiv.lastChild from 0 to 1 
</span><del>-FAIL testDiv.appendChild(testDiv.lastChild), with selected range on testDiv.lastChild from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.appendChild(testDiv.lastChild), with selected range on testDiv.lastChild from 0 to 1 
</ins><span class="cx"> PASS testDiv.appendChild(testDiv.lastChild), with unselected range collapsed at (testDiv.lastChild, 1) 
</span><del>-FAIL testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv.lastChild, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv.lastChild, 1) 
</ins><span class="cx"> PASS testDiv.appendChild(testDiv.lastChild), with unselected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length 
</span><del>-FAIL testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ghijklmn&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length 
</ins><span class="cx"> PASS testDiv.appendChild(testDiv.lastChild), with unselected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length - 1 
</span><del>-FAIL testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length - 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ghijklmn&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length - 1 
</ins><span class="cx"> PASS testDiv.appendChild(testDiv.lastChild), with unselected range on testDiv from testDiv.childNodes.length - 1 to testDiv.childNodes.length 
</span><del>-FAIL testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 1 to testDiv.childNodes.length assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 1 to testDiv.childNodes.length 
</ins><span class="cx"> PASS testDiv.appendChild(testDiv.lastChild), with unselected range collapsed at (testDiv, testDiv.childNodes.length - 1) 
</span><del>-FAIL testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv, testDiv.childNodes.length - 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv, testDiv.childNodes.length - 1) 
</ins><span class="cx"> PASS testDiv.appendChild(testDiv.lastChild), with unselected range collapsed at (testDiv, testDiv.childNodes.length) 
</span><del>-FAIL testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv, testDiv.childNodes.length) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv, testDiv.childNodes.length) 
</ins><span class="cx"> PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range collapsed at (detachedDiv.lastChild, 0) 
</span><del>-FAIL detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv.lastChild, 0) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv.lastChild, 0) 
</ins><span class="cx"> PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range on detachedDiv.lastChild from 0 to 1 
</span><del>-FAIL detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv.lastChild from 0 to 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv.lastChild from 0 to 1 
</ins><span class="cx"> PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range collapsed at (detachedDiv.lastChild, 1) 
</span><del>-FAIL detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv.lastChild, 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv.lastChild, 1) 
</ins><span class="cx"> PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length 
</span><del>-FAIL detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length 
</ins><span class="cx"> PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length - 1 
</span><del>-FAIL detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length - 1 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length - 1 
</ins><span class="cx"> PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range on detachedDiv from detachedDiv.childNodes.length - 1 to detachedDiv.childNodes.length 
</span><del>-FAIL detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 1 to detachedDiv.childNodes.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 1 to detachedDiv.childNodes.length 
</ins><span class="cx"> PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range collapsed at (detachedDiv, detachedDiv.childNodes.length - 1) 
</span><del>-FAIL detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv, detachedDiv.childNodes.length - 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv, detachedDiv.childNodes.length - 1) 
</ins><span class="cx"> PASS detachedDiv.appendChild(detachedDiv.lastChild), with unselected range collapsed at (detachedDiv, detachedDiv.childNodes.length) 
</span><del>-FAIL detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv, detachedDiv.childNodes.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv, detachedDiv.childNodes.length) 
</ins><span class="cx"> PASS paras[0].appendChild(paras[1]), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].appendChild(paras[1]), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].appendChild(paras[1]), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].appendChild(paras[1]), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].appendChild(paras[1]), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].appendChild(paras[1]), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].appendChild(paras[1]), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].appendChild(paras[1]), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].appendChild(paras[1]), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].appendChild(paras[1]), with unselected range on testDiv from 0 to 1 
</span><del>-FAIL paras[0].appendChild(paras[1]), with selected range on testDiv from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot;
</del><ins>+PASS paras[0].appendChild(paras[1]), with selected range on testDiv from 0 to 1 
</ins><span class="cx"> PASS paras[0].appendChild(paras[1]), with unselected range on testDiv from 0 to 2 
</span><del>-FAIL paras[0].appendChild(paras[1]), with selected range on testDiv from 0 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot;
</del><ins>+PASS paras[0].appendChild(paras[1]), with selected range on testDiv from 0 to 2 
</ins><span class="cx"> PASS paras[0].appendChild(paras[1]), with unselected range collapsed at (testDiv, 1) 
</span><del>-FAIL paras[0].appendChild(paras[1]), with selected range collapsed at (testDiv, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].appendChild(paras[1]), with selected range collapsed at (testDiv, 1) 
</ins><span class="cx"> PASS paras[0].appendChild(paras[1]), with unselected range on testDiv from 1 to 2 
</span><del>-FAIL paras[0].appendChild(paras[1]), with selected range on testDiv from 1 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].appendChild(paras[1]), with selected range on testDiv from 1 to 2 
</ins><span class="cx"> PASS foreignDoc.appendChild(detachedComment), with unselected range on foreignDoc from foreignDoc.childNodes.length - 1 to foreignDoc.childNodes.length 
</span><del>-FAIL foreignDoc.appendChild(detachedComment), with selected range on foreignDoc from foreignDoc.childNodes.length - 1 to foreignDoc.childNodes.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.appendChild(detachedComment), with selected range on foreignDoc from foreignDoc.childNodes.length - 1 to foreignDoc.childNodes.length 
</ins><span class="cx"> PASS foreignDoc.appendChild(detachedComment), with unselected range collapsed at (foreignDoc, foreignDoc.childNodes.length - 1) 
</span><del>-FAIL foreignDoc.appendChild(detachedComment), with selected range collapsed at (foreignDoc, foreignDoc.childNodes.length - 1) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.appendChild(detachedComment), with selected range collapsed at (foreignDoc, foreignDoc.childNodes.length - 1) 
</ins><span class="cx"> PASS foreignDoc.appendChild(detachedComment), with unselected range collapsed at (foreignDoc, foreignDoc.childNodes.length) 
</span><del>-FAIL foreignDoc.appendChild(detachedComment), with selected range collapsed at (foreignDoc, foreignDoc.childNodes.length) assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.appendChild(detachedComment), with selected range collapsed at (foreignDoc, foreignDoc.childNodes.length) 
</ins><span class="cx"> PASS foreignDoc.appendChild(detachedComment), with unselected range on detachedComment from 0 to 5 
</span><del>-FAIL foreignDoc.appendChild(detachedComment), with selected range on detachedComment from 0 to 5 assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.appendChild(detachedComment), with selected range on detachedComment from 0 to 5 
</ins><span class="cx"> PASS paras[0].appendChild(xmlTextNode), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].appendChild(xmlTextNode), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].appendChild(xmlTextNode), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].appendChild(xmlTextNode), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].appendChild(xmlTextNode), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].appendChild(xmlTextNode), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].appendChild(xmlTextNode), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].appendChild(xmlTextNode), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].appendChild(xmlTextNode), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].appendChild(paras[0]), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].appendChild(paras[0]), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].appendChild(paras[0]), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].appendChild(testDiv), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].appendChild(testDiv), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].appendChild(testDiv), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].appendChild(document), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].appendChild(document), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].appendChild(document), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].appendChild(foreignDoc), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].appendChild(foreignDoc), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].appendChild(foreignDoc), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].appendChild(document.doctype), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].appendChild(document.doctype), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].appendChild(document.doctype), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].parentNode.removeChild(paras[0]), with unselected range collapsed at (paras[0], 0) 
</span><del>-FAIL paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (paras[0], 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (paras[0], 0) 
</ins><span class="cx"> PASS paras[0].parentNode.removeChild(paras[0]), with unselected range on paras[0] from 0 to 1 
</span><del>-FAIL paras[0].parentNode.removeChild(paras[0]), with selected range on paras[0] from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ&quot;
</del><ins>+PASS paras[0].parentNode.removeChild(paras[0]), with selected range on paras[0] from 0 to 1 
</ins><span class="cx"> PASS paras[0].parentNode.removeChild(paras[0]), with unselected range collapsed at (paras[0], 1) 
</span><del>-FAIL paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (paras[0], 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (paras[0], 1) 
</ins><span class="cx"> PASS paras[0].parentNode.removeChild(paras[0]), with unselected range collapsed at (testDiv, 0) 
</span><del>-FAIL paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (testDiv, 0) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (testDiv, 0) 
</ins><span class="cx"> PASS paras[0].parentNode.removeChild(paras[0]), with unselected range on testDiv from 0 to 1 
</span><del>-FAIL paras[0].parentNode.removeChild(paras[0]), with selected range on testDiv from 0 to 1 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot;
</del><ins>+PASS paras[0].parentNode.removeChild(paras[0]), with selected range on testDiv from 0 to 1 
</ins><span class="cx"> PASS paras[0].parentNode.removeChild(paras[0]), with unselected range collapsed at (testDiv, 1) 
</span><del>-FAIL paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (testDiv, 1) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (testDiv, 1) 
</ins><span class="cx"> PASS paras[0].parentNode.removeChild(paras[0]), with unselected range on testDiv from 0 to 2 
</span><del>-FAIL paras[0].parentNode.removeChild(paras[0]), with selected range on testDiv from 0 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot; but got object &quot;Äb̈c̈d̈ëf̈g̈ḧ
-Ijklmnop
-&quot;
</del><ins>+PASS paras[0].parentNode.removeChild(paras[0]), with selected range on testDiv from 0 to 2 
</ins><span class="cx"> PASS paras[0].parentNode.removeChild(paras[0]), with unselected range on testDiv from 1 to 2 
</span><del>-FAIL paras[0].parentNode.removeChild(paras[0]), with selected range on testDiv from 1 to 2 assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;Ijklmnop
-&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].parentNode.removeChild(paras[0]), with selected range on testDiv from 1 to 2 
</ins><span class="cx"> PASS paras[0].parentNode.removeChild(paras[0]), with unselected range collapsed at (testDiv, 2) 
</span><del>-FAIL paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (testDiv, 2) assert_equals: Sanity check: selection's range must initially be the same as the range we added expected object &quot;&quot; but got object &quot;&quot;
</del><ins>+PASS paras[0].parentNode.removeChild(paras[0]), with selected range collapsed at (testDiv, 2) 
</ins><span class="cx"> PASS foreignDoc.documentElement.parentNode.removeChild(foreignDoc.documentElement), with unselected range on foreignDoc from 0 to foreignDoc.childNodes.length 
</span><del>-FAIL foreignDoc.documentElement.parentNode.removeChild(foreignDoc.documentElement), with selected range on foreignDoc from 0 to foreignDoc.childNodes.length assert_equals: Sanity check: selection must have exactly one range after adding the range expected 1 but got 0
</del><ins>+PASS foreignDoc.documentElement.parentNode.removeChild(foreignDoc.documentElement), with selected range on foreignDoc from 0 to foreignDoc.childNodes.length 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsdomrangesRangemutationshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html (204529 => 204530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html        2016-08-16 22:32:50 UTC (rev 204529)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/dom/ranges/Range-mutations.html        2016-08-16 22:33:32 UTC (rev 204530)
</span><span class="lines">@@ -86,12 +86,14 @@
</span><span class="cx">     ]);
</span><span class="cx">     tests.push([
</span><span class="cx">       descFn(params) + &quot;, with selected &quot; + describeRange(params[len - 4], params[len - 3], params[len - 2], params[len - 1]),
</span><del>-      function(params) { return function() {
-        var evaledParams = params.map(eval);
</del><ins>+      function(params) { return function(selectedRange) {
+        var evaledParams = params.slice(0, len - 4).map(eval);
</ins><span class="cx">         for (var i = 0; i &lt; evaledParams.length; i++) {
</span><span class="cx">           assert_true(typeof evaledParams[i] != &quot;undefined&quot;,
</span><span class="cx">             &quot;Test bug: &quot; + params[i] + &quot; is undefined&quot;);
</span><span class="cx">         }
</span><ins>+        // 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]);
</ins><span class="cx">         return testFn.apply(null, evaledParams);
</span><span class="cx">       } }(params),
</span><span class="cx">       true,
</span><span class="lines">@@ -133,26 +135,16 @@
</span><span class="cx">     getSelection().removeAllRanges();
</span><span class="cx">     getSelection().addRange(range);
</span><span class="cx"> 
</span><del>-    assert_equals(getSelection().rangeCount, 1,
-      &quot;Sanity check: selection must have exactly one range after adding the range&quot;);
-    assert_equals(getSelection().getRangeAt(0), range,
-      &quot;Sanity check: selection's range must initially be the same as the range we added&quot;);
-    assert_equals(range.startContainer, startContainer,
-      &quot;Sanity check: range's startContainer must initially be the one we set&quot;);
-    assert_equals(range.endContainer, endContainer,
-      &quot;Sanity check: range's endContainer must initially be the one we set&quot;);
-    assert_equals(range.startOffset, startOffset,
-      &quot;Sanity check: range's startOffset must initially be the one we set&quot;);
-    assert_equals(range.endOffset, endOffset,
-      &quot;Sanity check: range's endOffset must initially be the one we set&quot;);
</del><ins>+    // 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);
</ins><span class="cx">   }
</span><span class="cx"> 
</span><del>-  var expected = callback();
</del><ins>+  var expected = callback(range);
</ins><span class="cx"> 
</span><del>-  if (useSelection) {
-    assert_equals(getSelection().getRangeAt(0), range,
-      &quot;The range we added must not be removed from the selection&quot;);
-  }
</del><span class="cx">   assert_equals(range.startContainer, expected[0],
</span><span class="cx">     &quot;Wrong start container&quot;);
</span><span class="cx">   assert_equals(range.startOffset, expected[1],
</span></span></pre>
</div>
</div>

</body>
</html>