Bug 1345490 - Update web-platform-tests expected data, a=testonly
☠☠ backed out by a18dc1688b2a ☠ ☠
authorJames Graham <james@hoppipolla.co.uk>
Thu, 09 Mar 2017 18:38:09 +0000
changeset 395911 bb409914119e2dc6d966cd8b93a1ad8765c61e58
parent 395910 99abc41849da1e8167cccf8f94f01274edd10c05
child 395912 7e39f6a6af4f86dd8c8798be0516ccbfa1e0005d
push id7391
push usermtabara@mozilla.com
push dateMon, 12 Jun 2017 13:08:53 +0000
treeherdermozilla-beta@2191d7f87e2e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1345490
milestone55.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1345490 - Update web-platform-tests expected data, a=testonly MozReview-Commit-ID: 6v6aK4ubvO6
testing/web-platform/meta/FileAPI/blob/Blob-XHR-revoke.html.ini
testing/web-platform/meta/IndexedDB/event-dispatch-active-flag.html.ini
testing/web-platform/meta/IndexedDB/idbcursor-update-exception-order.htm.ini
testing/web-platform/meta/IndexedDB/idbobjectstore-deleteIndex-exception-order.html.ini
testing/web-platform/meta/IndexedDB/keygenerator-explicit.html.ini
testing/web-platform/meta/IndexedDB/transaction-deactivation-timing.html.ini
testing/web-platform/meta/IndexedDB/upgrade-transaction-deactivation-timing.html.ini
testing/web-platform/meta/XMLHttpRequest/data-uri.htm.ini
testing/web-platform/meta/XMLHttpRequest/getallresponseheaders-cl.htm.ini
testing/web-platform/meta/XMLHttpRequest/getallresponseheaders.htm.ini
testing/web-platform/meta/XMLHttpRequest/open-url-redirected-worker-origin.htm.ini
testing/web-platform/meta/XMLHttpRequest/open-url-worker-origin.htm.ini
testing/web-platform/meta/XMLHttpRequest/overridemimetype-blob.html.ini
testing/web-platform/meta/XMLHttpRequest/responsetext-decoding.htm.ini
testing/web-platform/meta/XMLHttpRequest/send-network-error-sync-events.sub.htm.ini
testing/web-platform/meta/XMLHttpRequest/setrequestheader-case-insensitive.htm.ini
testing/web-platform/meta/XMLHttpRequest/setrequestheader-header-allowed.htm.ini
testing/web-platform/meta/console/console-count-label-conversion.any.js.ini
testing/web-platform/meta/console/console-time-label-conversion.any.js.ini
testing/web-platform/meta/content-security-policy/securitypolicyviolation/inside-dedicated-worker.html.ini
testing/web-platform/meta/content-security-policy/securitypolicyviolation/inside-service-worker.https.html.ini
testing/web-platform/meta/content-security-policy/securitypolicyviolation/inside-shared-worker.html.ini
testing/web-platform/meta/content-security-policy/securitypolicyviolation/script-sample-no-opt-in.html.ini
testing/web-platform/meta/content-security-policy/securitypolicyviolation/script-sample.html.ini
testing/web-platform/meta/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image-from-script.sub.html.ini
testing/web-platform/meta/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image.sub.html.ini
testing/web-platform/meta/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image-from-script.sub.html.ini
testing/web-platform/meta/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image.sub.html.ini
testing/web-platform/meta/content-security-policy/securitypolicyviolation/style-sample-no-opt-in.html.ini
testing/web-platform/meta/content-security-policy/securitypolicyviolation/style-sample.html.ini
testing/web-platform/meta/cors/late-upload-events.htm.ini
testing/web-platform/meta/css-typed-om/CSSMatrixComponent-DOMMatrix-mutable.html.ini
testing/web-platform/meta/css-typed-om/declared-styleMap-accepts-inherit.html.ini
testing/web-platform/meta/css-typed-om/styleMap-update-function.html.ini
testing/web-platform/meta/dom/events/CustomEvent.html.ini
testing/web-platform/meta/dom/events/Event-initEvent.html.ini
testing/web-platform/meta/dom/interfaces.html.ini
testing/web-platform/meta/dom/nodes/Element-webkitMatchesSelector.html.ini
testing/web-platform/meta/editing/run/multitest.html.ini
testing/web-platform/meta/fetch/api/basic/request-upload-worker.html.ini
testing/web-platform/meta/fetch/api/basic/request-upload.html.ini
testing/web-platform/meta/fetch/api/cors/cors-expose-star-worker.html.ini
testing/web-platform/meta/fetch/api/cors/cors-expose-star.html.ini
testing/web-platform/meta/fetch/api/cors/cors-preflight-star-worker.html.ini
testing/web-platform/meta/fetch/api/cors/cors-preflight-star.html.ini
testing/web-platform/meta/fetch/api/request/request-keepalive-quota.html.ini
testing/web-platform/meta/fetch/api/response/response-idl.html.ini
testing/web-platform/meta/fetch/api/response/response-trailer.html.ini
testing/web-platform/meta/html/browsers/windows/browsing-context-first-created.xhtml.ini
testing/web-platform/meta/html/browsers/windows/browsing-context.html.ini
testing/web-platform/meta/html/dom/interfaces.html.ini
testing/web-platform/meta/html/dom/interfaces.worker.js.ini
testing/web-platform/meta/html/semantics/forms/textfieldselection/select-event.html.ini
testing/web-platform/meta/html/semantics/forms/textfieldselection/selection-not-application.html.ini
testing/web-platform/meta/html/semantics/scripting-1/the-script-element/module/crossorigin.html.ini
testing/web-platform/meta/html/semantics/scripting-1/the-script-element/module/errorhandling.html.ini
testing/web-platform/meta/html/semantics/scripting-1/the-script-element/module/execorder.html.ini
testing/web-platform/meta/html/semantics/scripting-1/the-script-element/module/imports.html.ini
testing/web-platform/meta/html/syntax/parsing-html-fragments/the-input-byte-stream-015.html.ini
testing/web-platform/meta/html/webappapis/scripting/events/messageevent-constructor.https.html.ini
testing/web-platform/meta/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.html.ini
testing/web-platform/meta/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker.js.ini
testing/web-platform/meta/media-capabilities/query.html.ini
testing/web-platform/meta/mediacapture-streams/MediaStreamTrack-end.https.html.ini
testing/web-platform/meta/pointerevents/extension/idlharness.html.ini
testing/web-platform/meta/pointerevents/extension/pointerevent_constructor.html.ini
testing/web-platform/meta/pointerevents/idlharness.html.ini
testing/web-platform/meta/pointerevents/pointerevent_on_event_handlers.html.ini
testing/web-platform/meta/presentation-api/receiving-ua/idlharness.html.ini
testing/web-platform/meta/selection/addRange-00.html.ini
testing/web-platform/meta/selection/addRange-04.html.ini
testing/web-platform/meta/selection/addRange-12.html.ini
testing/web-platform/meta/selection/addRange-16.html.ini
testing/web-platform/meta/selection/addRange-20.html.ini
testing/web-platform/meta/selection/addRange-24.html.ini
testing/web-platform/meta/selection/addRange-28.html.ini
testing/web-platform/meta/selection/addRange-32.html.ini
testing/web-platform/meta/selection/addRange-36.html.ini
testing/web-platform/meta/selection/collapse-00.html.ini
testing/web-platform/meta/selection/collapse-30.html.ini
testing/web-platform/meta/selection/extend-00.html.ini
testing/web-platform/meta/selection/extend-20.html.ini
testing/web-platform/meta/selection/extend-40.html.ini
testing/web-platform/meta/selection/interfaces.html.ini
testing/web-platform/meta/selection/removeRange.html.ini
testing/web-platform/meta/service-workers/service-worker/controller-on-reload.https.html.ini
testing/web-platform/meta/service-workers/service-worker/fetch-event-within-sw.html.ini
testing/web-platform/meta/service-workers/service-worker/multiple-register.https.html.ini
testing/web-platform/meta/service-workers/service-worker/registration-iframe.https.html.ini
testing/web-platform/meta/service-workers/service-worker/serviceworker-message-event-historical.https.html.ini
testing/web-platform/meta/service-workers/service-worker/skip-waiting-installed.https.html.ini
testing/web-platform/meta/service-workers/service-worker/skip-waiting-using-registration.https.html.ini
testing/web-platform/meta/storage/interfaces.html.ini
testing/web-platform/meta/storage/interfaces.worker.js.ini
testing/web-platform/meta/storage/opaque-origin.https.html.ini
testing/web-platform/meta/streams/readable-streams/brand-checks.dedicatedworker.html.ini
testing/web-platform/meta/streams/readable-streams/brand-checks.html.ini
testing/web-platform/meta/streams/readable-streams/brand-checks.serviceworker.https.html.ini
testing/web-platform/meta/streams/readable-streams/brand-checks.sharedworker.html.ini
testing/web-platform/meta/streams/readable-streams/default-reader.dedicatedworker.html.ini
testing/web-platform/meta/streams/readable-streams/default-reader.html.ini
testing/web-platform/meta/streams/readable-streams/default-reader.serviceworker.https.html.ini
testing/web-platform/meta/streams/readable-streams/default-reader.sharedworker.html.ini
testing/web-platform/meta/streams/readable-streams/garbage-collection.dedicatedworker.html.ini
testing/web-platform/meta/streams/readable-streams/garbage-collection.html.ini
testing/web-platform/meta/streams/readable-streams/garbage-collection.serviceworker.https.html.ini
testing/web-platform/meta/streams/readable-streams/garbage-collection.sharedworker.html.ini
testing/web-platform/meta/streams/readable-streams/readable-stream-reader.dedicatedworker.html.ini
testing/web-platform/meta/streams/readable-streams/readable-stream-reader.html.ini
testing/web-platform/meta/streams/readable-streams/readable-stream-reader.serviceworker.https.html.ini
testing/web-platform/meta/streams/readable-streams/readable-stream-reader.sharedworker.html.ini
testing/web-platform/meta/streams/writable-streams/reentrant-strategy.dedicatedworker.html.ini
testing/web-platform/meta/streams/writable-streams/reentrant-strategy.html.ini
testing/web-platform/meta/streams/writable-streams/reentrant-strategy.serviceworker.https.html.ini
testing/web-platform/meta/streams/writable-streams/reentrant-strategy.sharedworker.html.ini
testing/web-platform/meta/uievents/constructors/inputevent-constructor.html.ini
testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini
testing/web-platform/meta/url/a-element-origin.html.ini
testing/web-platform/meta/url/a-element-xhtml.xhtml.ini
testing/web-platform/meta/url/a-element.html.ini
testing/web-platform/meta/url/failure.html.ini
testing/web-platform/meta/url/url-constructor.html.ini
testing/web-platform/meta/url/url-origin.html.ini
testing/web-platform/meta/url/url-setters.html.ini
testing/web-platform/meta/webdriver/actions/key.py.ini
testing/web-platform/meta/webdriver/actions/mouse.py.ini
testing/web-platform/meta/webdriver/actions/sequence.py.ini
testing/web-platform/meta/webdriver/contexts.py.ini
testing/web-platform/meta/webdriver/navigation.py.ini
testing/web-platform/meta/webvtt/api/VTTCue/constructor.html.ini
testing/web-platform/meta/webvtt/api/VTTCue/region.html.ini
testing/web-platform/meta/webvtt/api/VTTCue/text.html.ini
testing/web-platform/meta/webvtt/api/VTTRegion/constructor.html.ini
testing/web-platform/meta/webvtt/api/VTTRegion/lines.html.ini
testing/web-platform/meta/webvtt/api/VTTRegion/regionAnchorX.html.ini
testing/web-platform/meta/webvtt/api/VTTRegion/regionAnchorY.html.ini
testing/web-platform/meta/webvtt/api/VTTRegion/scroll.html.ini
testing/web-platform/meta/webvtt/api/VTTRegion/viewportAnchorX.html.ini
testing/web-platform/meta/webvtt/api/VTTRegion/viewportAnchorY.html.ini
testing/web-platform/meta/webvtt/api/VTTRegion/width.html.ini
testing/web-platform/meta/webvtt/parsing/cue-text-parsing/tests/entities.html.ini
testing/web-platform/meta/webvtt/parsing/cue-text-parsing/tests/tags.html.ini
testing/web-platform/meta/webvtt/parsing/cue-text-parsing/tests/timestamps.html.ini
testing/web-platform/meta/webvtt/parsing/cue-text-parsing/tests/tree-building.html.ini
testing/web-platform/meta/webvtt/parsing/file-parsing/tests/regions-id.html.ini
testing/web-platform/meta/webvtt/parsing/file-parsing/tests/regions-lines.html.ini
testing/web-platform/meta/webvtt/parsing/file-parsing/tests/regions-old.html.ini
testing/web-platform/meta/webvtt/parsing/file-parsing/tests/regions-regionanchor.html.ini
testing/web-platform/meta/webvtt/parsing/file-parsing/tests/regions-scroll.html.ini
testing/web-platform/meta/webvtt/parsing/file-parsing/tests/regions-viewportanchor.html.ini
testing/web-platform/meta/webvtt/parsing/file-parsing/tests/settings-line.html.ini
testing/web-platform/meta/webvtt/parsing/file-parsing/tests/settings-position.html.ini
testing/web-platform/meta/webvtt/parsing/file-parsing/tests/settings-region.html.ini
testing/web-platform/meta/webvtt/parsing/webvtt-cue-text-parsing-rules/tests/entities.html.ini
testing/web-platform/meta/webvtt/parsing/webvtt-cue-text-parsing-rules/tests/tags.html.ini
testing/web-platform/meta/webvtt/parsing/webvtt-cue-text-parsing-rules/tests/timestamps.html.ini
testing/web-platform/meta/webvtt/parsing/webvtt-cue-text-parsing-rules/tests/tree-building.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/2_tracks.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/align_end.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/align_middle.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/align_middle_position_50.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/align_middle_position_gt_50.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/align_middle_position_lt_50.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/align_middle_position_lt_50_size_gt_maximum_size.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/basic.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/bidi/bidi_ruby.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/bidi/u002E_LF_u05D0.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/bidi/u002E_u2028_u05D0.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/bidi/u002E_u2029_u05D0.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/bidi/u0041_first.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/bidi/u05D0_first.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/bidi/u0628_first.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/bidi/u06E9_no_strong_dir.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/decode_escaped_entities.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/evil/single_quote.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/evil/size_90.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/evil/size_99.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/line_-2_wrapped_cue_grow_upwards.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/one_line_cue_plus_wrapped_cue.html.ini
testing/web-platform/meta/webvtt/rendering/cues-with-video/processing-model/size_50.html.ini
testing/web-platform/meta/workers/constructors/SharedWorker/global-members.html.ini
testing/web-platform/mozilla/meta/html/semantics/scripting-1/the-script-element/__dir__.ini
testing/web-platform/mozilla/meta/html/semantics/scripting-1/the-script-element/create-module-script.html.ini
testing/web-platform/mozilla/meta/html/semantics/scripting-1/the-script-element/reload-failed-module-script.html.ini
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/FileAPI/blob/Blob-XHR-revoke.html.ini
@@ -0,0 +1,5 @@
+[Blob-XHR-revoke.html]
+  type: testharness
+  [Revoke blob URL before open(), network error (after send())]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/IndexedDB/event-dispatch-active-flag.html.ini
@@ -0,0 +1,14 @@
+[event-dispatch-active-flag.html]
+  type: testharness
+  [Transactions are active during success handlers]
+    expected: FAIL
+
+  [Transactions are active during success listeners]
+    expected: FAIL
+
+  [Transactions are active during error handlers]
+    expected: FAIL
+
+  [Transactions are active during error listeners]
+    expected: FAIL
+
--- a/testing/web-platform/meta/IndexedDB/idbcursor-update-exception-order.htm.ini
+++ b/testing/web-platform/meta/IndexedDB/idbcursor-update-exception-order.htm.ini
@@ -1,2 +1,3 @@
 [idbcursor-update-exception-order.htm]
+  type: testharness
   disabled: if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1336639
--- a/testing/web-platform/meta/IndexedDB/idbobjectstore-deleteIndex-exception-order.html.ini
+++ b/testing/web-platform/meta/IndexedDB/idbobjectstore-deleteIndex-exception-order.html.ini
@@ -1,2 +1,3 @@
 [idbobjectstore-deleteIndex-exception-order.html]
+  type: testharness
   disabled: if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1336639
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/IndexedDB/keygenerator-explicit.html.ini
@@ -0,0 +1,24 @@
+[keygenerator-explicit.html]
+  type: testharness
+  expected:
+    if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
+    if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): CRASH
+    if debug and not e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
+    if debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): CRASH
+    if debug and e10s and (os == "win") and (version == "6.2.9200") and (processor == "x86_64") and (bits == 64): CRASH
+    if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
+    if debug and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
+    if debug and not e10s and (os == "win") and (version == "6.2.9200") and (processor == "x86_64") and (bits == 64): CRASH
+    if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): CRASH
+  [Key generator vs. explicit key 63 bits]
+    expected: FAIL
+
+  [Key generator vs. explicit key 64 bits]
+    expected: FAIL
+
+  [Key generator vs. explicit key greater than 64 bits, but still finite]
+    expected: FAIL
+
+  [Key generator vs. explicit key equal to Infinity]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/IndexedDB/transaction-deactivation-timing.html.ini
@@ -0,0 +1,11 @@
+[transaction-deactivation-timing.html]
+  type: testharness
+  [New transactions are not deactivated until after the microtask checkpoint]
+    expected: FAIL
+
+  [New transactions from microtask are still active through the microtask checkpoint]
+    expected: FAIL
+
+  [Deactivation of new transactions happens at end of invocation]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/IndexedDB/upgrade-transaction-deactivation-timing.html.ini
@@ -0,0 +1,5 @@
+[upgrade-transaction-deactivation-timing.html]
+  type: testharness
+  [Upgrade transactions are active in upgradeneeded callback and microtasks]
+    expected: FAIL
+
--- a/testing/web-platform/meta/XMLHttpRequest/data-uri.htm.ini
+++ b/testing/web-platform/meta/XMLHttpRequest/data-uri.htm.ini
@@ -13,8 +13,11 @@
     expected: FAIL
 
   [XHR method HEAD with charset text/plain]
     expected: FAIL
 
   [XHR method UNICORN with charset text/plain]
     expected: FAIL
 
+  [XHR method GET with MIME type image/png]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/XMLHttpRequest/getallresponseheaders-cl.htm.ini
@@ -0,0 +1,11 @@
+[getallresponseheaders-cl.htm]
+  type: testharness
+  [Casing of known headers]
+    expected: FAIL
+
+  [Casing of known headers 1]
+    expected: FAIL
+
+  [Casing of known headers 2]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/XMLHttpRequest/getallresponseheaders.htm.ini
@@ -0,0 +1,5 @@
+[getallresponseheaders.htm]
+  type: testharness
+  [XMLHttpRequest: getAllResponseHeaders() 1]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/XMLHttpRequest/open-url-redirected-worker-origin.htm.ini
@@ -0,0 +1,8 @@
+[open-url-redirected-worker-origin.htm]
+  type: testharness
+  [Referer header]
+    expected: FAIL
+
+  [Origin header]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/XMLHttpRequest/open-url-worker-origin.htm.ini
@@ -0,0 +1,8 @@
+[open-url-worker-origin.htm]
+  type: testharness
+  [Referer header]
+    expected: FAIL
+
+  [Origin header]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/XMLHttpRequest/overridemimetype-blob.html.ini
@@ -0,0 +1,14 @@
+[overridemimetype-blob.html]
+  type: testharness
+  [Use text/xml as fallback MIME type]
+    expected: FAIL
+
+  [Use text/xml as fallback MIME type, 2]
+    expected: FAIL
+
+  [Bogus MIME type should end up as application/octet-stream]
+    expected: FAIL
+
+  [Bogus MIME type should end up as application/octet-stream, 2]
+    expected: FAIL
+
--- a/testing/web-platform/meta/XMLHttpRequest/responsetext-decoding.htm.ini
+++ b/testing/web-platform/meta/XMLHttpRequest/responsetext-decoding.htm.ini
@@ -1,13 +1,10 @@
 [responsetext-decoding.htm]
   type: testharness
-  [XMLHttpRequest: responseText decoding (text/html %3C!doctype%20html%3E%3Cmeta%20charset%3Dwindows-1252%3E%FF)]
-    expected: FAIL
-
   [XMLHttpRequest: responseText decoding (text/plain %FE%FF)]
     expected: FAIL
 
   [XMLHttpRequest: responseText decoding (text/plain %FE%FF%FE%FF)]
     expected: FAIL
 
   [XMLHttpRequest: responseText decoding (text/plain %C2)]
     expected: FAIL
--- a/testing/web-platform/meta/XMLHttpRequest/send-network-error-sync-events.sub.htm.ini
+++ b/testing/web-platform/meta/XMLHttpRequest/send-network-error-sync-events.sub.htm.ini
@@ -1,5 +1,8 @@
 [send-network-error-sync-events.sub.htm]
   type: testharness
   [XmlHttpRequest: The send() method: Throw a "throw an "NetworkError" exception when Network error happens (synchronous flag is set)]
     expected: FAIL
 
+  [XMLHttpRequest: The send() method: Throw a "throw an "NetworkError" exception when Network error happens (synchronous flag is set)]
+    expected: FAIL
+
deleted file mode 100644
--- a/testing/web-platform/meta/XMLHttpRequest/setrequestheader-case-insensitive.htm.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[setrequestheader-case-insensitive.htm]
-  type: testharness
-  [XMLHttpRequest: setRequestHeader() - headers that differ in case]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/XMLHttpRequest/setrequestheader-header-allowed.htm.ini
+++ /dev/null
@@ -1,29 +0,0 @@
-[setrequestheader-header-allowed.htm]
-  type: testharness
-  [XMLHttpRequest: setRequestHeader() - headers that are allowed (Authorization)]
-    expected: FAIL
-
-  [XMLHttpRequest: setRequestHeader() - headers that are allowed (Pragma)]
-    expected: FAIL
-
-  [XMLHttpRequest: setRequestHeader() - headers that are allowed (User-Agent)]
-    expected: FAIL
-
-  [XMLHttpRequest: setRequestHeader() - headers that are allowed (Content-Transfer-Encoding)]
-    expected: FAIL
-
-  [XMLHttpRequest: setRequestHeader() - headers that are allowed (Content-Type)]
-    expected: FAIL
-
-  [XMLHttpRequest: setRequestHeader() - headers that are allowed (Overwrite)]
-    expected: FAIL
-
-  [XMLHttpRequest: setRequestHeader() - headers that are allowed (If)]
-    expected: FAIL
-
-  [XMLHttpRequest: setRequestHeader() - headers that are allowed (Status-URI)]
-    expected: FAIL
-
-  [XMLHttpRequest: setRequestHeader() - headers that are allowed (X-Pink-Unicorn)]
-    expected: FAIL
-
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/console/console-count-label-conversion.any.js.ini
@@ -0,0 +1,11 @@
+[console-count-label-conversion.any.html]
+  type: testharness
+  [console.count() throws exceptions generated by erroneous label.toString() conversion]
+    expected: FAIL
+
+
+[console-count-label-conversion.any.worker.html]
+  type: testharness
+  [console.count() throws exceptions generated by erroneous label.toString() conversion]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/console/console-time-label-conversion.any.js.ini
@@ -0,0 +1,17 @@
+[console-time-label-conversion.any.worker.html]
+  type: testharness
+  [console.time() throws exceptions generated by erroneous label.toString() conversion]
+    expected: FAIL
+
+  [console.timeEnd() throws exceptions generated by erroneous label.toString() conversion]
+    expected: FAIL
+
+
+[console-time-label-conversion.any.html]
+  type: testharness
+  [console.time() throws exceptions generated by erroneous label.toString() conversion]
+    expected: FAIL
+
+  [console.timeEnd() throws exceptions generated by erroneous label.toString() conversion]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/inside-dedicated-worker.html.ini
@@ -0,0 +1,6 @@
+[inside-dedicated-worker.html]
+  type: testharness
+  expected: TIMEOUT
+  [SecurityPolicyViolation event fired on global.]
+    expected: TIMEOUT
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/inside-service-worker.https.html.ini
@@ -0,0 +1,6 @@
+[inside-service-worker.https.html]
+  type: testharness
+  expected: TIMEOUT
+  [SecurityPolicyViolation event fired on global.]
+    expected: TIMEOUT
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/inside-shared-worker.html.ini
@@ -0,0 +1,6 @@
+[inside-shared-worker.html]
+  type: testharness
+  expected: TIMEOUT
+  [SecurityPolicyViolation event fired on global.]
+    expected: TIMEOUT
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/script-sample-no-opt-in.html.ini
@@ -0,0 +1,15 @@
+[script-sample-no-opt-in.html]
+  type: testharness
+  expected: TIMEOUT
+  [Inline script should not have a sample.]
+    expected: TIMEOUT
+
+  [Inline event handlers should not have a sample.]
+    expected: TIMEOUT
+
+  [JavaScript URLs in iframes should not have a sample.]
+    expected: TIMEOUT
+
+  [eval() should not have a sample.]
+    expected: TIMEOUT
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/script-sample.html.ini
@@ -0,0 +1,15 @@
+[script-sample.html]
+  type: testharness
+  expected: TIMEOUT
+  [Inline script should have a sample.]
+    expected: TIMEOUT
+
+  [Inline event handlers should have a sample.]
+    expected: TIMEOUT
+
+  [JavaScript URLs in iframes should have a sample.]
+    expected: TIMEOUT
+
+  [eval() should not have a sample.]
+    expected: TIMEOUT
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image-from-script.sub.html.ini
@@ -0,0 +1,6 @@
+[securitypolicyviolation-block-cross-origin-image-from-script.sub.html]
+  type: testharness
+  expected: TIMEOUT
+  [Non-redirected cross-origin URLs are not stripped.]
+    expected: TIMEOUT
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image.sub.html.ini
@@ -0,0 +1,6 @@
+[securitypolicyviolation-block-cross-origin-image.sub.html]
+  type: testharness
+  expected: TIMEOUT
+  [Non-redirected cross-origin URLs are not stripped.]
+    expected: TIMEOUT
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image-from-script.sub.html.ini
@@ -0,0 +1,6 @@
+[securitypolicyviolation-block-image-from-script.sub.html]
+  type: testharness
+  expected: TIMEOUT
+  [Non-redirected cross-origin URLs are not stripped.]
+    expected: TIMEOUT
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image.sub.html.ini
@@ -0,0 +1,6 @@
+[securitypolicyviolation-block-image.sub.html]
+  type: testharness
+  expected: TIMEOUT
+  [Non-redirected same-origin URLs are not stripped.]
+    expected: TIMEOUT
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/style-sample-no-opt-in.html.ini
@@ -0,0 +1,9 @@
+[style-sample-no-opt-in.html]
+  type: testharness
+  expected: TIMEOUT
+  [Inline style blocks should not have a sample.]
+    expected: TIMEOUT
+
+  [Inline style attributes should not have a sample.]
+    expected: TIMEOUT
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/content-security-policy/securitypolicyviolation/style-sample.html.ini
@@ -0,0 +1,9 @@
+[style-sample.html]
+  type: testharness
+  expected: TIMEOUT
+  [Inline style blocks should have a sample.]
+    expected: TIMEOUT
+
+  [Inline style attributes should have a sample.]
+    expected: TIMEOUT
+
deleted file mode 100644
--- a/testing/web-platform/meta/cors/late-upload-events.htm.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[late-upload-events.htm]
-  type: testharness
-  [Late listeners: Preflight]
-    expected: FAIL
-
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/css-typed-om/CSSMatrixComponent-DOMMatrix-mutable.html.ini
@@ -0,0 +1,5 @@
+[CSSMatrixComponent-DOMMatrix-mutable.html]
+  type: testharness
+  [CSSMatrixComponent's matrix attribute is mutable]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/css-typed-om/declared-styleMap-accepts-inherit.html.ini
@@ -0,0 +1,5 @@
+[declared-styleMap-accepts-inherit.html]
+  type: testharness
+  [Declared styleMap objects accept 'inherit' as a value]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/css-typed-om/styleMap-update-function.html.ini
@@ -0,0 +1,5 @@
+[styleMap-update-function.html]
+  type: testharness
+  [styleMap objects provide an 'update' function]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/dom/events/CustomEvent.html.ini
@@ -0,0 +1,5 @@
+[CustomEvent.html]
+  type: testharness
+  [initCustomEvent's default parameter values.]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/dom/events/Event-initEvent.html.ini
@@ -0,0 +1,5 @@
+[Event-initEvent.html]
+  type: testharness
+  [Tests initEvent's default parameter values.]
+    expected: FAIL
+
--- a/testing/web-platform/meta/dom/interfaces.html.ini
+++ b/testing/web-platform/meta/dom/interfaces.html.ini
@@ -40,8 +40,14 @@
     expected: FAIL
 
   [Text interface: attribute assignedSlot]
     expected: FAIL
 
   [Text interface: document.createTextNode("abc") must inherit property "assignedSlot" with the proper type (2)]
     expected: FAIL
 
+  [Event interface: operation initEvent(DOMString,boolean,boolean)]
+    expected: FAIL
+
+  [CustomEvent interface: operation initCustomEvent(DOMString,boolean,boolean,any)]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/dom/nodes/Element-webkitMatchesSelector.html.ini
@@ -0,0 +1,77 @@
+[Element-webkitMatchesSelector.html]
+  type: testharness
+  [In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): body>>#descendant-div1]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3]
+    expected: FAIL
+
+  [Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div]
+    expected: FAIL
+
+  [Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1]
+    expected: FAIL
+
+  [Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2]
+    expected: FAIL
+
+  [Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2]
+    expected: FAIL
+
+  [Detached Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3]
+    expected: FAIL
+
+  [Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div]
+    expected: FAIL
+
+  [Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1]
+    expected: FAIL
+
+  [Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2]
+    expected: FAIL
+
+  [Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2]
+    expected: FAIL
+
+  [Fragment Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Universal selector, matching all children of the specified reference element (with refNode Element): >*]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Universal selector, matching all grandchildren of the specified reference element (with refNode Element): >*>*]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Universal selector, matching all descendants of the specified reference element (with refNode Element): *]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element that is a descendant of an element with id (1) (with no refNodes): #descendant>>div]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (1) (with no refNodes): body>>#descendant-div1]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element (1) (with no refNodes): div>>#descendant-div1]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id (1) (with no refNodes): #descendant>>#descendant-div2]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id (1) (with no refNodes): #descendant>>.descendant-div2]
+    expected: FAIL
+
+  [In-document Element.webkitMatchesSelector: Descendant combinator, '>>', matching element with class that is a descendant of an element with class (1) (with no refNodes): .descendant-div1>>.descendant-div3]
+    expected: FAIL
+
--- a/testing/web-platform/meta/editing/run/multitest.html.ini
+++ b/testing/web-platform/meta/editing/run/multitest.html.ini
@@ -1102,8 +1102,20 @@
     expected: FAIL
 
   [[["delete",""\],["inserttext","a"\]\] "foo<font size=3><sub>[bar</sub></font>baz\]" compare innerHTML]
     expected: FAIL
 
   [[["delete",""\],["inserttext","a"\]\] "<blockquote><font color=blue>[foo\]</font></blockquote>" compare innerHTML]
     expected: FAIL
 
+  [[["createlink","http://www.google.com/"\],["underline","","first application"\],["underline","","second application"\],["inserttext","a"\]\] "foo[\]bar" compare innerHTML]
+    expected: FAIL
+
+  [[["createlink","http://www.google.com/"\],["underline","","first application"\],["underline","","second application"\],["inserttext","a"\]\] "foo[\]bar" queryCommandState("underline") after]
+    expected: FAIL
+
+  [[["underline","","first application"\],["underline","","second application"\],["createlink","http://www.google.com/"\],["inserttext","a"\]\] "foo[\]bar" compare innerHTML]
+    expected: FAIL
+
+  [[["underline","","first application"\],["underline","","second application"\],["createlink","http://www.google.com/"\],["inserttext","a"\]\] "foo[\]bar" queryCommandState("underline") after]
+    expected: FAIL
+
--- a/testing/web-platform/meta/fetch/api/basic/request-upload-worker.html.ini
+++ b/testing/web-platform/meta/fetch/api/basic/request-upload-worker.html.ini
@@ -1,36 +1,20 @@
 [request-upload-worker.html]
   type: testharness
-  expected: ERROR
-  [Fetch with PUT with body]
-    expected: NOTRUN
-
-  [Fetch with POST with text body]
-    expected: NOTRUN
+  [Fetch with POST with ReadableStream]
+    expected: FAIL
 
-  [Fetch with POST with URLSearchParams body]
-    expected: NOTRUN
+  [Fetch with POST with ReadableStream containing String]
+    expected: FAIL
 
-  [Fetch with POST with Blob body]
-    expected: NOTRUN
-
-  [Fetch with POST with ArrayBuffer body]
-    expected: NOTRUN
+  [Fetch with POST with ReadableStream containing null]
+    expected: FAIL
 
-  [Fetch with POST with Uint8Array body]
-    expected: NOTRUN
-
-  [Fetch with POST with Int8Array body]
-    expected: NOTRUN
-
-  [Fetch with POST with Float32Array body]
-    expected: NOTRUN
+  [Fetch with POST with ReadableStream containing number]
+    expected: FAIL
 
-  [Fetch with POST with Float64Array body]
-    expected: NOTRUN
+  [Fetch with POST with ReadableStream containing ArrayBuffer]
+    expected: FAIL
 
-  [Fetch with POST with DataView body]
-    expected: NOTRUN
+  [Fetch with POST with ReadableStream containing Blob]
+    expected: FAIL
 
-  [Fetch with POST with Blob body with mime type]
-    expected: NOTRUN
-
--- a/testing/web-platform/meta/fetch/api/basic/request-upload.html.ini
+++ b/testing/web-platform/meta/fetch/api/basic/request-upload.html.ini
@@ -1,3 +1,20 @@
 [request-upload.html]
   type: testharness
-  expected: ERROR
+  [Fetch with POST with ReadableStream]
+    expected: FAIL
+
+  [Fetch with POST with ReadableStream containing String]
+    expected: FAIL
+
+  [Fetch with POST with ReadableStream containing null]
+    expected: FAIL
+
+  [Fetch with POST with ReadableStream containing number]
+    expected: FAIL
+
+  [Fetch with POST with ReadableStream containing ArrayBuffer]
+    expected: FAIL
+
+  [Fetch with POST with ReadableStream containing Blob]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/fetch/api/cors/cors-expose-star-worker.html.ini
@@ -0,0 +1,5 @@
+[cors-expose-star-worker.html]
+  type: testharness
+  [Basic Access-Control-Expose-Headers: * support]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/fetch/api/cors/cors-expose-star.html.ini
@@ -0,0 +1,5 @@
+[cors-expose-star.html]
+  type: testharness
+  [Basic Access-Control-Expose-Headers: * support]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/fetch/api/cors/cors-preflight-star-worker.html.ini
@@ -0,0 +1,14 @@
+[cors-preflight-star-worker.html]
+  type: testharness
+  [CORS that succeeds with credentials: false; method: SUPER (allowed: *); header: X-Test,1 (allowed: x-test)]
+    expected: FAIL
+
+  [CORS that succeeds with credentials: false; method: OK (allowed: *); header: X-Test,1 (allowed: *)]
+    expected: FAIL
+
+  [CORS that fails with credentials: true; method: GET (allowed: *); header: undefined (allowed: )]
+    expected: FAIL
+
+  [CORS that fails with credentials: true; method: GET (allowed: *); header: undefined (allowed: *)]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/fetch/api/cors/cors-preflight-star.html.ini
@@ -0,0 +1,14 @@
+[cors-preflight-star.html]
+  type: testharness
+  [CORS that succeeds with credentials: false; method: SUPER (allowed: *); header: X-Test,1 (allowed: x-test)]
+    expected: FAIL
+
+  [CORS that succeeds with credentials: false; method: OK (allowed: *); header: X-Test,1 (allowed: *)]
+    expected: FAIL
+
+  [CORS that fails with credentials: true; method: GET (allowed: *); header: undefined (allowed: )]
+    expected: FAIL
+
+  [CORS that fails with credentials: true; method: GET (allowed: *); header: undefined (allowed: *)]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/fetch/api/request/request-keepalive-quota.html.ini
@@ -0,0 +1,8 @@
+[request-keepalive-quota.html]
+  type: testharness
+  [A Keep-Alive fetch() with a body over the Quota Limit should reject.]
+    expected: FAIL
+
+  [A Keep-Alive fetch() should not be allowed if the Quota is used up.]
+    expected: FAIL
+
--- a/testing/web-platform/meta/fetch/api/response/response-idl.html.ini
+++ b/testing/web-platform/meta/fetch/api/response/response-idl.html.ini
@@ -4,8 +4,17 @@
     expected: FAIL
 
   [Response interface: new Response() must inherit property "body" with the proper type (8)]
     expected: FAIL
 
   [Response interface: new Response() must inherit property "body" with the proper type (9)]
     expected: FAIL
 
+  [Response interface: attribute trailer]
+    expected: FAIL
+
+  [Response interface: new Response() must inherit property "trailer" with the proper type (8)]
+    expected: FAIL
+
+  [Response interface: new Response() must inherit property "body" with the proper type (10)]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/fetch/api/response/response-trailer.html.ini
@@ -0,0 +1,5 @@
+[response-trailer.html]
+  type: testharness
+  [trailer() test]
+    expected: FAIL
+
deleted file mode 100644
--- a/testing/web-platform/meta/html/browsers/windows/browsing-context-first-created.xhtml.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-[browsing-context-first-created.xhtml]
-  type: testharness
-  [Check the document's meta data]
-    expected: FAIL
-
-  [Check the document's status]
-    expected: FAIL
-
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/browsers/windows/browsing-context.html.ini
@@ -0,0 +1,8 @@
+[browsing-context.html]
+  type: testharness
+  [Check that browsing context has new, ready HTML document]
+    expected: FAIL
+
+  [Check the document properties corresponding to the creator browsing context]
+    expected: FAIL
+
--- a/testing/web-platform/meta/html/dom/interfaces.html.ini
+++ b/testing/web-platform/meta/html/dom/interfaces.html.ini
@@ -3482,8 +3482,14 @@
     expected: FAIL
 
   [HTMLScriptElement interface: document.createElement("script") must inherit property "noModule" with the proper type (2)]
     expected: FAIL
 
   [HTMLScriptElement interface: document.createElement("script") must inherit property "nonce" with the proper type (8)]
     expected: FAIL
 
+  [HTMLElement interface: document.createElement("noscript") must inherit property "forceSpellCheck" with the proper type (15)]
+    expected: FAIL
+
+  [MessageEvent interface: operation initMessageEvent(DOMString,boolean,boolean,any,DOMString,DOMString,[object Object\],[object Object\],[object Object\])]
+    expected: FAIL
+
--- a/testing/web-platform/meta/html/dom/interfaces.worker.js.ini
+++ b/testing/web-platform/meta/html/dom/interfaces.worker.js.ini
@@ -70,8 +70,11 @@
     expected: FAIL
 
   [SharedWorker interface: attribute onerror]
     expected: FAIL
 
   [WorkerGlobalScope interface: self must inherit property "onlanguagechange" with the proper type (5)]
     expected: FAIL
 
+  [MessageEvent interface: operation initMessageEvent(DOMString,boolean,boolean,any,DOMString,DOMString,[object Object\],[object Object\],[object Object\])]
+    expected: FAIL
+
--- a/testing/web-platform/meta/html/semantics/forms/textfieldselection/select-event.html.ini
+++ b/testing/web-platform/meta/html/semantics/forms/textfieldselection/select-event.html.ini
@@ -13,8 +13,134 @@
     expected: FAIL
 
   [select() on input type url queues select event]
     expected: FAIL
 
   [select() on input type password queues select event]
     expected: FAIL
 
+  [textarea: select()]
+    expected: FAIL
+
+  [textarea: select() a second time (must not fire select)]
+    expected: FAIL
+
+  [textarea: selectionStart a second time (must not fire select)]
+    expected: FAIL
+
+  [textarea: selectionEnd a second time (must not fire select)]
+    expected: FAIL
+
+  [textarea: selectionDirection a second time (must not fire select)]
+    expected: FAIL
+
+  [textarea: setSelectionRange() a second time (must not fire select)]
+    expected: FAIL
+
+  [textarea: setRangeText() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type text: select()]
+    expected: FAIL
+
+  [input type text: select() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type text: selectionStart a second time (must not fire select)]
+    expected: FAIL
+
+  [input type text: selectionEnd a second time (must not fire select)]
+    expected: FAIL
+
+  [input type text: selectionDirection a second time (must not fire select)]
+    expected: FAIL
+
+  [input type text: setSelectionRange() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type text: setRangeText() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type search: select()]
+    expected: FAIL
+
+  [input type search: select() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type search: selectionStart a second time (must not fire select)]
+    expected: FAIL
+
+  [input type search: selectionEnd a second time (must not fire select)]
+    expected: FAIL
+
+  [input type search: selectionDirection a second time (must not fire select)]
+    expected: FAIL
+
+  [input type search: setSelectionRange() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type search: setRangeText() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type tel: select()]
+    expected: FAIL
+
+  [input type tel: select() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type tel: selectionStart a second time (must not fire select)]
+    expected: FAIL
+
+  [input type tel: selectionEnd a second time (must not fire select)]
+    expected: FAIL
+
+  [input type tel: selectionDirection a second time (must not fire select)]
+    expected: FAIL
+
+  [input type tel: setSelectionRange() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type tel: setRangeText() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type url: select()]
+    expected: FAIL
+
+  [input type url: select() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type url: selectionStart a second time (must not fire select)]
+    expected: FAIL
+
+  [input type url: selectionEnd a second time (must not fire select)]
+    expected: FAIL
+
+  [input type url: selectionDirection a second time (must not fire select)]
+    expected: FAIL
+
+  [input type url: setSelectionRange() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type url: setRangeText() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type password: select()]
+    expected: FAIL
+
+  [input type password: select() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type password: selectionStart a second time (must not fire select)]
+    expected: FAIL
+
+  [input type password: selectionEnd a second time (must not fire select)]
+    expected: FAIL
+
+  [input type password: selectionDirection a second time (must not fire select)]
+    expected: FAIL
+
+  [input type password: setSelectionRange() a second time (must not fire select)]
+    expected: FAIL
+
+  [input type password: setRangeText() a second time (must not fire select)]
+    expected: FAIL
+
--- a/testing/web-platform/meta/html/semantics/forms/textfieldselection/selection-not-application.html.ini
+++ b/testing/web-platform/meta/html/semantics/forms/textfieldselection/selection-not-application.html.ini
@@ -1,56 +1,5 @@
 [selection-not-application.html]
   type: testharness
-  [text field selection for the input hidden]
-    expected: FAIL
-
-  [text field selection for the input email]
-    expected: FAIL
-
   [text field selection for the input datetime]
     expected: FAIL
 
-  [text field selection for the input date]
-    expected: FAIL
-
-  [text field selection for the input month]
-    expected: FAIL
-
-  [text field selection for the input week]
-    expected: FAIL
-
-  [text field selection for the input time]
-    expected: FAIL
-
-  [text field selection for the input number]
-    expected: FAIL
-
-  [text field selection for the input range]
-    expected: FAIL
-
-  [text field selection for the input color]
-    expected: FAIL
-
-  [text field selection for the input checkbox]
-    expected: FAIL
-
-  [text field selection for the input radio]
-    expected: FAIL
-
-  [text field selection for the input file]
-    expected: FAIL
-
-  [text field selection for the input submit]
-    expected: FAIL
-
-  [text field selection for the input image]
-    expected: FAIL
-
-  [text field selection for the input reset]
-    expected: FAIL
-
-  [text field selection for the input button]
-    expected: FAIL
-
-  [text field selection for the input datetime-local]
-    expected: FAIL
-
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/module/crossorigin.html.ini
@@ -0,0 +1,14 @@
+[crossorigin.html]
+  type: testharness
+  [Root module, Error in CORS-different-origin script]
+    expected: FAIL
+
+  [Root module, Error in CORS-same-origin script]
+    expected: FAIL
+
+  [Imported module, Error in CORS-different-origin script]
+    expected: FAIL
+
+  [Imported module, Error in CORS-same-origin script]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/module/errorhandling.html.ini
@@ -0,0 +1,5 @@
+[errorhandling.html]
+  type: testharness
+  [IFrame test: 'iframe_parseError_Dependent']
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/module/execorder.html.ini
@@ -0,0 +1,49 @@
+[execorder.html]
+  type: testharness
+  expected:
+    if e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): OK
+    if not debug and not e10s and (os == "mac") and (version == "OS X 10.10.5"): OK
+    if (os == "win"): OK
+    TIMEOUT
+  [Unordered module script execution (parsed, unordered #1)]
+    expected:
+      if e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if not debug and not e10s and (os == "mac") and (version == "OS X 10.10.5"): PASS
+      if (os == "win"): PASS
+      NOTRUN
+
+  [Unordered module script execution (parsed, unordered #2)]
+    expected:
+      if e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if not debug and not e10s and (os == "mac") and (version == "OS X 10.10.5"): PASS
+      if (os == "win"): PASS
+      NOTRUN
+
+  [Unordered module script execution (dynamic, unordered #1)]
+    expected:
+      if e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if not debug and not e10s and (os == "mac") and (version == "OS X 10.10.5"): PASS
+      if (os == "win"): PASS
+      NOTRUN
+
+  [Unordered module script execution (dynamic, unordered #2)]
+    expected:
+      if e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if not debug and not e10s and (os == "mac") and (version == "OS X 10.10.5"): PASS
+      if (os == "win"): PASS
+      NOTRUN
+
+  [Interlaced module/non-module script execution (parsed, async-ordered)]
+    expected:
+      if e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if not debug and not e10s and (os == "mac") and (version == "OS X 10.10.5"): PASS
+      if (os == "win"): PASS
+      FAIL
+
+  [Interlaced module/non-module script execution (dynamic, async-ordered)]
+    expected:
+      if e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): PASS
+      if not debug and not e10s and (os == "mac") and (version == "OS X 10.10.5"): PASS
+      if (os == "win"): PASS
+      FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/semantics/scripting-1/the-script-element/module/imports.html.ini
@@ -0,0 +1,8 @@
+[imports.html]
+  type: testharness
+  [Import a module that tries to import itself]
+    expected: FAIL
+
+  [Import a module with a cyclical module dependency]
+    expected: FAIL
+
deleted file mode 100644
--- a/testing/web-platform/meta/html/syntax/parsing-html-fragments/the-input-byte-stream-015.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[the-input-byte-stream-015.html]
-  type: testharness
-  [A page with no encoding information in HTTP, BOM, XML declaration or meta element will be treated as UTF-8.]
-    expected: FAIL
-
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/webappapis/scripting/events/messageevent-constructor.https.html.ini
@@ -0,0 +1,5 @@
+[messageevent-constructor.https.html]
+  type: testharness
+  [initMessageEvent operation default parameter values]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.html.ini
@@ -0,0 +1,5 @@
+[NavigatorID.html]
+  type: testharness
+  [userAgent value]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker.js.ini
@@ -0,0 +1,5 @@
+[NavigatorID.worker.html]
+  type: testharness
+  [userAgent value]
+    expected: FAIL
+
--- a/testing/web-platform/meta/media-capabilities/query.html.ini
+++ b/testing/web-platform/meta/media-capabilities/query.html.ini
@@ -4,8 +4,14 @@
     expected: FAIL
 
   [Test that query rejects if the MediaConfiguration isn't valid]
     expected: FAIL
 
   [Test that query returns a valid MediaDecodingAbility objects]
     expected: FAIL
 
+  [Test that query rejects if the MediaConfiguration does not have a type]
+    expected: FAIL
+
+  [Test that query rejects if the MediaConfiguration does not have a valid type]
+    expected: FAIL
+
deleted file mode 100644
--- a/testing/web-platform/meta/mediacapture-streams/MediaStreamTrack-end.https.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[MediaStreamTrack-end.https.html]
-  type: testharness
-  [Tests that the video MediaStreamTrack objects are properly ended on permission revocation]
-    expected: FAIL
-
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/extension/idlharness.html.ini
@@ -0,0 +1,75 @@
+[idlharness.html]
+  type: testharness
+  [PointerEvent interface: existence and properties of interface object]
+    expected:
+      if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if not debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+
+  [PointerEvent interface object length]
+    expected:
+      if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if not debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+
+  [PointerEvent interface object name]
+    expected:
+      if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if not debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+
+  [PointerEvent interface: existence and properties of interface prototype object]
+    expected:
+      if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if not debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+
+  [PointerEvent interface: existence and properties of interface prototype object's "constructor" property]
+    expected:
+      if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if not debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if not debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if debug and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if not debug and not e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): FAIL
+      if debug and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): FAIL
+      if debug and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): FAIL
+
+  [PointerEvent interface: operation getCoalescedEvents()]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/pointerevents/extension/pointerevent_constructor.html.ini
@@ -0,0 +1,5 @@
+[pointerevent_constructor.html]
+  type: testharness
+  [PointerEvent: Constructor test]
+    expected: FAIL
+
--- a/testing/web-platform/meta/pointerevents/idlharness.html.ini
+++ b/testing/web-platform/meta/pointerevents/idlharness.html.ini
@@ -1,4 +1,3 @@
 [idlharness.html]
   type: testharness
   prefs: [dom.w3c_pointer_events.enabled:true]
-
--- a/testing/web-platform/meta/pointerevents/pointerevent_on_event_handlers.html.ini
+++ b/testing/web-platform/meta/pointerevents/pointerevent_on_event_handlers.html.ini
@@ -1,4 +1,3 @@
 [pointerevent_on_event_handlers.html]
   type: testharness
   prefs: [dom.w3c_pointer_events.enabled:true]
-
deleted file mode 100644
--- a/testing/web-platform/meta/presentation-api/receiving-ua/idlharness.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[idlharness.html]
-  type: testharness
-  prefs: [dom.presentation.enabled: true, dom.presentation.receiver.enabled: true, dom.presentation.testing.simulate-receiver: true, dom.presentation.device.name: "Firefox"]
--- a/testing/web-platform/meta/selection/addRange-00.html.ini
+++ b/testing/web-platform/meta/selection/addRange-00.html.ini
@@ -1951,8 +1951,344 @@
     expected: FAIL
 
   [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
     expected: FAIL
 
   [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
     expected: FAIL
 
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
--- a/testing/web-platform/meta/selection/addRange-04.html.ini
+++ b/testing/web-platform/meta/selection/addRange-04.html.ini
@@ -1951,8 +1951,344 @@
     expected: FAIL
 
   [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
     expected: FAIL
 
   [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
     expected: FAIL
 
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
--- a/testing/web-platform/meta/selection/addRange-12.html.ini
+++ b/testing/web-platform/meta/selection/addRange-12.html.ini
@@ -3613,8 +3613,176 @@
     expected: FAIL
 
   [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
     expected: FAIL
 
   [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
     expected: FAIL
 
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 14 [document.documentElement, 0, document.documentElement, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 2\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
--- a/testing/web-platform/meta/selection/addRange-16.html.ini
+++ b/testing/web-platform/meta/selection/addRange-16.html.ini
@@ -2782,8 +2782,260 @@
     expected: FAIL
 
   [Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
     expected: FAIL
 
   [Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
     expected: FAIL
 
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 1, document.documentElement, 2\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 17 [document.head, 1, document.head, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 18 [document.body, 0, document.body, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
--- a/testing/web-platform/meta/selection/addRange-20.html.ini
+++ b/testing/web-platform/meta/selection/addRange-20.html.ini
@@ -3613,8 +3613,176 @@
     expected: FAIL
 
   [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
     expected: FAIL
 
   [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
     expected: FAIL
 
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 22 [paras[0\], 0, paras[0\], 0\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
--- a/testing/web-platform/meta/selection/addRange-24.html.ini
+++ b/testing/web-platform/meta/selection/addRange-24.html.ini
@@ -3613,8 +3613,176 @@
     expected: FAIL
 
   [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
     expected: FAIL
 
   [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
     expected: FAIL
 
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
--- a/testing/web-platform/meta/selection/addRange-28.html.ini
+++ b/testing/web-platform/meta/selection/addRange-28.html.ini
@@ -1951,8 +1951,344 @@
     expected: FAIL
 
   [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
     expected: FAIL
 
   [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
     expected: FAIL
 
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 3, paras[3\], 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 29 [paras[0\], 0, paras[0\].firstChild, 7\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 30 [testDiv, 2, paras[4\], 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 31 [testDiv, 1, paras[2\].firstChild, 5\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
--- a/testing/web-platform/meta/selection/addRange-32.html.ini
+++ b/testing/web-platform/meta/selection/addRange-32.html.ini
@@ -2782,8 +2782,260 @@
     expected: FAIL
 
   [Range 35 [document, 0, document, 2\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
     expected: FAIL
 
   [Range 35 [document, 0, document, 2\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
     expected: FAIL
 
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 32 [document.documentElement, 1, document.body, 0\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 34 [document, 0, document, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 2\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
--- a/testing/web-platform/meta/selection/addRange-36.html.ini
+++ b/testing/web-platform/meta/selection/addRange-36.html.ini
@@ -1951,8 +1951,344 @@
     expected: FAIL
 
   [Range 39 [paras[3\], 1, comment, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
     expected: FAIL
 
   [Range 39 [paras[3\], 1, comment, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
     expected: FAIL
 
+  [Range 36 [document, 1, document, 2\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 36 [document, 1, document, 2\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 37 [testDiv, 0, comment, 5\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 38 [paras[2\].firstChild, 4, comment, 2\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 18 [document.body, 0, document.body, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 34 [document, 0, document, 1\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 35 [document, 0, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 36 [document, 1, document, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 37 [testDiv, 0, comment, 5\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must do nothing]
+    expected: FAIL
+
+  [Range 39 [paras[3\], 1, comment, 8\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must do nothing]
+    expected: FAIL
+
--- a/testing/web-platform/meta/selection/collapse-00.html.ini
+++ b/testing/web-platform/meta/selection/collapse-00.html.ini
@@ -3055,8 +3055,908 @@
     expected: FAIL
 
   [Range 29 [paras[0\].firstChild, 3, paras[3\], 1\], point 86 [foreignDoctype, 0\]]
     expected: FAIL
 
   [Range 29 [paras[0\].firstChild, 3, paras[3\], 1\], point 87 [xmlDoctype, 0\]]
     expected: FAIL
 
+  [Range 0 [\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 0 [\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 0 [\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 0 [\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 0 [\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 0 [\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 0 [\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 0 [\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 0 [\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 0 [\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 15 [document.documentElement, 0, document.documentElement, 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 0, document.documentElement, 2\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 0, document.documentElement, 2\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 0, document.documentElement, 2\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 0, document.documentElement, 2\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 0, document.documentElement, 2\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 0, document.documentElement, 2\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 0, document.documentElement, 2\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 0, document.documentElement, 2\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 0, document.documentElement, 2\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 16 [document.documentElement, 0, document.documentElement, 2\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 17 [document.documentElement, 1, document.documentElement, 2\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 17 [document.documentElement, 1, document.documentElement, 2\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 17 [document.documentElement, 1, document.documentElement, 2\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 17 [document.documentElement, 1, document.documentElement, 2\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 17 [document.documentElement, 1, document.documentElement, 2\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 17 [document.documentElement, 1, document.documentElement, 2\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 17 [document.documentElement, 1, document.documentElement, 2\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 17 [document.documentElement, 1, document.documentElement, 2\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 17 [document.documentElement, 1, document.documentElement, 2\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 17 [document.documentElement, 1, document.documentElement, 2\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 18 [document.head, 1, document.head, 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 18 [document.head, 1, document.head, 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 18 [document.head, 1, document.head, 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 18 [document.head, 1, document.head, 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 18 [document.head, 1, document.head, 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 18 [document.head, 1, document.head, 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 18 [document.head, 1, document.head, 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 18 [document.head, 1, document.head, 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 18 [document.head, 1, document.head, 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 18 [document.head, 1, document.head, 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 19 [document.body, 0, document.body, 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 19 [document.body, 0, document.body, 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 19 [document.body, 0, document.body, 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 19 [document.body, 0, document.body, 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 19 [document.body, 0, document.body, 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 19 [document.body, 0, document.body, 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 19 [document.body, 0, document.body, 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 19 [document.body, 0, document.body, 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 19 [document.body, 0, document.body, 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 19 [document.body, 0, document.body, 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 21 [foreignDoc.head, 1, foreignDoc.head, 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 21 [foreignDoc.head, 1, foreignDoc.head, 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 21 [foreignDoc.head, 1, foreignDoc.head, 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 21 [foreignDoc.head, 1, foreignDoc.head, 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 21 [foreignDoc.head, 1, foreignDoc.head, 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 21 [foreignDoc.head, 1, foreignDoc.head, 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 21 [foreignDoc.head, 1, foreignDoc.head, 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 21 [foreignDoc.head, 1, foreignDoc.head, 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 21 [foreignDoc.head, 1, foreignDoc.head, 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 21 [foreignDoc.head, 1, foreignDoc.head, 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 22 [foreignDoc.body, 0, foreignDoc.body, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 22 [foreignDoc.body, 0, foreignDoc.body, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 22 [foreignDoc.body, 0, foreignDoc.body, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 22 [foreignDoc.body, 0, foreignDoc.body, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 22 [foreignDoc.body, 0, foreignDoc.body, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 22 [foreignDoc.body, 0, foreignDoc.body, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 22 [foreignDoc.body, 0, foreignDoc.body, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 22 [foreignDoc.body, 0, foreignDoc.body, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 22 [foreignDoc.body, 0, foreignDoc.body, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 22 [foreignDoc.body, 0, foreignDoc.body, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 23 [paras[0\], 0, paras[0\], 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 24 [paras[0\], 0, paras[0\], 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 24 [paras[0\], 0, paras[0\], 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 24 [paras[0\], 0, paras[0\], 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 24 [paras[0\], 0, paras[0\], 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 24 [paras[0\], 0, paras[0\], 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 24 [paras[0\], 0, paras[0\], 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 24 [paras[0\], 0, paras[0\], 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 24 [paras[0\], 0, paras[0\], 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 24 [paras[0\], 0, paras[0\], 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 24 [paras[0\], 0, paras[0\], 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 25 [detachedPara1, 0, detachedPara1, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 25 [detachedPara1, 0, detachedPara1, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 25 [detachedPara1, 0, detachedPara1, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 25 [detachedPara1, 0, detachedPara1, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 25 [detachedPara1, 0, detachedPara1, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 25 [detachedPara1, 0, detachedPara1, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 25 [detachedPara1, 0, detachedPara1, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 25 [detachedPara1, 0, detachedPara1, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 25 [detachedPara1, 0, detachedPara1, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 25 [detachedPara1, 0, detachedPara1, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 26 [detachedPara1, 0, detachedPara1, 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 26 [detachedPara1, 0, detachedPara1, 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 26 [detachedPara1, 0, detachedPara1, 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 26 [detachedPara1, 0, detachedPara1, 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 26 [detachedPara1, 0, detachedPara1, 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 26 [detachedPara1, 0, detachedPara1, 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 26 [detachedPara1, 0, detachedPara1, 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 26 [detachedPara1, 0, detachedPara1, 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 26 [detachedPara1, 0, detachedPara1, 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 26 [detachedPara1, 0, detachedPara1, 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 29 [paras[0\].firstChild, 3, paras[3\], 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 29 [paras[0\].firstChild, 3, paras[3\], 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 29 [paras[0\].firstChild, 3, paras[3\], 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 29 [paras[0\].firstChild, 3, paras[3\], 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 29 [paras[0\].firstChild, 3, paras[3\], 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 29 [paras[0\].firstChild, 3, paras[3\], 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 29 [paras[0\].firstChild, 3, paras[3\], 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 29 [paras[0\].firstChild, 3, paras[3\], 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 29 [paras[0\].firstChild, 3, paras[3\], 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 29 [paras[0\].firstChild, 3, paras[3\], 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
--- a/testing/web-platform/meta/selection/collapse-30.html.ini
+++ b/testing/web-platform/meta/selection/collapse-30.html.ini
@@ -2953,8 +2953,878 @@
     expected: FAIL
 
   [Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], point 86 [foreignDoctype, 0\]]
     expected: FAIL
 
   [Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], point 87 [xmlDoctype, 0\]]
     expected: FAIL
 
+  [Range 30 [paras[0\], 0, paras[0\].firstChild, 7\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 30 [paras[0\], 0, paras[0\].firstChild, 7\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 30 [paras[0\], 0, paras[0\].firstChild, 7\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 30 [paras[0\], 0, paras[0\].firstChild, 7\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 30 [paras[0\], 0, paras[0\].firstChild, 7\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 30 [paras[0\], 0, paras[0\].firstChild, 7\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 30 [paras[0\], 0, paras[0\].firstChild, 7\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 30 [paras[0\], 0, paras[0\].firstChild, 7\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 30 [paras[0\], 0, paras[0\].firstChild, 7\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 30 [paras[0\], 0, paras[0\].firstChild, 7\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 31 [testDiv, 2, paras[4\], 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 31 [testDiv, 2, paras[4\], 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 31 [testDiv, 2, paras[4\], 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 31 [testDiv, 2, paras[4\], 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 31 [testDiv, 2, paras[4\], 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 31 [testDiv, 2, paras[4\], 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 31 [testDiv, 2, paras[4\], 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 31 [testDiv, 2, paras[4\], 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 31 [testDiv, 2, paras[4\], 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 31 [testDiv, 2, paras[4\], 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 32 [testDiv, 1, paras[2\].firstChild, 5\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 32 [testDiv, 1, paras[2\].firstChild, 5\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 32 [testDiv, 1, paras[2\].firstChild, 5\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 32 [testDiv, 1, paras[2\].firstChild, 5\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 32 [testDiv, 1, paras[2\].firstChild, 5\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 32 [testDiv, 1, paras[2\].firstChild, 5\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 32 [testDiv, 1, paras[2\].firstChild, 5\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 32 [testDiv, 1, paras[2\].firstChild, 5\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 32 [testDiv, 1, paras[2\].firstChild, 5\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 32 [testDiv, 1, paras[2\].firstChild, 5\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 33 [document.documentElement, 1, document.body, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 33 [document.documentElement, 1, document.body, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 33 [document.documentElement, 1, document.body, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 33 [document.documentElement, 1, document.body, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 33 [document.documentElement, 1, document.body, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 33 [document.documentElement, 1, document.body, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 33 [document.documentElement, 1, document.body, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 33 [document.documentElement, 1, document.body, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 33 [document.documentElement, 1, document.body, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 33 [document.documentElement, 1, document.body, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 35 [document, 0, document, 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 36 [document, 0, document, 2\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 36 [document, 0, document, 2\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 36 [document, 0, document, 2\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 36 [document, 0, document, 2\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 36 [document, 0, document, 2\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 36 [document, 0, document, 2\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 36 [document, 0, document, 2\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 36 [document, 0, document, 2\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 36 [document, 0, document, 2\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 36 [document, 0, document, 2\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 37 [document, 1, document, 2\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 37 [document, 1, document, 2\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 37 [document, 1, document, 2\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 37 [document, 1, document, 2\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 37 [document, 1, document, 2\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 37 [document, 1, document, 2\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 37 [document, 1, document, 2\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 37 [document, 1, document, 2\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 37 [document, 1, document, 2\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 37 [document, 1, document, 2\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 38 [testDiv, 0, comment, 5\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 38 [testDiv, 0, comment, 5\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 38 [testDiv, 0, comment, 5\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 38 [testDiv, 0, comment, 5\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 38 [testDiv, 0, comment, 5\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 38 [testDiv, 0, comment, 5\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 38 [testDiv, 0, comment, 5\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 38 [testDiv, 0, comment, 5\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 38 [testDiv, 0, comment, 5\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 38 [testDiv, 0, comment, 5\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 39 [paras[2\].firstChild, 4, comment, 2\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 39 [paras[2\].firstChild, 4, comment, 2\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 39 [paras[2\].firstChild, 4, comment, 2\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 39 [paras[2\].firstChild, 4, comment, 2\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 39 [paras[2\].firstChild, 4, comment, 2\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 39 [paras[2\].firstChild, 4, comment, 2\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 39 [paras[2\].firstChild, 4, comment, 2\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 39 [paras[2\].firstChild, 4, comment, 2\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 39 [paras[2\].firstChild, 4, comment, 2\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 39 [paras[2\].firstChild, 4, comment, 2\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 40 [paras[3\], 1, comment, 8\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 40 [paras[3\], 1, comment, 8\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 40 [paras[3\], 1, comment, 8\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 40 [paras[3\], 1, comment, 8\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 40 [paras[3\], 1, comment, 8\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 40 [paras[3\], 1, comment, 8\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 40 [paras[3\], 1, comment, 8\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 40 [paras[3\], 1, comment, 8\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 40 [paras[3\], 1, comment, 8\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 40 [paras[3\], 1, comment, 8\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 41 [foreignDoc, 0, foreignDoc, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 41 [foreignDoc, 0, foreignDoc, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 41 [foreignDoc, 0, foreignDoc, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 41 [foreignDoc, 0, foreignDoc, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 41 [foreignDoc, 0, foreignDoc, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 41 [foreignDoc, 0, foreignDoc, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 41 [foreignDoc, 0, foreignDoc, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 41 [foreignDoc, 0, foreignDoc, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 41 [foreignDoc, 0, foreignDoc, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 41 [foreignDoc, 0, foreignDoc, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 42 [foreignDoc, 1, foreignComment, 2\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 42 [foreignDoc, 1, foreignComment, 2\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 42 [foreignDoc, 1, foreignComment, 2\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 42 [foreignDoc, 1, foreignComment, 2\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 42 [foreignDoc, 1, foreignComment, 2\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 42 [foreignDoc, 1, foreignComment, 2\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 42 [foreignDoc, 1, foreignComment, 2\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 42 [foreignDoc, 1, foreignComment, 2\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 42 [foreignDoc, 1, foreignComment, 2\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 42 [foreignDoc, 1, foreignComment, 2\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 43 [foreignDoc.body, 0, foreignTextNode, 36\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 43 [foreignDoc.body, 0, foreignTextNode, 36\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 43 [foreignDoc.body, 0, foreignTextNode, 36\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 43 [foreignDoc.body, 0, foreignTextNode, 36\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 43 [foreignDoc.body, 0, foreignTextNode, 36\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 43 [foreignDoc.body, 0, foreignTextNode, 36\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 43 [foreignDoc.body, 0, foreignTextNode, 36\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 43 [foreignDoc.body, 0, foreignTextNode, 36\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 43 [foreignDoc.body, 0, foreignTextNode, 36\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 43 [foreignDoc.body, 0, foreignTextNode, 36\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 44 [xmlDoc, 0, xmlDoc, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 44 [xmlDoc, 0, xmlDoc, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 44 [xmlDoc, 0, xmlDoc, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 44 [xmlDoc, 0, xmlDoc, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 44 [xmlDoc, 0, xmlDoc, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 44 [xmlDoc, 0, xmlDoc, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 44 [xmlDoc, 0, xmlDoc, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 44 [xmlDoc, 0, xmlDoc, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 44 [xmlDoc, 0, xmlDoc, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 44 [xmlDoc, 0, xmlDoc, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 45 [xmlDoc, 1, xmlComment, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 45 [xmlDoc, 1, xmlComment, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 45 [xmlDoc, 1, xmlComment, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 45 [xmlDoc, 1, xmlComment, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 45 [xmlDoc, 1, xmlComment, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 45 [xmlDoc, 1, xmlComment, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 45 [xmlDoc, 1, xmlComment, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 45 [xmlDoc, 1, xmlComment, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 45 [xmlDoc, 1, xmlComment, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 45 [xmlDoc, 1, xmlComment, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 46 [detachedTextNode, 0, detachedTextNode, 8\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 46 [detachedTextNode, 0, detachedTextNode, 8\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 46 [detachedTextNode, 0, detachedTextNode, 8\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 46 [detachedTextNode, 0, detachedTextNode, 8\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 46 [detachedTextNode, 0, detachedTextNode, 8\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 46 [detachedTextNode, 0, detachedTextNode, 8\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 46 [detachedTextNode, 0, detachedTextNode, 8\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 46 [detachedTextNode, 0, detachedTextNode, 8\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 46 [detachedTextNode, 0, detachedTextNode, 8\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 46 [detachedTextNode, 0, detachedTextNode, 8\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 47 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 48 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 49 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 50 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 51 [detachedComment, 3, detachedComment, 4\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 51 [detachedComment, 3, detachedComment, 4\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 51 [detachedComment, 3, detachedComment, 4\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 51 [detachedComment, 3, detachedComment, 4\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 51 [detachedComment, 3, detachedComment, 4\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 51 [detachedComment, 3, detachedComment, 4\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 51 [detachedComment, 3, detachedComment, 4\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 51 [detachedComment, 3, detachedComment, 4\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 51 [detachedComment, 3, detachedComment, 4\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 51 [detachedComment, 3, detachedComment, 4\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 52 [detachedComment, 5, detachedComment, 5\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 52 [detachedComment, 5, detachedComment, 5\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 52 [detachedComment, 5, detachedComment, 5\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 52 [detachedComment, 5, detachedComment, 5\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 52 [detachedComment, 5, detachedComment, 5\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 52 [detachedComment, 5, detachedComment, 5\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 52 [detachedComment, 5, detachedComment, 5\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 52 [detachedComment, 5, detachedComment, 5\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 52 [detachedComment, 5, detachedComment, 5\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 52 [detachedComment, 5, detachedComment, 5\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 53 [detachedForeignComment, 0, detachedForeignComment, 1\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 53 [detachedForeignComment, 0, detachedForeignComment, 1\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 53 [detachedForeignComment, 0, detachedForeignComment, 1\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 53 [detachedForeignComment, 0, detachedForeignComment, 1\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 53 [detachedForeignComment, 0, detachedForeignComment, 1\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 53 [detachedForeignComment, 0, detachedForeignComment, 1\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 53 [detachedForeignComment, 0, detachedForeignComment, 1\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 53 [detachedForeignComment, 0, detachedForeignComment, 1\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 53 [detachedForeignComment, 0, detachedForeignComment, 1\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 53 [detachedForeignComment, 0, detachedForeignComment, 1\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 54 [detachedForeignComment, 4, detachedForeignComment, 4\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 54 [detachedForeignComment, 4, detachedForeignComment, 4\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 54 [detachedForeignComment, 4, detachedForeignComment, 4\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 54 [detachedForeignComment, 4, detachedForeignComment, 4\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 54 [detachedForeignComment, 4, detachedForeignComment, 4\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 54 [detachedForeignComment, 4, detachedForeignComment, 4\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 54 [detachedForeignComment, 4, detachedForeignComment, 4\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 54 [detachedForeignComment, 4, detachedForeignComment, 4\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 54 [detachedForeignComment, 4, detachedForeignComment, 4\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 54 [detachedForeignComment, 4, detachedForeignComment, 4\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 55 [detachedXmlComment, 2, detachedXmlComment, 6\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 55 [detachedXmlComment, 2, detachedXmlComment, 6\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 55 [detachedXmlComment, 2, detachedXmlComment, 6\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 55 [detachedXmlComment, 2, detachedXmlComment, 6\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 55 [detachedXmlComment, 2, detachedXmlComment, 6\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 55 [detachedXmlComment, 2, detachedXmlComment, 6\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 55 [detachedXmlComment, 2, detachedXmlComment, 6\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 55 [detachedXmlComment, 2, detachedXmlComment, 6\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 55 [detachedXmlComment, 2, detachedXmlComment, 6\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 55 [detachedXmlComment, 2, detachedXmlComment, 6\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 56 [docfrag, 0, docfrag, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 56 [docfrag, 0, docfrag, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 56 [docfrag, 0, docfrag, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 56 [docfrag, 0, docfrag, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 56 [docfrag, 0, docfrag, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 56 [docfrag, 0, docfrag, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 56 [docfrag, 0, docfrag, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 56 [docfrag, 0, docfrag, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 56 [docfrag, 0, docfrag, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 56 [docfrag, 0, docfrag, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 57 [foreignDocfrag, 0, foreignDocfrag, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [Range 58 [xmlDocfrag, 0, xmlDocfrag, 0\], point 80 [docfrag, 0\]]
+    expected: FAIL
+
--- a/testing/web-platform/meta/selection/extend-00.html.ini
+++ b/testing/web-platform/meta/selection/extend-00.html.ini
@@ -4657,8 +4657,767 @@
     expected: FAIL
 
   [extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\] and point 84 [doctype, -17\]]
     expected: FAIL
 
   [extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\] and point 85 [doctype, 1\]]
     expected: FAIL
 
+  [extend() with range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() with range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() with range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() with range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() with range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() with range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() with range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() with range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() with range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() with range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() with range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 2 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 4 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() with range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() with range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() with range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() with range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() with range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() with range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() with range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() with range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() with range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() with range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() with range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 6 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 8 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() with range 18 [document.head, 1, document.head, 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() with range 18 [document.head, 1, document.head, 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() with range 18 [document.head, 1, document.head, 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() with range 18 [document.head, 1, document.head, 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() with range 18 [document.head, 1, document.head, 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() with range 18 [document.head, 1, document.head, 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() with range 18 [document.head, 1, document.head, 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() with range 18 [document.head, 1, document.head, 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() with range 18 [document.head, 1, document.head, 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() with range 18 [document.head, 1, document.head, 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() with range 18 [document.head, 1, document.head, 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 19 [document.body, 0, document.body, 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 19 [document.body, 0, document.body, 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 19 [document.body, 0, document.body, 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 19 [document.body, 0, document.body, 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 19 [document.body, 0, document.body, 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 19 [document.body, 0, document.body, 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 19 [document.body, 0, document.body, 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 19 [document.body, 0, document.body, 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 19 [document.body, 0, document.body, 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 19 [document.body, 0, document.body, 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 19 [document.body, 0, document.body, 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 19 [document.body, 0, document.body, 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 19 [document.body, 0, document.body, 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 19 [document.body, 0, document.body, 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 19 [document.body, 0, document.body, 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 19 [document.body, 0, document.body, 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 19 [document.body, 0, document.body, 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 19 [document.body, 0, document.body, 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 19 [document.body, 0, document.body, 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 19 [document.body, 0, document.body, 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 19 [document.body, 0, document.body, 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 19 [document.body, 0, document.body, 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
--- a/testing/web-platform/meta/selection/extend-20.html.ini
+++ b/testing/web-platform/meta/selection/extend-20.html.ini
@@ -4963,8 +4963,899 @@
     expected: FAIL
 
   [extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0\] and point 84 [doctype, -17\]]
     expected: FAIL
 
   [extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0\] and point 85 [doctype, 1\]]
     expected: FAIL
 
+  [extend() with range 23 [paras[0\], 0, paras[0\], 0\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() with range 23 [paras[0\], 0, paras[0\], 0\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() with range 23 [paras[0\], 0, paras[0\], 0\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() with range 23 [paras[0\], 0, paras[0\], 0\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() with range 23 [paras[0\], 0, paras[0\], 0\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() with range 23 [paras[0\], 0, paras[0\], 0\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() with range 23 [paras[0\], 0, paras[0\], 0\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() with range 23 [paras[0\], 0, paras[0\], 0\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() with range 23 [paras[0\], 0, paras[0\], 0\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() with range 23 [paras[0\], 0, paras[0\], 0\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() with range 23 [paras[0\], 0, paras[0\], 0\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 24 [paras[0\], 0, paras[0\], 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 28 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 29 [paras[0\].firstChild, 3, paras[3\], 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 30 [paras[0\], 0, paras[0\].firstChild, 7\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 31 [testDiv, 2, paras[4\], 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 31 [testDiv, 2, paras[4\], 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 31 [testDiv, 2, paras[4\], 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 31 [testDiv, 2, paras[4\], 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 31 [testDiv, 2, paras[4\], 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 31 [testDiv, 2, paras[4\], 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 31 [testDiv, 2, paras[4\], 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 31 [testDiv, 2, paras[4\], 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 31 [testDiv, 2, paras[4\], 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 31 [testDiv, 2, paras[4\], 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 31 [testDiv, 2, paras[4\], 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 31 [testDiv, 2, paras[4\], 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 31 [testDiv, 2, paras[4\], 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 31 [testDiv, 2, paras[4\], 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 31 [testDiv, 2, paras[4\], 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 31 [testDiv, 2, paras[4\], 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 31 [testDiv, 2, paras[4\], 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 31 [testDiv, 2, paras[4\], 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 31 [testDiv, 2, paras[4\], 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 31 [testDiv, 2, paras[4\], 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 31 [testDiv, 2, paras[4\], 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 31 [testDiv, 2, paras[4\], 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 32 [testDiv, 1, paras[2\].firstChild, 5\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 33 [document.documentElement, 1, document.body, 0\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 33 [document.documentElement, 1, document.body, 0\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 33 [document.documentElement, 1, document.body, 0\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 33 [document.documentElement, 1, document.body, 0\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 33 [document.documentElement, 1, document.body, 0\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 33 [document.documentElement, 1, document.body, 0\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 33 [document.documentElement, 1, document.body, 0\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 33 [document.documentElement, 1, document.body, 0\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 33 [document.documentElement, 1, document.body, 0\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 33 [document.documentElement, 1, document.body, 0\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 33 [document.documentElement, 1, document.body, 0\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 33 [document.documentElement, 1, document.body, 0\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 33 [document.documentElement, 1, document.body, 0\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 33 [document.documentElement, 1, document.body, 0\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 33 [document.documentElement, 1, document.body, 0\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 33 [document.documentElement, 1, document.body, 0\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 33 [document.documentElement, 1, document.body, 0\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 33 [document.documentElement, 1, document.body, 0\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 33 [document.documentElement, 1, document.body, 0\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 33 [document.documentElement, 1, document.body, 0\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 33 [document.documentElement, 1, document.body, 0\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 33 [document.documentElement, 1, document.body, 0\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 35 [document, 0, document, 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 35 [document, 0, document, 1\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 35 [document, 0, document, 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 35 [document, 0, document, 1\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 35 [document, 0, document, 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 35 [document, 0, document, 1\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 35 [document, 0, document, 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 35 [document, 0, document, 1\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 35 [document, 0, document, 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 35 [document, 0, document, 1\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 35 [document, 0, document, 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 35 [document, 0, document, 1\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 35 [document, 0, document, 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 35 [document, 0, document, 1\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 35 [document, 0, document, 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 35 [document, 0, document, 1\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 35 [document, 0, document, 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 35 [document, 0, document, 1\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 35 [document, 0, document, 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 35 [document, 0, document, 1\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 35 [document, 0, document, 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 35 [document, 0, document, 1\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 36 [document, 0, document, 2\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 36 [document, 0, document, 2\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 36 [document, 0, document, 2\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 36 [document, 0, document, 2\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 36 [document, 0, document, 2\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 36 [document, 0, document, 2\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 36 [document, 0, document, 2\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 36 [document, 0, document, 2\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 36 [document, 0, document, 2\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 36 [document, 0, document, 2\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 36 [document, 0, document, 2\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 36 [document, 0, document, 2\] and point 42 [detachedPara1, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 36 [document, 0, document, 2\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 36 [document, 0, document, 2\] and point 68 [detachedTextNode, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 36 [document, 0, document, 2\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 36 [document, 0, document, 2\] and point 69 [detachedTextNode, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 36 [document, 0, document, 2\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() backwards with range 36 [document, 0, document, 2\] and point 75 [detachedComment, 3\]]
+    expected: FAIL
+
+  [extend() forwards with range 36 [document, 0, document, 2\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() backwards with range 36 [document, 0, document, 2\] and point 76 [detachedComment, 5\]]
+    expected: FAIL
+
+  [extend() forwards with range 36 [document, 0, document, 2\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 36 [document, 0, document, 2\] and point 80 [docfrag, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 37 [document, 1, document, 2\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 37 [document, 1, document, 2\] and point 16 [detachedPara1.firstChild, 0\]]
+    expected: FAIL
+
+  [extend() forwards with range 37 [document, 1, document, 2\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() backwards with range 37 [document, 1, document, 2\] and point 17 [detachedPara1.firstChild, 1\]]
+    expected: FAIL
+
+  [extend() forwards with range 37 [document, 1, document, 2\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() backwards with range 37 [document, 1, document, 2\] and point 18 [detachedPara1.firstChild, 8\]]
+    expected: FAIL
+
+  [extend() forwards with range 37 [document, 1, document, 2\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() backwards with range 37 [document, 1, document, 2\] and point 19 [detachedPara1.firstChild, 9\]]
+    expected: FAIL
+
+  [extend() forwards with range 37 [document, 1, document, 2\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+
+  [extend() backwards with range 37 [document, 1, document, 2\] and point 41 [detachedPara1, 0\]]
+    expected: FAIL
+