diff --git a/DEPS b/DEPS
index bb4f14b..c4f5f5b 100644
--- a/DEPS
+++ b/DEPS
@@ -44,7 +44,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': 'df39e430deb8f0e30b8a5f1978e8eb2040e9e957',
+  'v8_revision': 'ec3ce5bd4cb614d3c7245ffd282a426ef9672e12',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling swarming_client
   # and whatever else without interference from each other.
@@ -96,7 +96,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling catapult
   # and whatever else without interference from each other.
-  'catapult_revision': '574285df8dae4445d2370362a2cff4cce0eaa8c0',
+  'catapult_revision': '88e9135e3e0a5cfe60aa54b9248aac917ca865f0',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
diff --git a/ash/common/system/chromeos/bluetooth/tray_bluetooth.cc b/ash/common/system/chromeos/bluetooth/tray_bluetooth.cc
index 80a3cbc0..a6a6c5e 100644
--- a/ash/common/system/chromeos/bluetooth/tray_bluetooth.cc
+++ b/ash/common/system/chromeos/bluetooth/tray_bluetooth.cc
@@ -454,8 +454,8 @@
       WmShell::Get()->system_tray_delegate()->ToggleBluetooth();
     else if (sender == settings_)
       ShowSettings();
-
-    NOTREACHED();
+    else
+      NOTREACHED();
   }
 
   void CreateExtraTitleRowButtons() override {
diff --git a/chrome/android/java/res/layout/new_tab_page_snippets_card.xml b/chrome/android/java/res/layout/new_tab_page_snippets_card.xml
index 468fd732..c556447d 100644
--- a/chrome/android/java/res/layout/new_tab_page_snippets_card.xml
+++ b/chrome/android/java/res/layout/new_tab_page_snippets_card.xml
@@ -20,6 +20,7 @@
         android:layout_height="wrap_content"
         android:layout_alignParentStart="true"
         android:layout_toStartOf="@+id/article_thumbnail"
+        android:maxLines="2"
         android:ellipsize="end"
         android:textSize="16sp"
         android:textColor="@color/snippets_headline_text_color"
@@ -90,7 +91,7 @@
         android:layout_height="@dimen/snippets_thumbnail_size"
         android:layout_alignParentTop="true"
         android:layout_alignParentEnd="true"
-        android:layout_marginStart="16dp"
+        android:layout_marginStart="@dimen/snippets_thumbnail_margin"
         android:scaleType="centerCrop"
         android:contentDescription="@null"
         android:src="@null" />
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
index 1fb7d8d..52ec178 100644
--- a/chrome/android/java/res/values/dimens.xml
+++ b/chrome/android/java/res/values/dimens.xml
@@ -289,6 +289,7 @@
     <dimen name="ntp_sign_in_promo_margin_top">20dp</dimen>
     <dimen name="ntp_progress_indicator_diameter">56dp</dimen>
     <dimen name="snippets_thumbnail_size">72dp</dimen>
+    <dimen name="snippets_thumbnail_margin">16dp</dimen>
     <!-- The default padding for the peeking card and the amount the card peeks by in the current
          peeking card animation (the calculations assume this is the same). -->
     <dimen name="snippets_padding">16dp</dimen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java
index 9c56a10..212f0ef5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java
@@ -59,6 +59,63 @@
     /** To be called when a client gets disconnected. */
     public interface DisconnectCallback { public void run(CustomTabsSessionToken session); }
 
+    private static class KeepAliveServiceConnection implements ServiceConnection {
+        private final Context mContext;
+        private final Intent mServiceIntent;
+        private boolean mHasDied;
+        private boolean mIsBound;
+
+        public KeepAliveServiceConnection(Context context, Intent serviceIntent) {
+            mContext = context;
+            mServiceIntent = serviceIntent;
+        }
+
+        /**
+         * Connects to the service identified by |serviceIntent|. Does not reconnect if the service
+         * got disconnected at some point from the other end (remote process death).
+         */
+        public boolean connect() {
+            if (mIsBound) return true;
+            // If the remote process died at some point, it doesn't make sense to resurrect it.
+            if (mHasDied) return false;
+
+            boolean ok;
+            try {
+                ok = mContext.bindService(mServiceIntent, this, Context.BIND_AUTO_CREATE);
+            } catch (SecurityException e) {
+                return false;
+            }
+            mIsBound = ok;
+            return ok;
+        }
+
+        /**
+         * Disconnects from the remote process. Safe to call even if {@link connect()} returned
+         * false, or if the remote service died.
+         */
+        public void disconnect() {
+            if (mIsBound) {
+                mContext.unbindService(this);
+                mIsBound = false;
+            }
+        }
+
+        @Override
+        public void onServiceConnected(ComponentName name, IBinder service) {}
+
+        @Override
+        public void onServiceDisconnected(ComponentName name) {
+            if (mIsBound) {
+                // The remote process has died. This typically happens if the system is low enough
+                // on memory to kill one of the last process on the "kill list". In this case, we
+                // shouldn't resurrect the process (which happens with BIND_AUTO_CREATE) because
+                // that could create a "restart/kill" loop.
+                mHasDied = true;
+                disconnect();
+            }
+        }
+    }
+
     /** Per-session values. */
     private static class SessionParams {
         public final int uid;
@@ -71,7 +128,7 @@
         private boolean mShouldHideDomain;
         private boolean mShouldPrerenderOnCellular;
         private boolean mShouldSendNavigationInfo;
-        private ServiceConnection mKeepAliveConnection;
+        private KeepAliveServiceConnection mKeepAliveConnection;
         private String mPredictedUrl;
         private long mLastMayLaunchUrlTimestamp;
 
@@ -90,11 +147,11 @@
             return packageList[0];
         }
 
-        public ServiceConnection getKeepAliveConnection() {
+        public KeepAliveServiceConnection getKeepAliveConnection() {
             return mKeepAliveConnection;
         }
 
-        public void setKeepAliveConnection(ServiceConnection serviceConnection) {
+        public void setKeepAliveConnection(KeepAliveServiceConnection serviceConnection) {
             mKeepAliveConnection = serviceConnection;
         }
 
@@ -402,28 +459,20 @@
         SessionParams params = mSessionParams.get(session);
         if (params == null) return false;
 
-        String packageName = intent.getComponent().getPackageName();
-        PackageManager pm = mContext.getApplicationContext().getPackageManager();
-        // Only binds to the application associated to this session.
-        if (!Arrays.asList(pm.getPackagesForUid(params.uid)).contains(packageName)) return false;
-        Intent serviceIntent = new Intent().setComponent(intent.getComponent());
-        // This ServiceConnection doesn't handle disconnects. This is on
-        // purpose, as it occurs when the remote process has died. Since the
-        // only use of this connection is to keep the application alive,
-        // re-connecting would just re-create the process, but the application
-        // state has been lost at that point, the callbacks invalidated, etc.
-        ServiceConnection connection = new ServiceConnection() {
-            @Override
-            public void onServiceConnected(ComponentName name, IBinder service) {}
-            @Override
-            public void onServiceDisconnected(ComponentName name) {}
-        };
-        boolean ok;
-        try {
-            ok = mContext.bindService(serviceIntent, connection, Context.BIND_AUTO_CREATE);
-        } catch (SecurityException e) {
-            return false;
+        KeepAliveServiceConnection connection = params.getKeepAliveConnection();
+
+        if (connection == null) {
+            String packageName = intent.getComponent().getPackageName();
+            PackageManager pm = mContext.getApplicationContext().getPackageManager();
+            // Only binds to the application associated to this session.
+            if (!Arrays.asList(pm.getPackagesForUid(params.uid)).contains(packageName)) {
+                return false;
+            }
+            Intent serviceIntent = new Intent().setComponent(intent.getComponent());
+            connection = new KeepAliveServiceConnection(mContext, serviceIntent);
         }
+
+        boolean ok = connection.connect();
         if (ok) params.setKeepAliveConnection(connection);
         return ok;
     }
@@ -432,9 +481,8 @@
     public synchronized void dontKeepAliveForSession(CustomTabsSessionToken session) {
         SessionParams params = mSessionParams.get(session);
         if (params == null || params.getKeepAliveConnection() == null) return;
-        ServiceConnection connection = params.getKeepAliveConnection();
-        params.setKeepAliveConnection(null);
-        mContext.unbindService(connection);
+        KeepAliveServiceConnection connection = params.getKeepAliveConnection();
+        connection.disconnect();
     }
 
     /** See {@link RequestThrottler#isPrerenderingAllowed()} */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
index d809a34..be2dea30 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
@@ -72,6 +72,9 @@
             "https://s2.googleusercontent.com/s2/favicons?domain=%s&src=chrome_newtab_mobile&sz=%d&alt=404";
 
     private final SuggestionsUiDelegate mUiDelegate;
+    private final UiConfig mUiConfig;
+    private final ThumbnailProvider mThumbnailProvider;
+
     private final TextView mHeadlineTextView;
     private final TextView mPublisherTextView;
     private final TextView mArticleSnippetTextView;
@@ -79,12 +82,11 @@
     private final ImageView mOfflineBadge;
     private final View mPublisherBar;
 
+    /** Total horizontal space occupied by the thumbnail, sum of its size and margin. */
+    private final int mThumbnailFootprintPx;
     private final boolean mUseFaviconService;
-    private final UiConfig mUiConfig;
-
     private final ColorStateList mIconForegroundColorList;
     private final int mIconBackgroundColor;
-    private final ThumbnailProvider mThumbnailProvider;
 
     private FetchImageCallback mImageCallback;
     private SnippetArticle mArticle;
@@ -104,6 +106,8 @@
         super(R.layout.new_tab_page_snippets_card, parent, uiConfig, contextMenuManager);
 
         mUiDelegate = uiDelegate;
+        mUiConfig = uiConfig;
+
         mThumbnailView = (TintedImageView) itemView.findViewById(R.id.article_thumbnail);
         mHeadlineTextView = (TextView) itemView.findViewById(R.id.article_headline);
         mPublisherTextView = (TextView) itemView.findViewById(R.id.article_publisher);
@@ -111,22 +115,23 @@
         mPublisherBar = itemView.findViewById(R.id.publisher_bar);
         mOfflineBadge = (ImageView) itemView.findViewById(R.id.offline_icon);
 
-        new ImpressionTracker(itemView, this);
-
-        mUiConfig = uiConfig;
-        new DisplayStyleObserverAdapter(itemView, uiConfig, new DisplayStyleObserver() {
-            @Override
-            public void onDisplayStyleChanged(UiConfig.DisplayStyle newDisplayStyle) {
-                updateLayout();
-            }
-        });
-
+        mThumbnailFootprintPx =
+                itemView.getResources().getDimensionPixelSize(R.dimen.snippets_thumbnail_size)
+                + itemView.getResources().getDimensionPixelSize(R.dimen.snippets_thumbnail_margin);
         mUseFaviconService = CardsVariationParameters.isFaviconServiceEnabled();
 
         mIconBackgroundColor = DownloadUtils.getIconBackgroundColor(parent.getContext());
         mIconForegroundColorList = DownloadUtils.getIconForegroundColorList(parent.getContext());
         mThumbnailProvider = new ThumbnailProviderImpl(
                 Math.min(mThumbnailView.getMaxWidth(), mThumbnailView.getMaxHeight()));
+
+        new ImpressionTracker(itemView, this);
+        new DisplayStyleObserverAdapter(itemView, uiConfig, new DisplayStyleObserver() {
+            @Override
+            public void onDisplayStyleChanged(UiConfig.DisplayStyle newDisplayStyle) {
+                updateLayout();
+            }
+        });
     }
 
     @Override
@@ -219,16 +224,15 @@
 
         mArticleSnippetTextView.setVisibility(showDescription ? View.VISIBLE : View.GONE);
         mThumbnailView.setVisibility(showThumbnail ? View.VISIBLE : View.GONE);
-        mHeadlineTextView.setMaxLines(getHeaderMaxLines(horizontalStyle, verticalStyle, layout));
-        mHeadlineTextView.setMinLines(getHeaderMinLines(showDescription, showThumbnail));
 
         // If we aren't showing the article snippet, reduce the top margin for publisher text.
         ViewGroup.MarginLayoutParams params =
                 (ViewGroup.MarginLayoutParams) mPublisherBar.getLayoutParams();
 
-        params.topMargin = mPublisherBar.getResources().getDimensionPixelSize(showThumbnail
+        params.topMargin = mPublisherBar.getResources().getDimensionPixelSize(showDescription
                         ? R.dimen.snippets_publisher_margin_top_with_article_snippet
                         : R.dimen.snippets_publisher_margin_top_without_article_snippet);
+        ApiCompatibilityUtils.setMarginEnd(params, showThumbnail ? mThumbnailFootprintPx : 0);
         mPublisherBar.setLayoutParams(params);
     }
 
@@ -251,21 +255,6 @@
         return true;
     }
 
-    private int getHeaderMaxLines(int horizontalStyle, int verticalStyle, int layout) {
-        // When the screen is too small (narrow or flat) we don't show the description so we have
-        // more space for the header.
-        if (verticalStyle == VerticalDisplayStyle.FLAT) return 3;
-        if (horizontalStyle == HorizontalDisplayStyle.NARROW) return 4;
-        return 2;
-    }
-
-    private int getHeaderMinLines(boolean showDescription, boolean showThumbnail) {
-        // When we have a thumbnail, we try to ensure we have enough content to push the
-        // attribution line below it. So when the description is hidden, we have to force the
-        // header to reserve that space.
-        return showThumbnail && !showDescription ? 3 : 1;
-    }
-
     private static String getAttributionString(SnippetArticle article) {
         if (article.mPublishTimestampMilliseconds == 0) return article.mPublisher;
 
diff --git a/chrome/browser/chromeos/external_metrics.cc b/chrome/browser/chromeos/external_metrics.cc
index 5ca83bc..24c5a4c 100644
--- a/chrome/browser/chromeos/external_metrics.cc
+++ b/chrome/browser/chromeos/external_metrics.cc
@@ -7,7 +7,9 @@
 #include <stddef.h>
 
 #include <map>
+#include <memory>
 #include <string>
+#include <vector>
 
 #include "base/bind.h"
 #include "base/metrics/histogram_macros.h"
@@ -133,13 +135,11 @@
 }
 
 int ExternalMetrics::CollectEvents() {
-  ScopedVector<metrics::MetricSample> samples;
+  std::vector<std::unique_ptr<metrics::MetricSample>> samples;
   metrics::SerializationUtils::ReadAndTruncateMetricsFromFile(uma_events_file_,
                                                               &samples);
 
-  for (ScopedVector<metrics::MetricSample>::iterator it = samples.begin();
-       it != samples.end();
-       ++it) {
+  for (auto it = samples.begin(); it != samples.end(); ++it) {
     const metrics::MetricSample& sample = **it;
 
     // Do not use the UMA_HISTOGRAM_... macros here.  They cache the Histogram
diff --git a/chrome/browser/predictors/resource_prefetch_predictor.cc b/chrome/browser/predictors/resource_prefetch_predictor.cc
index 75a2d29..557f5ad 100644
--- a/chrome/browser/predictors/resource_prefetch_predictor.cc
+++ b/chrome/browser/predictors/resource_prefetch_predictor.cc
@@ -120,6 +120,56 @@
 
 GetUrlVisitCountTask::~GetUrlVisitCountTask() {}
 
+void ReportPrefetchAccuracy(
+    const ResourcePrefetcher::PrefetcherStats& stats,
+    const std::vector<ResourcePrefetchPredictor::URLRequestSummary>&
+        summaries) {
+  if (stats.requests_stats.empty())
+    return;
+
+  std::set<GURL> urls;
+  for (const auto& summary : summaries)
+    urls.insert(summary.resource_url);
+
+  int cached_misses_count = 0;
+  int not_cached_misses_count = 0;
+  int cached_hits_count = 0;
+  int not_cached_hits_count = 0;
+  int64_t misses_bytes = 0;
+  int64_t hits_bytes = 0;
+
+  for (const auto& request_stats : stats.requests_stats) {
+    bool hit = urls.find(request_stats.resource_url) != urls.end();
+    bool cached = request_stats.was_cached;
+    size_t bytes = request_stats.total_received_bytes;
+
+    cached_hits_count += cached && hit;
+    cached_misses_count += cached && !hit;
+    not_cached_hits_count += !cached && hit;
+    not_cached_misses_count += !cached && !hit;
+    misses_bytes += !hit * bytes;
+    hits_bytes += hit * bytes;
+  }
+
+  UMA_HISTOGRAM_COUNTS_100(
+      internal::kResourcePrefetchPredictorPrefetchMissesCountCached,
+      cached_misses_count);
+  UMA_HISTOGRAM_COUNTS_100(
+      internal::kResourcePrefetchPredictorPrefetchMissesCountNotCached,
+      not_cached_misses_count);
+  UMA_HISTOGRAM_COUNTS_100(
+      internal::kResourcePrefetchPredictorPrefetchHitsCountCached,
+      cached_hits_count);
+  UMA_HISTOGRAM_COUNTS_100(
+      internal::kResourcePrefetchPredictorPrefetchHitsCountNotCached,
+      not_cached_hits_count);
+  UMA_HISTOGRAM_COUNTS_10000(
+      internal::kResourcePrefetchPredictorPrefetchHitsSize, hits_bytes / 1024);
+  UMA_HISTOGRAM_COUNTS_10000(
+      internal::kResourcePrefetchPredictorPrefetchMissesSize,
+      misses_bytes / 1024);
+}
+
 void ReportPredictionAccuracy(
     const std::vector<GURL>& predicted_urls,
     const ResourcePrefetchPredictor::PageRequestSummary& summary) {
@@ -549,9 +599,12 @@
 }
 
 void ResourcePrefetchPredictor::OnPrefetchingFinished(
-    const GURL& main_frame_url) {
+    const GURL& main_frame_url,
+    std::unique_ptr<ResourcePrefetcher::PrefetcherStats> stats) {
   if (observer_)
     observer_->OnPrefetchingFinished(main_frame_url);
+
+  prefetcher_stats_.insert(std::make_pair(main_frame_url, std::move(stats)));
 }
 
 bool ResourcePrefetchPredictor::IsUrlPrefetchable(const GURL& main_frame_url) {
@@ -582,7 +635,6 @@
   const GURL& main_frame_url = request.navigation_id.main_frame_url;
   StartPrefetching(main_frame_url, PrefetchOrigin::NAVIGATION);
 
-  // Cleanup older navigations.
   CleanupAbandonedNavigations(request.navigation_id);
 
   // New empty navigation entry.
@@ -657,12 +709,20 @@
   std::unique_ptr<PageRequestSummary> summary = std::move(nav_it->second);
   inflight_navigations_.erase(nav_it);
 
+  const GURL& main_frame_url = nav_id_without_timing_info.main_frame_url;
   std::vector<GURL> predicted_urls;
-  bool has_data = GetPrefetchData(nav_id_without_timing_info.main_frame_url,
-                                  &predicted_urls);
+  bool has_data = GetPrefetchData(main_frame_url, &predicted_urls);
   if (has_data)
     ReportPredictionAccuracy(predicted_urls, *summary);
 
+  auto it = prefetcher_stats_.find(main_frame_url);
+  if (it != prefetcher_stats_.end()) {
+    const std::vector<URLRequestSummary>& summaries =
+        summary->subresource_requests;
+    ReportPrefetchAccuracy(*it->second, summaries);
+    prefetcher_stats_.erase(it);
+  }
+
   // Kick off history lookup to determine if we should record the URL.
   history::HistoryService* history_service =
       HistoryServiceFactory::GetForProfile(profile_,
@@ -792,6 +852,19 @@
     else
       ++it;
   }
+
+  // Remove old prefetches that haven't been claimed.
+  for (auto stats_it = prefetcher_stats_.begin();
+       stats_it != prefetcher_stats_.end();) {
+    if (time_now - stats_it->second->start_time > max_navigation_age) {
+      // No requests -> everything is a miss.
+      ReportPrefetchAccuracy(*stats_it->second,
+                             std::vector<URLRequestSummary>());
+      stats_it = prefetcher_stats_.erase(stats_it);
+    } else {
+      ++stats_it;
+    }
+  }
 }
 
 void ResourcePrefetchPredictor::DeleteAllUrls() {
diff --git a/chrome/browser/predictors/resource_prefetch_predictor.h b/chrome/browser/predictors/resource_prefetch_predictor.h
index 2af4be9e..25514ab 100644
--- a/chrome/browser/predictors/resource_prefetch_predictor.h
+++ b/chrome/browser/predictors/resource_prefetch_predictor.h
@@ -47,6 +47,18 @@
     "ResourcePrefetchPredictor.LearningCount";
 constexpr char kResourcePrefetchPredictorPrefetchingDurationHistogram[] =
     "ResourcePrefetchPredictor.PrefetchingDuration";
+constexpr char kResourcePrefetchPredictorPrefetchMissesCountCached[] =
+    "ResourcePrefetchPredictor.PrefetchMissesCount.Cached";
+constexpr char kResourcePrefetchPredictorPrefetchMissesCountNotCached[] =
+    "ResourcePrefetchPredictor.PrefetchMissesCount.NotCached";
+constexpr char kResourcePrefetchPredictorPrefetchHitsCountCached[] =
+    "ResourcePrefetchPredictor.PrefetchHitsCount.Cached";
+constexpr char kResourcePrefetchPredictorPrefetchHitsCountNotCached[] =
+    "ResourcePrefetchPredictor.PrefetchHitsCount.NotCached";
+constexpr char kResourcePrefetchPredictorPrefetchHitsSize[] =
+    "ResourcePrefetchPredictor.PrefetchHitsSizeKB";
+constexpr char kResourcePrefetchPredictorPrefetchMissesSize[] =
+    "ResourcePrefetchPredictor.PrefetchMissesSizeKB";
 }  // namespace internal
 
 class TestObserver;
@@ -174,7 +186,9 @@
 
   // Called when ResourcePrefetcher is finished, i.e. there is nothing pending
   // in flight.
-  void OnPrefetchingFinished(const GURL& main_frame_url);
+  void OnPrefetchingFinished(
+      const GURL& main_frame_url,
+      std::unique_ptr<ResourcePrefetcher::PrefetcherStats> stats);
 
   // Returns true if prefetching data exists for the |main_frame_url|.
   virtual bool IsUrlPrefetchable(const GURL& main_frame_url);
@@ -222,7 +236,6 @@
     INITIALIZING = 1,
     INITIALIZED = 2
   };
-
   typedef ResourcePrefetchPredictorTables::PrefetchDataMap PrefetchDataMap;
   typedef ResourcePrefetchPredictorTables::RedirectDataMap RedirectDataMap;
 
@@ -288,8 +301,7 @@
   // database has been read.
   void OnHistoryAndCacheLoaded();
 
-  // Removes data for navigations where the onload never fired. Will cleanup
-  // inflight_navigations_ and inflight_prefetches_.
+  // Cleanup inflight_navigations_, inflight_prefetches_, and prefetcher_stats_.
   void CleanupAbandonedNavigations(const NavigationID& navigation_id);
 
   // Deletes all URLs from the predictor database, the caches and removes all
@@ -373,6 +385,9 @@
   std::map<GURL, base::TimeTicks> inflight_prefetches_;
   NavigationMap inflight_navigations_;
 
+  std::map<GURL, std::unique_ptr<ResourcePrefetcher::PrefetcherStats>>
+      prefetcher_stats_;
+
   ScopedObserver<history::HistoryService, history::HistoryServiceObserver>
       history_service_observer_;
 
diff --git a/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc b/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc
index bfe5c43..872022f 100644
--- a/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc
+++ b/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc
@@ -9,6 +9,7 @@
 #include "base/command_line.h"
 #include "base/memory/ptr_util.h"
 #include "base/strings/string_util.h"
+#include "base/test/histogram_tester.h"
 #include "chrome/browser/browsing_data/browsing_data_helper.h"
 #include "chrome/browser/browsing_data/browsing_data_remover.h"
 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
@@ -76,7 +77,6 @@
         is_prohibited(false) {}
 
   ResourcePrefetchPredictor::URLRequestSummary request;
-  std::string content;
   // Allows to update HTTP ETag.
   size_t version;
   // True iff "Cache-control: no-store" header is present.
@@ -317,6 +317,7 @@
         ResourcePrefetchPredictorFactory::GetForProfile(browser()->profile());
     ASSERT_TRUE(predictor_);
     EnsurePredictorInitialized();
+    histogram_tester_.reset(new base::HistogramTester());
   }
 
   void TestLearningAndPrefetching(const GURL& main_frame_url) {
@@ -487,6 +488,8 @@
     return navigation_id_history_.size();
   }
 
+  std::unique_ptr<base::HistogramTester> histogram_tester_;
+
  private:
   // ResourcePrefetchPredictor needs to be initialized before the navigation
   // happens otherwise this navigation will be ignored by predictor.
@@ -586,8 +589,6 @@
 
     if (!summary.request.mime_type.empty())
       http_response->set_content_type(summary.request.mime_type);
-    if (!summary.content.empty())
-      http_response->set_content(summary.content);
     if (summary.is_no_store)
       http_response->AddCustomHeader("Cache-Control", "no-store");
     if (summary.request.has_validators) {
@@ -599,6 +600,10 @@
     else
       http_response->AddCustomHeader("Cache-Control", "max-age=2147483648");
 
+    // Add some content, otherwise the prefetch size histogram rounds down to
+    // 0kB.
+    http_response->set_content(std::string(1024, ' '));
+
     return std::move(http_response);
   }
 
@@ -642,6 +647,22 @@
   AddResource(GetURL(kFontPath), content::RESOURCE_TYPE_FONT_RESOURCE,
               net::HIGHEST);
   TestLearningAndPrefetching(GetURL(kHtmlSubresourcesPath));
+
+  // The local cache is cleared.
+  histogram_tester_->ExpectBucketCount(
+      internal::kResourcePrefetchPredictorPrefetchMissesCountCached, 0, 1);
+  histogram_tester_->ExpectBucketCount(
+      internal::kResourcePrefetchPredictorPrefetchMissesCountNotCached, 0, 1);
+  histogram_tester_->ExpectBucketCount(
+      internal::kResourcePrefetchPredictorPrefetchHitsCountCached, 0, 1);
+  histogram_tester_->ExpectBucketCount(
+      internal::kResourcePrefetchPredictorPrefetchHitsCountNotCached, 4, 1);
+
+  histogram_tester_->ExpectBucketCount(
+      internal::kResourcePrefetchPredictorPrefetchMissesSize, 0, 1);
+  // Each request is ~1k, see HandleResourceRequest() above.
+  histogram_tester_->ExpectBucketCount(
+      internal::kResourcePrefetchPredictorPrefetchHitsSize, 4, 1);
 }
 
 IN_PROC_BROWSER_TEST_F(ResourcePrefetchPredictorBrowserTest, Redirect) {
diff --git a/chrome/browser/predictors/resource_prefetcher.cc b/chrome/browser/predictors/resource_prefetcher.cc
index a953216b..cc1d466 100644
--- a/chrome/browser/predictors/resource_prefetcher.cc
+++ b/chrome/browser/predictors/resource_prefetcher.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/predictors/resource_prefetcher.h"
 
+#include <algorithm>
 #include <iterator>
 #include <utility>
 
@@ -25,6 +26,27 @@
 
 namespace predictors {
 
+ResourcePrefetcher::PrefetchedRequestStats::PrefetchedRequestStats(
+    const GURL& resource_url,
+    bool was_cached,
+    size_t total_received_bytes)
+    : resource_url(resource_url),
+      was_cached(was_cached),
+      total_received_bytes(total_received_bytes) {}
+
+ResourcePrefetcher::PrefetchedRequestStats::~PrefetchedRequestStats() {}
+
+ResourcePrefetcher::PrefetcherStats::PrefetcherStats(const GURL& url)
+    : url(url) {}
+
+ResourcePrefetcher::PrefetcherStats::~PrefetcherStats() {}
+
+ResourcePrefetcher::PrefetcherStats::PrefetcherStats(
+    const PrefetcherStats& other)
+    : url(other.url),
+      start_time(other.start_time),
+      requests_stats(other.requests_stats) {}
+
 ResourcePrefetcher::ResourcePrefetcher(
     Delegate* delegate,
     const ResourcePrefetchPredictorConfig& config,
@@ -35,7 +57,8 @@
       config_(config),
       main_frame_url_(main_frame_url),
       prefetched_count_(0),
-      prefetched_bytes_(0) {
+      prefetched_bytes_(0),
+      stats_(base::MakeUnique<PrefetcherStats>(main_frame_url)) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
 
   std::copy(urls.begin(), urls.end(), std::back_inserter(request_queue_));
@@ -50,6 +73,7 @@
   CHECK_EQ(state_, INITIALIZED);
   state_ = RUNNING;
 
+  stats_->start_time = base::TimeTicks::Now();
   TryToLaunchPrefetchRequests();
 }
 
@@ -110,7 +134,7 @@
         prefetched_bytes_ / 1024);
 
     state_ = FINISHED;
-    delegate_->ResourcePrefetcherFinished(this);
+    delegate_->ResourcePrefetcherFinished(this, std::move(stats_));
   }
 }
 
@@ -164,18 +188,21 @@
       FinishRequest(request);
       return;
     }
-
   } while (bytes_read > 0);
 }
 
 void ResourcePrefetcher::RequestComplete(net::URLRequest* request) {
   ++prefetched_count_;
-  prefetched_bytes_ += request->GetTotalReceivedBytes();
+  int64_t total_received_bytes = request->GetTotalReceivedBytes();
+  prefetched_bytes_ += total_received_bytes;
 
   UMA_HISTOGRAM_ENUMERATION(
       internal::kResourcePrefetchPredictorCachePatternHistogram,
       request->response_info().cache_entry_status,
       net::HttpResponseInfo::CacheEntryStatus::ENTRY_MAX);
+
+  stats_->requests_stats.emplace_back(request->url(), request->was_cached(),
+                                      total_received_bytes);
 }
 
 void ResourcePrefetcher::OnReceivedRedirect(
diff --git a/chrome/browser/predictors/resource_prefetcher.h b/chrome/browser/predictors/resource_prefetcher.h
index caba0981..cc80802 100644
--- a/chrome/browser/predictors/resource_prefetcher.h
+++ b/chrome/browser/predictors/resource_prefetcher.h
@@ -10,12 +10,14 @@
 #include <list>
 #include <map>
 #include <memory>
+#include <string>
 #include <utility>
 #include <vector>
 
 #include "base/macros.h"
 #include "base/memory/scoped_vector.h"
 #include "base/threading/thread_checker.h"
+#include "base/time/time.h"
 #include "chrome/browser/predictors/resource_prefetch_common.h"
 #include "net/url_request/redirect_info.h"
 #include "net/url_request/url_request.h"
@@ -44,6 +46,27 @@
 //  - Lives entirely on the IO thread.
 class ResourcePrefetcher : public net::URLRequest::Delegate {
  public:
+  struct PrefetchedRequestStats {
+    PrefetchedRequestStats(const GURL& resource_url,
+                           bool was_cached,
+                           size_t total_received_bytes);
+    ~PrefetchedRequestStats();
+
+    GURL resource_url;
+    bool was_cached;
+    size_t total_received_bytes;
+  };
+
+  struct PrefetcherStats {
+    explicit PrefetcherStats(const GURL& url);
+    ~PrefetcherStats();
+    PrefetcherStats(const PrefetcherStats& other);
+
+    GURL url;
+    base::TimeTicks start_time;
+    std::vector<PrefetchedRequestStats> requests_stats;
+  };
+
   // Used to communicate when the prefetching is done. All methods are invoked
   // on the IO thread.
   class Delegate {
@@ -52,7 +75,9 @@
 
     // Called when the ResourcePrefetcher is finished, i.e. there is nothing
     // pending in flight.
-    virtual void ResourcePrefetcherFinished(ResourcePrefetcher* prefetcher) = 0;
+    virtual void ResourcePrefetcherFinished(
+        ResourcePrefetcher* prefetcher,
+        std::unique_ptr<PrefetcherStats> stats) = 0;
 
     virtual net::URLRequestContext* GetURLRequestContext() = 0;
   };
@@ -129,6 +154,7 @@
       inflight_requests_;
   std::list<GURL> request_queue_;
   std::map<std::string, size_t> host_inflight_counts_;
+  std::unique_ptr<PrefetcherStats> stats_;
 
   DISALLOW_COPY_AND_ASSIGN(ResourcePrefetcher);
 };
diff --git a/chrome/browser/predictors/resource_prefetcher_manager.cc b/chrome/browser/predictors/resource_prefetcher_manager.cc
index 7130038..434c149 100644
--- a/chrome/browser/predictors/resource_prefetcher_manager.cc
+++ b/chrome/browser/predictors/resource_prefetcher_manager.cc
@@ -79,14 +79,16 @@
 }
 
 void ResourcePrefetcherManager::ResourcePrefetcherFinished(
-    ResourcePrefetcher* resource_prefetcher) {
+    ResourcePrefetcher* resource_prefetcher,
+    std::unique_ptr<ResourcePrefetcher::PrefetcherStats> stats) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
 
   const GURL& main_frame_url = resource_prefetcher->main_frame_url();
   BrowserThread::PostTask(
       BrowserThread::UI, FROM_HERE,
       base::Bind(&ResourcePrefetchPredictor::OnPrefetchingFinished,
-                 base::Unretained(predictor_), main_frame_url));
+                 base::Unretained(predictor_), main_frame_url,
+                 base::Passed(std::move(stats))));
 
   const std::string key = main_frame_url.host();
   auto it = prefetcher_map_.find(key);
diff --git a/chrome/browser/predictors/resource_prefetcher_manager.h b/chrome/browser/predictors/resource_prefetcher_manager.h
index ce1994f..a844e60 100644
--- a/chrome/browser/predictors/resource_prefetcher_manager.h
+++ b/chrome/browser/predictors/resource_prefetcher_manager.h
@@ -55,7 +55,9 @@
   void MaybeRemovePrefetch(const GURL& main_frame_url);
 
   // ResourcePrefetcher::Delegate methods.
-  void ResourcePrefetcherFinished(ResourcePrefetcher* prefetcher) override;
+  void ResourcePrefetcherFinished(
+      ResourcePrefetcher* prefetcher,
+      std::unique_ptr<ResourcePrefetcher::PrefetcherStats> stats) override;
   net::URLRequestContext* GetURLRequestContext() override;
 
  private:
diff --git a/chrome/browser/predictors/resource_prefetcher_unittest.cc b/chrome/browser/predictors/resource_prefetcher_unittest.cc
index a412b552..76bac25 100644
--- a/chrome/browser/predictors/resource_prefetcher_unittest.cc
+++ b/chrome/browser/predictors/resource_prefetcher_unittest.cc
@@ -61,17 +61,27 @@
   explicit TestResourcePrefetcherDelegate(base::MessageLoop* loop)
       : request_context_getter_(
             new net::TestURLRequestContextGetter(loop->task_runner())) {}
-  ~TestResourcePrefetcherDelegate() { }
+  ~TestResourcePrefetcherDelegate() override {}
 
   net::URLRequestContext* GetURLRequestContext() override {
     return request_context_getter_->GetURLRequestContext();
   }
 
-  MOCK_METHOD1(ResourcePrefetcherFinished,
-               void(ResourcePrefetcher* prefetcher));
+  void ResourcePrefetcherFinished(
+      ResourcePrefetcher* prefetcher,
+      std::unique_ptr<ResourcePrefetcher::PrefetcherStats> stats) override {
+    prefetcher_ = prefetcher;
+  }
+
+  bool ResourcePrefetcherFinishedCalled(ResourcePrefetcher* for_prefetcher) {
+    ResourcePrefetcher* prefetcher = prefetcher_;
+    prefetcher_ = nullptr;
+    return prefetcher == for_prefetcher;
+  }
 
  private:
   scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_;
+  ResourcePrefetcher* prefetcher_;
 
   DISALLOW_COPY_AND_ASSIGN(TestResourcePrefetcherDelegate);
 };
@@ -220,12 +230,12 @@
   OnAuthRequired("http://m.google.com/resource3.css");
   CheckPrefetcherState(1, 0, 1);
 
-  // Expect the final call.
-  EXPECT_CALL(prefetcher_delegate_,
-              ResourcePrefetcherFinished(Eq(prefetcher_.get())));
-
   OnResponse("http://yahoo.com/resource3.png");
   CheckPrefetcherState(0, 0, 0);
+
+  // Expect the final call.
+  EXPECT_TRUE(
+      prefetcher_delegate_.ResourcePrefetcherFinishedCalled(prefetcher_.get()));
 }
 
 TEST_F(ResourcePrefetcherTest, TestPrefetcherStopped) {
@@ -264,12 +274,12 @@
   OnResponse("http://yahoo.com/resource2.png");
   CheckPrefetcherState(1, 1, 1);
 
-  // Expect the final call.
-  EXPECT_CALL(prefetcher_delegate_,
-              ResourcePrefetcherFinished(Eq(prefetcher_.get())));
-
   OnResponse("http://m.google.com/resource1.jpg");
   CheckPrefetcherState(0, 1, 0);
+
+  // Expect the final call.
+  EXPECT_TRUE(
+      prefetcher_delegate_.ResourcePrefetcherFinishedCalled(prefetcher_.get()));
 }
 
 TEST_F(ResourcePrefetcherTest, TestHistogramsCollected) {
@@ -310,10 +320,6 @@
   histogram_tester.ExpectTotalCount(
       internal::kResourcePrefetchPredictorCachePatternHistogram, 1);
 
-  // Expect the final call.
-  EXPECT_CALL(prefetcher_delegate_,
-              ResourcePrefetcherFinished(Eq(prefetcher_.get())));
-
   OnResponse("http://www.google.com/resource6.png");
   histogram_tester.ExpectTotalCount(
       internal::kResourcePrefetchPredictorCachePatternHistogram, 2);
@@ -321,6 +327,10 @@
       internal::kResourcePrefetchPredictorPrefetchedCountHistogram, 2, 1);
   histogram_tester.ExpectTotalCount(
       internal::kResourcePrefetchPredictorPrefetchedSizeHistogram, 1);
+
+  // Expect the final call.
+  EXPECT_TRUE(
+      prefetcher_delegate_.ResourcePrefetcherFinishedCalled(prefetcher_.get()));
 }
 
 }  // namespace predictors
diff --git a/chrome/browser/search_engines/template_url_service_unittest.cc b/chrome/browser/search_engines/template_url_service_unittest.cc
index ddc0638..07abd017 100644
--- a/chrome/browser/search_engines/template_url_service_unittest.cc
+++ b/chrome/browser/search_engines/template_url_service_unittest.cc
@@ -28,10 +28,13 @@
 #include "chrome/test/base/testing_profile.h"
 #include "components/history/core/browser/history_service.h"
 #include "components/search_engines/keyword_web_data_service.h"
+#include "components/search_engines/search_engines_pref_names.h"
+#include "components/search_engines/search_engines_test_util.h"
 #include "components/search_engines/search_host_to_urls_map.h"
 #include "components/search_engines/search_terms_data.h"
 #include "components/search_engines/template_url.h"
 #include "components/search_engines/template_url_prepopulate_data.h"
+#include "components/sync_preferences/testing_pref_service_syncable.h"
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -186,6 +189,9 @@
       bool safe_for_autoreplace,
       int prepopulate_id);
 
+  // Set custom search engine as default fallback through overrides pref.
+  void SetOverriddenEngines();
+
   // Helper methods to make calling TemplateURLServiceTestUtil methods less
   // visually noisy in the test code.
   void VerifyObserverCount(int expected_changed_count);
@@ -292,6 +298,29 @@
   return base::MakeUnique<TemplateURL>(data);
 }
 
+void TemplateURLServiceTest::SetOverriddenEngines() {
+  // Set custom search engine as default fallback through overrides.
+  auto entry = base::MakeUnique<base::DictionaryValue>();
+  entry->SetString("name", "override_name");
+  entry->SetString("keyword", "override_keyword");
+  entry->SetString("search_url", "http://override.com/s?q={searchTerms}");
+  entry->SetString("favicon_url", "http://override.com/favicon.ico");
+  entry->SetString("encoding", "UTF-8");
+  entry->SetInteger("id", 1001);
+  entry->SetString("suggest_url",
+                   "http://override.com/suggest?q={searchTerms}");
+  entry->SetString("instant_url",
+                   "http://override.com/instant?q={searchTerms}");
+
+  auto overrides_list = base::MakeUnique<base::ListValue>();
+  overrides_list->Append(std::move(entry));
+
+  auto prefs = test_util()->profile()->GetTestingPrefService();
+  prefs->SetUserPref(prefs::kSearchProviderOverridesVersion,
+                     new base::FundamentalValue(1));
+  prefs->SetUserPref(prefs::kSearchProviderOverrides, overrides_list.release());
+}
+
 void TemplateURLServiceTest::VerifyObserverCount(int expected_changed_count) {
   EXPECT_EQ(expected_changed_count, test_util_->GetObserverCount());
   test_util_->ResetObserverCount();
@@ -893,6 +922,154 @@
   ExpectSimilar(expected_managed_default.get(), actual_managed_default);
 }
 
+// Checks that RepairPrepopulatedEngines correctly updates sync guid for default
+// search. Repair is considered a user action and new DSE must be synced to
+// other devices as well. Otherwise previous user selected engine will arrive on
+// next sync attempt.
+TEST_F(TemplateURLServiceTest, RepairPrepopulatedEnginesUpdatesSyncGuid) {
+  test_util()->VerifyLoad();
+
+  // The synced DSE GUID should be empty until the user selects something or
+  // there is sync activity.
+  EXPECT_TRUE(test_util()
+                  ->profile()
+                  ->GetTestingPrefService()
+                  ->GetString(prefs::kSyncedDefaultSearchProviderGUID)
+                  .empty());
+
+  TemplateURL* initial_dse = model()->GetDefaultSearchProvider();
+  ASSERT_TRUE(initial_dse);
+
+  // Add user provided default search engine.
+  TemplateURL* user_dse = AddKeywordWithDate(
+      "user_dse", "user_dse.com", "http://www.user_dse.com/s?q={searchTerms}",
+      std::string(), std::string(), std::string(), true, "UTF-8", Time(),
+      Time(), Time());
+  model()->SetUserSelectedDefaultSearchProvider(user_dse);
+  EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider());
+  // Check that user dse is different from initial.
+  EXPECT_NE(initial_dse, user_dse);
+
+  // Check that user DSE guid is stored in kSyncedDefaultSearchProviderGUID.
+  EXPECT_EQ(user_dse->sync_guid(),
+            test_util()->profile()->GetTestingPrefService()->GetString(
+                prefs::kSyncedDefaultSearchProviderGUID));
+
+  model()->RepairPrepopulatedSearchEngines();
+
+  // Check that initial search engine is returned as default after repair.
+  ASSERT_EQ(initial_dse, model()->GetDefaultSearchProvider());
+  // Check that initial_dse guid is stored in kSyncedDefaultSearchProviderGUID.
+  const std::string dse_guid =
+      test_util()->profile()->GetTestingPrefService()->GetString(
+          prefs::kSyncedDefaultSearchProviderGUID);
+  EXPECT_EQ(initial_dse->sync_guid(), dse_guid);
+  EXPECT_EQ(initial_dse->keyword(),
+            model()->GetTemplateURLForGUID(dse_guid)->keyword());
+}
+
+// Checks that RepairPrepopulatedEngines correctly updates sync guid for default
+// search when search engines are overridden using pref.
+TEST_F(TemplateURLServiceTest,
+       RepairPrepopulatedEnginesWithOverridesUpdatesSyncGuid) {
+  SetOverriddenEngines();
+  test_util()->VerifyLoad();
+
+  // The synced DSE GUID should be empty until the user selects something or
+  // there is sync activity.
+  EXPECT_TRUE(test_util()
+                  ->profile()
+                  ->GetTestingPrefService()
+                  ->GetString(prefs::kSyncedDefaultSearchProviderGUID)
+                  .empty());
+
+  TemplateURL* overridden_engine =
+      model()->GetTemplateURLForKeyword(ASCIIToUTF16("override_keyword"));
+  ASSERT_TRUE(overridden_engine);
+
+  EXPECT_EQ(overridden_engine, model()->GetDefaultSearchProvider());
+
+  // Add user provided default search engine.
+  TemplateURL* user_dse = AddKeywordWithDate(
+      "user_dse", "user_dse.com", "http://www.user_dse.com/s?q={searchTerms}",
+      std::string(), std::string(), std::string(), true, "UTF-8", Time(),
+      Time(), Time());
+  model()->SetUserSelectedDefaultSearchProvider(user_dse);
+  EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider());
+
+  // Check that user DSE guid is stored in kSyncedDefaultSearchProviderGUID.
+  EXPECT_EQ(user_dse->sync_guid(),
+            test_util()->profile()->GetTestingPrefService()->GetString(
+                prefs::kSyncedDefaultSearchProviderGUID));
+
+  model()->RepairPrepopulatedSearchEngines();
+
+  // Check that overridden engine is returned as default after repair.
+  ASSERT_EQ(overridden_engine, model()->GetDefaultSearchProvider());
+  // Check that overridden_engine guid is stored in
+  // kSyncedDefaultSearchProviderGUID.
+  const std::string dse_guid =
+      test_util()->profile()->GetTestingPrefService()->GetString(
+          prefs::kSyncedDefaultSearchProviderGUID);
+  EXPECT_EQ(overridden_engine->sync_guid(), dse_guid);
+  EXPECT_EQ(overridden_engine->keyword(),
+            model()->GetTemplateURLForGUID(dse_guid)->keyword());
+}
+
+// Checks that RepairPrepopulatedEngines correctly updates sync guid for default
+// search when search engines is overridden by extension.
+TEST_F(TemplateURLServiceTest,
+       RepairPrepopulatedEnginesWithExtensionUpdatesSyncGuid) {
+  test_util()->VerifyLoad();
+
+  // The synced DSE GUID should be empty until the user selects something or
+  // there is sync activity.
+  EXPECT_TRUE(test_util()
+                  ->profile()
+                  ->GetTestingPrefService()
+                  ->GetString(prefs::kSyncedDefaultSearchProviderGUID)
+                  .empty());
+
+  // Get initial DSE to check its guid later.
+  TemplateURL* initial_dse = model()->GetDefaultSearchProvider();
+  ASSERT_TRUE(initial_dse);
+
+  // Add user provided default search engine.
+  TemplateURL* user_dse = model()->Add(
+      base::MakeUnique<TemplateURL>(*GenerateDummyTemplateURLData("user_dse")));
+  model()->SetUserSelectedDefaultSearchProvider(user_dse);
+  EXPECT_EQ(user_dse, model()->GetDefaultSearchProvider());
+
+  // Check that user DSE guid is stored in kSyncedDefaultSearchProviderGUID.
+  EXPECT_EQ(user_dse->sync_guid(),
+            test_util()->profile()->GetTestingPrefService()->GetString(
+                prefs::kSyncedDefaultSearchProviderGUID));
+
+  // Add extension controlled default search engine.
+  std::unique_ptr<TemplateURL::AssociatedExtensionInfo> extension_info(
+      new TemplateURL::AssociatedExtensionInfo("extension"));
+  extension_info->wants_to_be_default_engine = true;
+  TemplateURL* extension_dse = model()->AddExtensionControlledTURL(
+      base::MakeUnique<TemplateURL>(
+          *GenerateDummyTemplateURLData("extension_dse"),
+          TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION),
+      std::move(extension_info));
+  EXPECT_EQ(extension_dse, model()->GetDefaultSearchProvider());
+  // Check that user DSE guid is still stored in
+  // kSyncedDefaultSearchProviderGUID.
+  EXPECT_EQ(user_dse->sync_guid(),
+            test_util()->profile()->GetTestingPrefService()->GetString(
+                prefs::kSyncedDefaultSearchProviderGUID));
+
+  model()->RepairPrepopulatedSearchEngines();
+  // Check that extension engine is still default but sync guid is updated to
+  // initial dse guid.
+  EXPECT_EQ(extension_dse, model()->GetDefaultSearchProvider());
+  EXPECT_EQ(initial_dse->sync_guid(),
+            test_util()->profile()->GetTestingPrefService()->GetString(
+                prefs::kSyncedDefaultSearchProviderGUID));
+}
+
 TEST_F(TemplateURLServiceTest, UpdateKeywordSearchTermsForURL) {
   struct TestData {
     const std::string url;
diff --git a/chrome/browser/ui/views/frame/browser_view_browsertest.cc b/chrome/browser/ui/views/frame/browser_view_browsertest.cc
index 9c63862..f12840b 100644
--- a/chrome/browser/ui/views/frame/browser_view_browsertest.cc
+++ b/chrome/browser/ui/views/frame/browser_view_browsertest.cc
@@ -109,7 +109,14 @@
 
 // Verifies that page and devtools WebViews are being correctly layed out
 // when DevTools is opened/closed/updated/undocked.
-IN_PROC_BROWSER_TEST_F(BrowserViewTest, DevToolsUpdatesBrowserWindow) {
+
+// Flaky on Chrome OS.  http://crbug.com/693000
+#if defined(OS_CHROMEOS)
+#define MAYBE_DevToolsUpdatesBrowserWindow DISABLED_DevToolsUpdatesBrowserWindow
+#else
+#define MAYBE_DevToolsUpdatesBrowserWindow DevToolsUpdatesBrowserWindow
+#endif
+IN_PROC_BROWSER_TEST_F(BrowserViewTest, MAYBE_DevToolsUpdatesBrowserWindow) {
   gfx::Rect full_bounds =
       browser_view()->GetContentsContainerForTest()->GetLocalBounds();
   gfx::Rect small_bounds(10, 20, 30, 40);
diff --git a/chromecast/browser/metrics/external_metrics.cc b/chromecast/browser/metrics/external_metrics.cc
index cc1164a..40de5ba 100644
--- a/chromecast/browser/metrics/external_metrics.cc
+++ b/chromecast/browser/metrics/external_metrics.cc
@@ -6,7 +6,9 @@
 
 #include <stddef.h>
 
+#include <memory>
 #include <string>
+#include <vector>
 
 #include "base/bind.h"
 #include "base/files/file_path.h"
@@ -105,13 +107,11 @@
 }
 
 int ExternalMetrics::CollectEvents() {
-  ScopedVector< ::metrics::MetricSample> samples;
+  std::vector<std::unique_ptr<::metrics::MetricSample>> samples;
   ::metrics::SerializationUtils::ReadAndTruncateMetricsFromFile(
       uma_events_file_, &samples);
 
-  for (ScopedVector< ::metrics::MetricSample>::iterator it = samples.begin();
-       it != samples.end();
-       ++it) {
+  for (auto it = samples.begin(); it != samples.end(); ++it) {
     const ::metrics::MetricSample& sample = **it;
 
     switch (sample.type()) {
diff --git a/components/google/core/browser/google_util.h b/components/google/core/browser/google_util.h
index 53e58bc..d2526b2 100644
--- a/components/google/core/browser/google_util.h
+++ b/components/google/core/browser/google_util.h
@@ -24,6 +24,11 @@
 // The query key that identifies a Google Extended API request for Instant.
 const char kInstantExtendedAPIParam[] = "espv";
 
+constexpr char kGoogleInstantExtendedEnabledKey[] =
+    "google:instantExtendedEnabledKey";
+constexpr char kGoogleInstantExtendedEnabledKeyFull[] =
+    "{google:instantExtendedEnabledKey}";
+
 GURL LinkDoctorBaseURL();
 void SetMockLinkDoctorBaseURLForTesting();
 
diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc
index 4970232..62187120 100644
--- a/components/history/core/browser/history_backend.cc
+++ b/components/history/core/browser/history_backend.cc
@@ -114,44 +114,6 @@
   return mv;
 }
 
-// This task is run on a timer so that commits happen at regular intervals
-// so they are batched together. The important thing about this class is that
-// it supports canceling of the task so the reference to the backend will be
-// freed. The problem is that when history is shutting down, there is likely
-// to be one of these commits still pending and holding a reference.
-//
-// The backend can call Cancel to have this task release the reference. The
-// task will still run (if we ever get to processing the event before
-// shutdown), but it will not do anything.
-//
-// Note that this is a refcounted object and is not a task in itself. It should
-// be assigned to a RunnableMethod.
-//
-// TODO(brettw): bug 1165182: This should be replaced with a
-// base::WeakPtrFactory which will handle everything automatically (like we do
-// in ExpireHistoryBackend).
-class CommitLaterTask : public base::RefCounted<CommitLaterTask> {
- public:
-  explicit CommitLaterTask(HistoryBackend* history_backend)
-      : history_backend_(history_backend) {}
-
-  // The backend will call this function if it is being destroyed so that we
-  // release our reference.
-  void Cancel() { history_backend_ = nullptr; }
-
-  void RunCommit() {
-    if (history_backend_)
-      history_backend_->Commit();
-  }
-
- private:
-  friend class base::RefCounted<CommitLaterTask>;
-
-  ~CommitLaterTask() {}
-
-  scoped_refptr<HistoryBackend> history_backend_;
-};
-
 QueuedHistoryDBTask::QueuedHistoryDBTask(
     std::unique_ptr<HistoryDBTask> task,
     scoped_refptr<base::SingleThreadTaskRunner> origin_loop,
@@ -217,7 +179,7 @@
       task_runner_(task_runner) {}
 
 HistoryBackend::~HistoryBackend() {
-  DCHECK(!scheduled_commit_) << "Deleting without cleanup";
+  DCHECK(scheduled_commit_.IsCancelled()) << "Deleting without cleanup";
   queued_history_db_tasks_.clear();
 
   // Release stashed embedder object before cleaning up the databases.
@@ -2234,20 +2196,21 @@
 }
 
 void HistoryBackend::ScheduleCommit() {
-  if (scheduled_commit_)
+  // Non-cancelled means there's an already scheduled commit. Note that
+  // CancelableClosure starts cancelled with the default constructor.
+  if (!scheduled_commit_.IsCancelled())
     return;
-  scheduled_commit_ = new CommitLaterTask(this);
+
+  scheduled_commit_.Reset(
+      base::Bind(&HistoryBackend::Commit, base::Unretained(this)));
+
   task_runner_->PostDelayedTask(
-      FROM_HERE,
-      base::Bind(&CommitLaterTask::RunCommit, scheduled_commit_),
+      FROM_HERE, scheduled_commit_.callback(),
       base::TimeDelta::FromSeconds(kCommitIntervalSeconds));
 }
 
 void HistoryBackend::CancelScheduledCommit() {
-  if (scheduled_commit_) {
-    scheduled_commit_->Cancel();
-    scheduled_commit_ = nullptr;
-  }
+  scheduled_commit_.Cancel();
 }
 
 void HistoryBackend::ProcessDBTaskImpl() {
diff --git a/components/history/core/browser/history_backend.h b/components/history/core/browser/history_backend.h
index a329aab9..2a62a79d 100644
--- a/components/history/core/browser/history_backend.h
+++ b/components/history/core/browser/history_backend.h
@@ -14,6 +14,7 @@
 #include <utility>
 #include <vector>
 
+#include "base/cancelable_callback.h"
 #include "base/containers/hash_tables.h"
 #include "base/containers/mru_cache.h"
 #include "base/files/file_path.h"
@@ -42,7 +43,6 @@
 }
 
 namespace history {
-class CommitLaterTask;
 struct DownloadRow;
 class HistoryBackendClient;
 class HistoryBackendDBBaseTest;
@@ -480,7 +480,6 @@
 
  private:
   friend class base::RefCountedThreadSafe<HistoryBackend>;
-  friend class CommitLaterTask;  // The commit task needs to call Commit().
   friend class HistoryBackendTest;
   friend class HistoryBackendDBBaseTest;  // So the unit tests can poke our
                                           // innards.
@@ -828,10 +827,11 @@
   ExpireHistoryBackend expirer_;
 
   // A commit has been scheduled to occur sometime in the future. We can check
-  // non-null-ness to see if there is a commit scheduled in the future, and we
-  // can use the pointer to cancel the scheduled commit. There can be only one
+  // !IsCancelled() to see if there is a commit scheduled in the future (note
+  // that CancelableClosure starts cancelled with the default constructor), and
+  // we can use Cancel() to cancel the scheduled commit. There can be only one
   // scheduled commit at a time (see ScheduleCommit).
-  scoped_refptr<CommitLaterTask> scheduled_commit_;
+  base::CancelableClosure scheduled_commit_;
 
   // Maps recent redirect destination pages to the chain of redirects that
   // brought us to there. Pages that did not have redirects or were not the
diff --git a/components/history/core/browser/typed_url_syncable_service_unittest.cc b/components/history/core/browser/typed_url_syncable_service_unittest.cc
index 3ed3d8e..749938c 100644
--- a/components/history/core/browser/typed_url_syncable_service_unittest.cc
+++ b/components/history/core/browser/typed_url_syncable_service_unittest.cc
@@ -226,6 +226,10 @@
     fake_change_processor_.reset(new syncer::FakeSyncChangeProcessor);
   }
 
+  void TearDown() override {
+    fake_history_backend_->Closing();
+  }
+
   // Starts sync for |typed_url_sync_service_| with |initial_data| as the
   // initial sync data.
   void StartSyncing(const syncer::SyncDataList& initial_data);
diff --git a/components/metrics/daily_event.cc b/components/metrics/daily_event.cc
index 900a1d23..c289a097 100644
--- a/components/metrics/daily_event.cc
+++ b/components/metrics/daily_event.cc
@@ -96,9 +96,7 @@
   pref_service_->SetInt64(pref_name_, last_fired_.ToInternalValue());
 
   // Notify all observers
-  for (ScopedVector<DailyEvent::Observer>::iterator it = observers_.begin();
-       it != observers_.end();
-       ++it) {
+  for (auto it = observers_.begin(); it != observers_.end(); ++it) {
     (*it)->OnDailyEvent();
   }
 }
diff --git a/components/metrics/daily_event.h b/components/metrics/daily_event.h
index 18591a7..4f283011 100644
--- a/components/metrics/daily_event.h
+++ b/components/metrics/daily_event.h
@@ -6,9 +6,9 @@
 #define COMPONENTS_METRICS_DAILY_EVENT_H_
 
 #include <memory>
+#include <vector>
 
 #include "base/macros.h"
-#include "base/memory/scoped_vector.h"
 #include "base/time/time.h"
 
 class PrefRegistrySimple;
@@ -80,7 +80,7 @@
   std::string histogram_name_;
 
   // A list of observers.
-  ScopedVector<Observer> observers_;
+  std::vector<std::unique_ptr<Observer>> observers_;
 
   // The time that the daily event was last fired.
   base::Time last_fired_;
diff --git a/components/metrics/metrics_log.cc b/components/metrics/metrics_log.cc
index 599376d..e2740cb 100644
--- a/components/metrics/metrics_log.cc
+++ b/components/metrics/metrics_log.cc
@@ -7,9 +7,7 @@
 #include <stddef.h>
 
 #include <algorithm>
-#include <memory>
 #include <string>
-#include <vector>
 
 #include "base/base64.h"
 #include "base/build_time.h"
@@ -205,7 +203,7 @@
 }
 
 void MetricsLog::RecordStabilityMetrics(
-    const std::vector<MetricsProvider*>& metrics_providers,
+    const std::vector<std::unique_ptr<MetricsProvider>>& metrics_providers,
     base::TimeDelta incremental_uptime,
     base::TimeDelta uptime) {
   DCHECK(!closed_);
@@ -301,7 +299,7 @@
 }
 
 void MetricsLog::RecordGeneralMetrics(
-    const std::vector<MetricsProvider*>& metrics_providers) {
+    const std::vector<std::unique_ptr<MetricsProvider>>& metrics_providers) {
   if (local_state_->GetBoolean(prefs::kMetricsResetIds))
     UMA_HISTOGRAM_BOOLEAN("UMA.IsClonedInstall", true);
 
@@ -384,7 +382,7 @@
 }
 
 std::string MetricsLog::RecordEnvironment(
-    const std::vector<MetricsProvider*>& metrics_providers,
+    const std::vector<std::unique_ptr<MetricsProvider>>& metrics_providers,
     const std::vector<variations::ActiveGroupId>& synthetic_trials,
     int64_t install_date,
     int64_t metrics_reporting_enabled_date) {
diff --git a/components/metrics/metrics_log.h b/components/metrics/metrics_log.h
index fb4bef2..5a01964a 100644
--- a/components/metrics/metrics_log.h
+++ b/components/metrics/metrics_log.h
@@ -10,6 +10,7 @@
 
 #include <stdint.h>
 
+#include <memory>
 #include <string>
 #include <vector>
 
@@ -95,7 +96,7 @@
   // synthetic trial such that the group is determined by the pref value. The
   // current environment is returned serialized as a string.
   std::string RecordEnvironment(
-      const std::vector<MetricsProvider*>& metrics_providers,
+      const std::vector<std::unique_ptr<MetricsProvider>>& metrics_providers,
       const std::vector<variations::ActiveGroupId>& synthetic_trials,
       int64_t install_date,
       int64_t metrics_reporting_enabled_date);
@@ -116,13 +117,13 @@
   // as number of incomplete shutdowns as well as extra breakpad and debugger
   // stats.
   void RecordStabilityMetrics(
-      const std::vector<MetricsProvider*>& metrics_providers,
+      const std::vector<std::unique_ptr<MetricsProvider>>& metrics_providers,
       base::TimeDelta incremental_uptime,
       base::TimeDelta uptime);
 
   // Records general metrics based on the specified |metrics_providers|.
   void RecordGeneralMetrics(
-      const std::vector<MetricsProvider*>& metrics_providers);
+      const std::vector<std::unique_ptr<MetricsProvider>>& metrics_providers);
 
   // Stop writing to this record and generate the encoded representation.
   // None of the Record* methods can be called after this is called.
diff --git a/components/metrics/metrics_log_unittest.cc b/components/metrics/metrics_log_unittest.cc
index 6cf3c4a..0d0274a 100644
--- a/components/metrics/metrics_log_unittest.cc
+++ b/components/metrics/metrics_log_unittest.cc
@@ -11,7 +11,7 @@
 
 #include "base/base64.h"
 #include "base/macros.h"
-#include "base/memory/scoped_vector.h"
+#include "base/memory/ptr_util.h"
 #include "base/metrics/bucket_ranges.h"
 #include "base/metrics/sample_vector.h"
 #include "base/strings/string_number_conversions.h"
@@ -289,8 +289,8 @@
   synthetic_trials.push_back(kSyntheticTrials[0]);
   synthetic_trials.push_back(kSyntheticTrials[1]);
 
-  log.RecordEnvironment(std::vector<MetricsProvider*>(), synthetic_trials,
-                        kInstallDate, kEnabledDate);
+  log.RecordEnvironment(std::vector<std::unique_ptr<MetricsProvider>>(),
+                        synthetic_trials, kInstallDate, kEnabledDate);
   // Check that the system profile on the log has the correct values set.
   CheckSystemProfile(log.system_profile());
 
@@ -327,7 +327,7 @@
   {
     TestMetricsLog log(
         kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_);
-    log.RecordEnvironment(std::vector<MetricsProvider*>(),
+    log.RecordEnvironment(std::vector<std::unique_ptr<MetricsProvider>>(),
                           std::vector<variations::ActiveGroupId>(),
                           kInstallDate, kEnabledDate);
     EXPECT_FALSE(prefs_.GetString(kSystemProfilePref).empty());
@@ -353,7 +353,7 @@
     TestMetricsLog log(
         kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_);
     // Call RecordEnvironment() to record the pref again.
-    log.RecordEnvironment(std::vector<MetricsProvider*>(),
+    log.RecordEnvironment(std::vector<std::unique_ptr<MetricsProvider>>(),
                           std::vector<variations::ActiveGroupId>(),
                           kInstallDate, kEnabledDate);
   }
@@ -379,14 +379,14 @@
 
   std::vector<variations::ActiveGroupId> synthetic_trials;
 
-  log_unknown.RecordEnvironment(std::vector<MetricsProvider*>(),
+  log_unknown.RecordEnvironment(std::vector<std::unique_ptr<MetricsProvider>>(),
                                 synthetic_trials, kInstallDate, kEnabledDate);
   EXPECT_FALSE(log_unknown.system_profile().has_uma_default_state());
 
   client.set_enable_default(EnableMetricsDefault::OPT_IN);
   TestMetricsLog log_opt_in(kClientId, kSessionId, MetricsLog::ONGOING_LOG,
                             &client, &prefs_);
-  log_opt_in.RecordEnvironment(std::vector<MetricsProvider*>(),
+  log_opt_in.RecordEnvironment(std::vector<std::unique_ptr<MetricsProvider>>(),
                                synthetic_trials, kInstallDate, kEnabledDate);
   EXPECT_TRUE(log_opt_in.system_profile().has_uma_default_state());
   EXPECT_EQ(SystemProfileProto_UmaDefaultState_OPT_IN,
@@ -395,7 +395,7 @@
   client.set_enable_default(EnableMetricsDefault::OPT_OUT);
   TestMetricsLog log_opt_out(kClientId, kSessionId, MetricsLog::ONGOING_LOG,
                              &client, &prefs_);
-  log_opt_out.RecordEnvironment(std::vector<MetricsProvider*>(),
+  log_opt_out.RecordEnvironment(std::vector<std::unique_ptr<MetricsProvider>>(),
                                 synthetic_trials, kInstallDate, kEnabledDate);
   EXPECT_TRUE(log_opt_out.system_profile().has_uma_default_state());
   EXPECT_EQ(SystemProfileProto_UmaDefaultState_OPT_OUT,
@@ -404,7 +404,7 @@
   client.set_reporting_is_managed(true);
   TestMetricsLog log_managed(kClientId, kSessionId, MetricsLog::ONGOING_LOG,
                              &client, &prefs_);
-  log_managed.RecordEnvironment(std::vector<MetricsProvider*>(),
+  log_managed.RecordEnvironment(std::vector<std::unique_ptr<MetricsProvider>>(),
                                 synthetic_trials, kInstallDate, kEnabledDate);
   EXPECT_TRUE(log_managed.system_profile().has_uma_default_state());
   EXPECT_EQ(SystemProfileProto_UmaDefaultState_POLICY_FORCED_ENABLED,
@@ -419,12 +419,12 @@
                      &client,
                      &prefs_);
   TestMetricsProvider* test_provider = new TestMetricsProvider();
-  ScopedVector<MetricsProvider> metrics_providers;
-  metrics_providers.push_back(test_provider);
-  log.RecordEnvironment(metrics_providers.get(),
+  std::vector<std::unique_ptr<MetricsProvider>> metrics_providers;
+  metrics_providers.push_back(base::WrapUnique<MetricsProvider>(test_provider));
+  log.RecordEnvironment(metrics_providers,
                         std::vector<variations::ActiveGroupId>(), kInstallDate,
                         kEnabledDate);
-  log.RecordStabilityMetrics(metrics_providers.get(), base::TimeDelta(),
+  log.RecordStabilityMetrics(metrics_providers, base::TimeDelta(),
                              base::TimeDelta());
   const SystemProfileProto_Stability& stability =
       log.system_profile().stability();
@@ -449,12 +449,12 @@
   TestMetricsLog log(
       kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_);
   TestMetricsProvider* test_provider = new TestMetricsProvider();
-  ScopedVector<MetricsProvider> metrics_providers;
-  metrics_providers.push_back(test_provider);
-  log.RecordEnvironment(metrics_providers.get(),
+  std::vector<std::unique_ptr<MetricsProvider>> metrics_providers;
+  metrics_providers.push_back(base::WrapUnique<MetricsProvider>(test_provider));
+  log.RecordEnvironment(metrics_providers,
                         std::vector<variations::ActiveGroupId>(), kInstallDate,
                         kEnabledDate);
-  log.RecordStabilityMetrics(metrics_providers.get(), base::TimeDelta(),
+  log.RecordStabilityMetrics(metrics_providers, base::TimeDelta(),
                              base::TimeDelta());
   const SystemProfileProto_Stability& stability =
       log.system_profile().stability();
diff --git a/components/metrics/metrics_service.cc b/components/metrics/metrics_service.cc
index ed3a4d9..26c0d9b1 100644
--- a/components/metrics/metrics_service.cc
+++ b/components/metrics/metrics_service.cc
@@ -316,7 +316,7 @@
                    base::Unretained(client_))));
   }
 
-  for (MetricsProvider* provider : metrics_providers_)
+  for (auto& provider : metrics_providers_)
     provider->Init();
 }
 
@@ -377,7 +377,7 @@
   if (!log_manager_.current_log())
     OpenNewLog();
 
-  for (MetricsProvider* provider : metrics_providers_)
+  for (auto& provider : metrics_providers_)
     provider->OnRecordingEnabled();
 
   base::RemoveActionCallback(action_callback_);
@@ -395,7 +395,7 @@
 
   base::RemoveActionCallback(action_callback_);
 
-  for (MetricsProvider* provider : metrics_providers_)
+  for (auto& provider : metrics_providers_)
     provider->OnRecordingDisabled();
 
   PushPendingLogsToPersistentStorage();
@@ -469,7 +469,7 @@
 
   // Give providers a chance to persist histograms as part of being
   // backgrounded.
-  for (MetricsProvider* provider : metrics_providers_)
+  for (auto& provider : metrics_providers_)
     provider->OnAppEnterBackground();
 
   // At this point, there's no way of knowing when the process will be
@@ -519,7 +519,7 @@
 }
 
 void MetricsService::ClearSavedStabilityMetrics() {
-  for (MetricsProvider* provider : metrics_providers_)
+  for (auto& provider : metrics_providers_)
     provider->ClearSavedStabilityMetrics();
 
   // Reset the prefs that are managed by MetricsService/MetricsLog directly.
@@ -707,7 +707,7 @@
 
 void MetricsService::NotifyOnDidCreateMetricsLog() {
   DCHECK(thread_checker_.CalledOnValidThread());
-  for (MetricsProvider* provider : metrics_providers_)
+  for (auto& provider : metrics_providers_)
     provider->OnDidCreateMetricsLog();
 }
 
@@ -768,10 +768,10 @@
   base::TimeDelta incremental_uptime;
   base::TimeDelta uptime;
   GetUptimes(local_state_, &incremental_uptime, &uptime);
-  current_log->RecordStabilityMetrics(metrics_providers_.get(),
-                                      incremental_uptime, uptime);
+  current_log->RecordStabilityMetrics(metrics_providers_, incremental_uptime,
+                                      uptime);
 
-  current_log->RecordGeneralMetrics(metrics_providers_.get());
+  current_log->RecordGeneralMetrics(metrics_providers_);
   RecordCurrentHistograms();
   DVLOG(1) << "Generated an ongoing log.";
   log_manager_.FinishCurrentLog();
@@ -944,7 +944,7 @@
   // response) in case they do any kind of setup work in preparation for
   // the later call to RecordInitialHistogramSnapshots().
   bool has_stability_metrics = false;
-  for (MetricsProvider* provider : metrics_providers_)
+  for (auto& provider : metrics_providers_)
     has_stability_metrics |= provider->HasInitialStabilityMetrics();
 
   return has_stability_metrics;
@@ -973,7 +973,7 @@
   // Note: Some stability providers may record stability stats via histograms,
   //       so this call has to be after BeginLoggingWithLog().
   log_manager_.current_log()->RecordStabilityMetrics(
-      metrics_providers_.get(), base::TimeDelta(), base::TimeDelta());
+      metrics_providers_, base::TimeDelta(), base::TimeDelta());
   RecordCurrentStabilityHistograms();
 
   // Note: RecordGeneralMetrics() intentionally not called since this log is for
@@ -1006,9 +1006,9 @@
   // Note: Some stability providers may record stability stats via histograms,
   //       so this call has to be after BeginLoggingWithLog().
   MetricsLog* current_log = log_manager_.current_log();
-  current_log->RecordStabilityMetrics(metrics_providers_.get(),
-                                      base::TimeDelta(), base::TimeDelta());
-  current_log->RecordGeneralMetrics(metrics_providers_.get());
+  current_log->RecordStabilityMetrics(metrics_providers_, base::TimeDelta(),
+                                      base::TimeDelta());
+  current_log->RecordGeneralMetrics(metrics_providers_);
   RecordCurrentHistograms();
 
   DVLOG(1) << "Generated an initial log.";
@@ -1215,7 +1215,7 @@
   std::vector<variations::ActiveGroupId> synthetic_trials;
   GetSyntheticFieldTrialsOlderThan(log->creation_time(), &synthetic_trials);
   std::string serialized_environment = log->RecordEnvironment(
-      metrics_providers_.get(), synthetic_trials, GetInstallDate(),
+      metrics_providers_, synthetic_trials, GetInstallDate(),
       GetMetricsReportingEnabledDate());
   client_->OnEnvironmentUpdate(&serialized_environment);
 }
@@ -1229,7 +1229,7 @@
   histogram_snapshot_manager_.PrepareDeltas(
       base::StatisticsRecorder::begin(true), base::StatisticsRecorder::end(),
       base::Histogram::kNoFlags, base::Histogram::kUmaTargetedHistogramFlag);
-  for (MetricsProvider* provider : metrics_providers_)
+  for (auto& provider : metrics_providers_)
     provider->RecordHistogramSnapshots(&histogram_snapshot_manager_);
 }
 
@@ -1240,7 +1240,7 @@
   histogram_snapshot_manager_.PrepareDeltas(
       base::StatisticsRecorder::begin(true), base::StatisticsRecorder::end(),
       base::Histogram::kNoFlags, base::Histogram::kUmaStabilityHistogramFlag);
-  for (MetricsProvider* provider : metrics_providers_)
+  for (auto& provider : metrics_providers_)
     provider->RecordInitialHistogramSnapshots(&histogram_snapshot_manager_);
 }
 
diff --git a/components/metrics/metrics_service.h b/components/metrics/metrics_service.h
index 36427b1..f283b23 100644
--- a/components/metrics/metrics_service.h
+++ b/components/metrics/metrics_service.h
@@ -17,7 +17,6 @@
 
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
-#include "base/memory/scoped_vector.h"
 #include "base/memory/weak_ptr.h"
 #include "base/metrics/field_trial.h"
 #include "base/metrics/histogram_flattener.h"
@@ -380,7 +379,7 @@
   MetricsServiceClient* const client_;
 
   // Registered metrics providers.
-  ScopedVector<MetricsProvider> metrics_providers_;
+  std::vector<std::unique_ptr<MetricsProvider>> metrics_providers_;
 
   PrefService* local_state_;
 
diff --git a/components/metrics/metrics_service_unittest.cc b/components/metrics/metrics_service_unittest.cc
index f1108c7..f4a264ca 100644
--- a/components/metrics/metrics_service_unittest.cc
+++ b/components/metrics/metrics_service_unittest.cc
@@ -207,7 +207,7 @@
   // saved from a previous session.
   TestMetricsServiceClient client;
   TestMetricsLog log("client", 1, &client, GetLocalState());
-  log.RecordEnvironment(std::vector<MetricsProvider*>(),
+  log.RecordEnvironment(std::vector<std::unique_ptr<MetricsProvider>>(),
                         std::vector<variations::ActiveGroupId>(), 0, 0);
 
   // Record stability build time and version from previous session, so that
@@ -279,7 +279,7 @@
   // saved from a previous session.
   TestMetricsServiceClient client;
   TestMetricsLog log("client", 1, &client, GetLocalState());
-  log.RecordEnvironment(std::vector<MetricsProvider*>(),
+  log.RecordEnvironment(std::vector<std::unique_ptr<MetricsProvider>>(),
                         std::vector<variations::ActiveGroupId>(), 0, 0);
 
   // Record stability build time and version from previous session, so that
diff --git a/components/metrics/serialization/serialization_utils.cc b/components/metrics/serialization/serialization_utils.cc
index e9ae83e0..39290a4 100644
--- a/components/metrics/serialization/serialization_utils.cc
+++ b/components/metrics/serialization/serialization_utils.cc
@@ -8,16 +8,12 @@
 #include <stdint.h>
 #include <sys/file.h>
 
-#include <memory>
-#include <string>
 #include <utility>
-#include <vector>
 
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_file.h"
 #include "base/logging.h"
-#include "base/memory/scoped_vector.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "components/metrics/serialization/metric_sample.h"
@@ -125,7 +121,7 @@
 
 void SerializationUtils::ReadAndTruncateMetricsFromFile(
     const std::string& filename,
-    ScopedVector<MetricSample>* metrics) {
+    std::vector<std::unique_ptr<MetricSample>>* metrics) {
   struct stat stat_buf;
   int result;
 
diff --git a/components/metrics/serialization/serialization_utils.h b/components/metrics/serialization/serialization_utils.h
index 202f89c8..c741cb2f 100644
--- a/components/metrics/serialization/serialization_utils.h
+++ b/components/metrics/serialization/serialization_utils.h
@@ -7,8 +7,7 @@
 
 #include <memory>
 #include <string>
-
-#include "base/memory/scoped_vector.h"
+#include <vector>
 
 namespace metrics {
 
@@ -24,8 +23,9 @@
 std::unique_ptr<MetricSample> ParseSample(const std::string& sample);
 
 // Reads all samples from a file and truncate the file when done.
-void ReadAndTruncateMetricsFromFile(const std::string& filename,
-                                    ScopedVector<MetricSample>* metrics);
+void ReadAndTruncateMetricsFromFile(
+    const std::string& filename,
+    std::vector<std::unique_ptr<MetricSample>>* metrics);
 
 // Serializes a sample and write it to filename.
 // The format for the message is:
diff --git a/components/metrics/serialization/serialization_utils_unittest.cc b/components/metrics/serialization/serialization_utils_unittest.cc
index 9d1e3602..3af04a6 100644
--- a/components/metrics/serialization/serialization_utils_unittest.cc
+++ b/components/metrics/serialization/serialization_utils_unittest.cc
@@ -128,10 +128,10 @@
   std::unique_ptr<MetricSample> crash = MetricSample::CrashSample("test");
   SerializationUtils::WriteMetricToFile(*crash.get(), filename);
 
-  ScopedVector<MetricSample> samples;
+  std::vector<std::unique_ptr<MetricSample>> samples;
   SerializationUtils::ReadAndTruncateMetricsFromFile(filename, &samples);
   ASSERT_EQ(size_t(1), samples.size());
-  ASSERT_TRUE(samples[0] != NULL);
+  ASSERT_TRUE(samples[0].get() != nullptr);
   EXPECT_TRUE(crash->IsEqual(*samples[0]));
 }
 
@@ -151,11 +151,11 @@
   SerializationUtils::WriteMetricToFile(*lhist.get(), filename);
   SerializationUtils::WriteMetricToFile(*shist.get(), filename);
   SerializationUtils::WriteMetricToFile(*action.get(), filename);
-  ScopedVector<MetricSample> vect;
+  std::vector<std::unique_ptr<MetricSample>> vect;
   SerializationUtils::ReadAndTruncateMetricsFromFile(filename, &vect);
   ASSERT_EQ(vect.size(), size_t(5));
-  for (MetricSample* sample : vect) {
-    ASSERT_NE(nullptr, sample);
+  for (auto& sample : vect) {
+    ASSERT_NE(nullptr, sample.get());
   }
   EXPECT_TRUE(hist->IsEqual(*vect[0]));
   EXPECT_TRUE(crash->IsEqual(*vect[1]));
diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn
index 61411229..0b0da28 100644
--- a/components/search_engines/BUILD.gn
+++ b/components/search_engines/BUILD.gn
@@ -134,6 +134,7 @@
     "//components/sync:test_support_model",
     "//components/sync_preferences:test_support",
     "//components/webdata/common",
+    "//net:net",
     "//sql",
     "//testing/gmock",
     "//testing/gtest",
diff --git a/components/search_engines/default_search_manager.cc b/components/search_engines/default_search_manager.cc
index 869ce645..c448ebe 100644
--- a/components/search_engines/default_search_manager.cc
+++ b/components/search_engines/default_search_manager.cc
@@ -123,7 +123,7 @@
   g_fallback_search_engines_disabled = disabled;
 }
 
-TemplateURLData* DefaultSearchManager::GetDefaultSearchEngine(
+const TemplateURLData* DefaultSearchManager::GetDefaultSearchEngine(
     Source* source) const {
   if (default_search_controlled_by_policy_) {
     if (source)
@@ -143,8 +143,7 @@
 
   if (source)
     *source = FROM_FALLBACK;
-  return g_fallback_search_engines_disabled ?
-      NULL : fallback_default_search_.get();
+  return GetFallbackSearchEngine();
 }
 
 DefaultSearchManager::Source
@@ -154,6 +153,11 @@
   return source;
 }
 
+const TemplateURLData* DefaultSearchManager::GetFallbackSearchEngine() const {
+  return g_fallback_search_engines_disabled ? nullptr
+                                            : fallback_default_search_.get();
+}
+
 void DefaultSearchManager::SetUserSelectedDefaultSearchEngine(
     const TemplateURLData& data) {
   if (!pref_service_) {
@@ -204,7 +208,7 @@
 void DefaultSearchManager::OnOverridesPrefChanged() {
   LoadPrepopulatedDefaultSearch();
 
-  TemplateURLData* effective_data = GetDefaultSearchEngine(NULL);
+  const TemplateURLData* effective_data = GetDefaultSearchEngine(nullptr);
   if (effective_data && effective_data->prepopulate_id) {
     // A user-selected, policy-selected or fallback pre-populated engine is
     // active and may have changed with this event.
@@ -280,7 +284,7 @@
 void DefaultSearchManager::NotifyObserver() {
   if (!change_observer_.is_null()) {
     Source source = FROM_FALLBACK;
-    TemplateURLData* data = GetDefaultSearchEngine(&source);
+    const TemplateURLData* data = GetDefaultSearchEngine(&source);
     change_observer_.Run(data, source);
   }
 }
diff --git a/components/search_engines/default_search_manager.h b/components/search_engines/default_search_manager.h
index aadc6a4..94c699a0 100644
--- a/components/search_engines/default_search_manager.h
+++ b/components/search_engines/default_search_manager.h
@@ -63,9 +63,15 @@
   static const char kDisabledByPolicy[];
 
   enum Source {
+    // Default search engine chosen either from prepopulated engines set for
+    // current country or overriden from kSearchProviderOverrides preference.
     FROM_FALLBACK = 0,
+    // User selected engine.
     FROM_USER,
+    // Search engine set by extension overriding default search.
     FROM_EXTENSION,
+    // Search engine controlled externally through enterprise configuration
+    // management (e.g. windows group policy).
     FROM_POLICY,
   };
 
@@ -84,18 +90,21 @@
                                 PrefValueMap* pref_value_map);
 
   // Testing code can call this with |disabled| set to true to cause
-  // GetDefaultSearchEngine() to return NULL instead of
+  // GetDefaultSearchEngine() to return nullptr instead of
   // |fallback_default_search_| in cases where the DSE source is FROM_FALLBACK.
   static void SetFallbackSearchEnginesDisabledForTesting(bool disabled);
 
   // Gets a pointer to the current Default Search Engine. If NULL, indicates
   // that Default Search is explicitly disabled. |source|, if not NULL, will be
   // filled in with the source of the result.
-  TemplateURLData* GetDefaultSearchEngine(Source* source) const;
+  const TemplateURLData* GetDefaultSearchEngine(Source* source) const;
 
   // Gets the source of the current Default Search Engine value.
   Source GetDefaultSearchEngineSource() const;
 
+  // Returns a pointer to the fallback engine.
+  const TemplateURLData* GetFallbackSearchEngine() const;
+
   // Write default search provider data to |pref_service_|.
   void SetUserSelectedDefaultSearchEngine(const TemplateURLData& data);
 
diff --git a/components/search_engines/default_search_manager_unittest.cc b/components/search_engines/default_search_manager_unittest.cc
index 1807983..3d0bea1 100644
--- a/components/search_engines/default_search_manager_unittest.cc
+++ b/components/search_engines/default_search_manager_unittest.cc
@@ -118,7 +118,7 @@
   data.last_modified = base::Time();
 
   manager.SetUserSelectedDefaultSearchEngine(data);
-  TemplateURLData* read_data = manager.GetDefaultSearchEngine(NULL);
+  const TemplateURLData* read_data = manager.GetDefaultSearchEngine(nullptr);
   ExpectSimilar(&data, read_data);
 }
 
diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc
index 0a457d1..a65e305 100644
--- a/components/search_engines/template_url.cc
+++ b/components/search_engines/template_url.cc
@@ -160,8 +160,18 @@
       (*(param.rbegin()) == kEndParameter);
 }
 
-}  // namespace
+// Special case for search_terms_replacement_key comparison, because of
+// its special initialization in TemplateUrl constructor.
+bool SearchTermsReplacementKeysMatch(const std::string& key1,
+                                     const std::string& key2) {
+  const auto IsInstantExtended = [](const std::string& key) {
+    return (key == google_util::kInstantExtendedAPIParam) ||
+           (key == google_util::kGoogleInstantExtendedEnabledKeyFull);
+  };
+  return (key1 == key2) || (IsInstantExtended(key1) && IsInstantExtended(key2));
+}
 
+}  // namespace
 
 // TemplateURLRef::SearchTermsArgs --------------------------------------------
 
@@ -605,7 +615,7 @@
   } else if (parameter == "google:instantExtendedEnabledParameter") {
     replacements->push_back(Replacement(GOOGLE_INSTANT_EXTENDED_ENABLED,
                                         start));
-  } else if (parameter == "google:instantExtendedEnabledKey") {
+  } else if (parameter == google_util::kGoogleInstantExtendedEnabledKey) {
     url->insert(start, google_util::kInstantExtendedAPIParam);
   } else if (parameter == "google:iOSSearchLanguage") {
     replacements->push_back(Replacement(GOOGLE_IOS_SEARCH_LANGUAGE, start));
@@ -1159,9 +1169,8 @@
   SetPrepopulateId(data_.prepopulate_id);
 
   if (data_.search_terms_replacement_key ==
-      "{google:instantExtendedEnabledKey}") {
+      google_util::kGoogleInstantExtendedEnabledKeyFull)
     data_.search_terms_replacement_key = google_util::kInstantExtendedAPIParam;
-  }
 }
 
 TemplateURL::~TemplateURL() {
@@ -1206,23 +1215,23 @@
     return !t_url && !data;
 
   return (t_url->short_name() == data->short_name()) &&
-      t_url->HasSameKeywordAs(*data, search_terms_data) &&
-      (t_url->url() == data->url()) &&
-      (t_url->suggestions_url() == data->suggestions_url) &&
-      (t_url->instant_url() == data->instant_url) &&
-      (t_url->image_url() == data->image_url) &&
-      (t_url->new_tab_url() == data->new_tab_url) &&
-      (t_url->search_url_post_params() == data->search_url_post_params) &&
-      (t_url->suggestions_url_post_params() ==
+         t_url->HasSameKeywordAs(*data, search_terms_data) &&
+         (t_url->url() == data->url()) &&
+         (t_url->suggestions_url() == data->suggestions_url) &&
+         (t_url->instant_url() == data->instant_url) &&
+         (t_url->image_url() == data->image_url) &&
+         (t_url->new_tab_url() == data->new_tab_url) &&
+         (t_url->search_url_post_params() == data->search_url_post_params) &&
+         (t_url->suggestions_url_post_params() ==
           data->suggestions_url_post_params) &&
-      (t_url->instant_url_post_params() == data->instant_url_post_params) &&
-      (t_url->image_url_post_params() == data->image_url_post_params) &&
-      (t_url->favicon_url() == data->favicon_url) &&
-      (t_url->safe_for_autoreplace() == data->safe_for_autoreplace) &&
-      (t_url->input_encodings() == data->input_encodings) &&
-      (t_url->alternate_urls() == data->alternate_urls) &&
-      (t_url->search_terms_replacement_key() ==
-          data->search_terms_replacement_key);
+         (t_url->instant_url_post_params() == data->instant_url_post_params) &&
+         (t_url->image_url_post_params() == data->image_url_post_params) &&
+         (t_url->favicon_url() == data->favicon_url) &&
+         (t_url->safe_for_autoreplace() == data->safe_for_autoreplace) &&
+         (t_url->input_encodings() == data->input_encodings) &&
+         (t_url->alternate_urls() == data->alternate_urls) &&
+         SearchTermsReplacementKeysMatch(t_url->search_terms_replacement_key(),
+                                         data->search_terms_replacement_key);
 }
 
 base::string16 TemplateURL::AdjustedShortNameForLocaleDirection() const {
diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc
index 0e77d27..be5527fc 100644
--- a/components/search_engines/template_url_service.cc
+++ b/components/search_engines/template_url_service.cc
@@ -692,6 +692,23 @@
     // ApplyDefaultSearchChange will notify observers once it is done.
     ApplyDefaultSearchChange(new_dse, source);
   } else {
+    // Set fallback engine as user selected, because repair is considered a user
+    // action and we are expected to sync new fallback engine to other devices.
+    const TemplateURLData* fallback_engine_data =
+        default_search_manager_.GetFallbackSearchEngine();
+    if (fallback_engine_data) {
+      TemplateURL* fallback_engine =
+          FindPrepopulatedTemplateURL(fallback_engine_data->prepopulate_id);
+      // The fallback engine is created from built-in/override data that should
+      // always have a prepopulate ID, so this engine should always exist after
+      // a repair."
+      DCHECK(fallback_engine);
+      // Write the fallback engine's GUID to prefs, which will cause
+      // OnSyncedDefaultSearchProviderGUIDChanged() to set it as the new
+      // user-selected engine.
+      prefs_->SetString(prefs::kSyncedDefaultSearchProviderGUID,
+                        fallback_engine->sync_guid());
+    }
     NotifyObservers();
   }
 }
@@ -1391,7 +1408,7 @@
   }
 
   DefaultSearchManager::Source source = DefaultSearchManager::FROM_USER;
-  TemplateURLData* dse =
+  const TemplateURLData* dse =
       default_search_manager_.GetDefaultSearchEngine(&source);
   ApplyDefaultSearchChange(dse, source);
 
@@ -1937,6 +1954,11 @@
         source == DefaultSearchManager::FROM_POLICY ? data : nullptr);
   }
 
+  // |default_search_provider_source_| must be set before calling
+  // UpdateNoNotify(), since that function needs to know the source of the
+  // update in question.
+  default_search_provider_source_ = source;
+
   if (!data) {
     default_search_provider_ = nullptr;
   } else if (source == DefaultSearchManager::FROM_EXTENSION) {
@@ -1987,11 +2009,8 @@
       prefs_->SetString(prefs::kSyncedDefaultSearchProviderGUID,
                         default_search_provider_->sync_guid());
     }
-
   }
 
-  default_search_provider_source_ = source;
-
   bool changed = default_search_provider_ != previous_default_search_engine;
   if (changed)
     RequestGoogleURLTrackerServerCheckIfNecessary();
diff --git a/components/search_engines/template_url_unittest.cc b/components/search_engines/template_url_unittest.cc
index 47630f3..170807f1 100644
--- a/components/search_engines/template_url_unittest.cc
+++ b/components/search_engines/template_url_unittest.cc
@@ -10,12 +10,14 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
+#include "components/google/core/browser/google_util.h"
 #include "components/metrics/proto/omnibox_event.pb.h"
 #include "components/metrics/proto/omnibox_input_type.pb.h"
 #include "components/search_engines/search_engines_switches.h"
 #include "components/search_engines/search_terms_data.h"
 #include "components/search_engines/template_url.h"
 #include "components/search_engines/testing_search_terms_data.h"
+#include "net/base/url_util.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 using base::ASCIIToUTF16;
@@ -1868,3 +1870,43 @@
 
   search_terms_data_.set_google_base_url("http://www.google.com/");
 }
+
+// search_terms_replacement_key param of TemplateURLData with value of
+// "{google:instantExtendedEnabledKey}" is replaced inside TemplateUrl
+// constructor so must be handled specially inside MatchesData.
+// Test that TemplateURL object created with such param matches correctly its
+// TemplateURLData.
+TEST_F(TemplateURLTest, MatchesData) {
+  TemplateURLData data;
+  data.search_terms_replacement_key =
+      google_util::kGoogleInstantExtendedEnabledKeyFull;
+  TemplateURL url(data);
+  EXPECT_NE(google_util::kGoogleInstantExtendedEnabledKeyFull,
+            url.search_terms_replacement_key());
+  EXPECT_TRUE(TemplateURL::MatchesData(&url, &data, search_terms_data_));
+}
+
+// Test for correct replacement of GoogleInstantExtendedEnabledKey param.
+TEST_F(TemplateURLTest, GoogleInstantExtendedEnabledReplacement) {
+  TemplateURLData data;
+  data.SetURL(std::string("https://www.google.com?") +
+              google_util::kGoogleInstantExtendedEnabledKeyFull +
+              "&q={searchTerms}");
+  data.SetShortName(ASCIIToUTF16("Google"));
+  data.SetKeyword(ASCIIToUTF16("google.com"));
+  data.search_terms_replacement_key =
+      google_util::kGoogleInstantExtendedEnabledKeyFull;
+  TemplateURL turl(data);
+  EXPECT_TRUE(TemplateURL::MatchesData(&turl, &data, search_terms_data_));
+  // Expect that replacement of search_terms_replacement_key in TemplateURL
+  // constructor is correct.
+  EXPECT_EQ(google_util::kInstantExtendedAPIParam,
+            turl.search_terms_replacement_key());
+  // Expect that replacement of {google:instantExtendedEnabledKey} in search url
+  // is correct.
+  GURL search_generated = turl.GenerateSearchURL(search_terms_data_);
+  EXPECT_TRUE(turl.HasSearchTermsReplacementKey(search_generated));
+  net::QueryIterator it(search_generated);
+  ASSERT_FALSE(it.IsAtEnd());
+  EXPECT_EQ(google_util::kInstantExtendedAPIParam, it.GetKey());
+}
diff --git a/content/browser/renderer_host/media/audio_output_authorization_handler.cc b/content/browser/renderer_host/media/audio_output_authorization_handler.cc
index cd9f959..3ed7c30 100644
--- a/content/browser/renderer_host/media/audio_output_authorization_handler.cc
+++ b/content/browser/renderer_host/media/audio_output_authorization_handler.cc
@@ -10,6 +10,7 @@
 #include "content/browser/renderer_host/media/audio_input_device_manager.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/media_device_id.h"
+#include "media/audio/audio_system.h"
 #include "media/base/limits.h"
 
 namespace {
@@ -34,26 +35,16 @@
              : media::AudioParameters::UnavailableDeviceParams();
 }
 
-media::AudioParameters GetDeviceParametersOnDeviceThread(
-    media::AudioManager* audio_manager,
-    const std::string& unique_id) {
-  DCHECK(audio_manager->GetTaskRunner()->BelongsToCurrentThread());
-
-  return media::AudioDeviceDescription::IsDefaultDevice(unique_id)
-             ? audio_manager->GetDefaultOutputStreamParameters()
-             : audio_manager->GetOutputStreamParameters(unique_id);
-}
-
 }  // namespace
 
 namespace content {
 
 AudioOutputAuthorizationHandler::AudioOutputAuthorizationHandler(
-    media::AudioManager* audio_manager,
+    media::AudioSystem* audio_system,
     MediaStreamManager* media_stream_manager,
     int render_process_id,
     const std::string& salt)
-    : audio_manager_(audio_manager),
+    : audio_system_(audio_system),
       media_stream_manager_(media_stream_manager),
       permission_checker_(base::MakeUnique<MediaDevicesPermissionChecker>()),
       render_process_id_(render_process_id),
@@ -191,18 +182,8 @@
     const std::string& raw_device_id) const {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   DCHECK(!raw_device_id.empty());
-  base::PostTaskAndReplyWithResult(
-      // Note: In the case of a shutdown, the task to delete |audio_manager_| is
-      // posted to the audio thread after the IO thread is stopped, so the task
-      // to delete the audio manager hasn't been posted yet. This means that
-      // unretained is safe here.
-      // Mac is a special case. Since the audio manager lives on the UI thread
-      // on Mac, this task is posted to the UI thread, but tasks posted to the
-      // UI task runner will be ignored when the shutdown has progressed to
-      // deleting the audio manager, so this is still safe.
-      audio_manager_->GetTaskRunner(), FROM_HERE,
-      base::Bind(&GetDeviceParametersOnDeviceThread,
-                 base::Unretained(audio_manager_), raw_device_id),
+  audio_system_->GetOutputStreamParameters(
+      raw_device_id,
       base::Bind(&AudioOutputAuthorizationHandler::DeviceParametersReceived,
                  weak_factory_.GetWeakPtr(), std::move(cb), false,
                  raw_device_id));
diff --git a/content/browser/renderer_host/media/audio_output_authorization_handler.h b/content/browser/renderer_host/media/audio_output_authorization_handler.h
index c0b5640..d7c99fb5 100644
--- a/content/browser/renderer_host/media/audio_output_authorization_handler.h
+++ b/content/browser/renderer_host/media/audio_output_authorization_handler.h
@@ -14,10 +14,13 @@
 #include "content/browser/media/media_devices_permission_checker.h"
 #include "content/browser/renderer_host/media/media_stream_manager.h"
 #include "media/audio/audio_device_description.h"
-#include "media/audio/audio_manager.h"
 #include "media/base/audio_parameters.h"
 #include "media/base/output_device_info.h"
 
+namespace media {
+class AudioSystem;
+}
+
 namespace content {
 
 // This class, which lives on the IO thread, handles the logic of an IPC device
@@ -40,7 +43,7 @@
                           const media::AudioParameters& params,
                           const std::string& raw_device_id)>;
 
-  AudioOutputAuthorizationHandler(media::AudioManager* audio_manager,
+  AudioOutputAuthorizationHandler(media::AudioSystem* audio_system,
                                   MediaStreamManager* media_stream_manager,
                                   int render_process_id_,
                                   const std::string& salt);
@@ -84,7 +87,7 @@
       const std::string& raw_device_id,
       const media::AudioParameters& output_params) const;
 
-  media::AudioManager* audio_manager_;
+  media::AudioSystem* audio_system_;
   MediaStreamManager* const media_stream_manager_;
   std::unique_ptr<MediaDevicesPermissionChecker> permission_checker_;
   const int render_process_id_;
diff --git a/content/browser/renderer_host/media/audio_output_authorization_handler_unittest.cc b/content/browser/renderer_host/media/audio_output_authorization_handler_unittest.cc
index f82855a9..4e34099 100644
--- a/content/browser/renderer_host/media/audio_output_authorization_handler_unittest.cc
+++ b/content/browser/renderer_host/media/audio_output_authorization_handler_unittest.cc
@@ -18,6 +18,7 @@
 #include "content/public/test/test_browser_context.h"
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "media/audio/audio_device_description.h"
+#include "media/audio/audio_system_impl.h"
 #include "media/audio/fake_audio_log_factory.h"
 #include "media/audio/fake_audio_manager.h"
 #include "media/base/media_switches.h"
@@ -66,6 +67,7 @@
     audio_manager_.reset(new media::FakeAudioManager(
         audio_thread_->task_runner(), audio_thread_->worker_task_runner(),
         &log_factory_));
+    audio_system_ = media::AudioSystemImpl::Create(audio_manager_.get());
     media_stream_manager_ =
         base::MakeUnique<MediaStreamManager>(audio_manager_.get());
     // Make sure everything is done initializing:
@@ -79,7 +81,7 @@
     return media_stream_manager_.get();
   }
 
-  media::AudioManager* GetAudioManager() { return audio_manager_.get(); }
+  media::AudioSystem* GetAudioSystem() { return audio_system_.get(); }
 
   void SyncWithAllThreads() {
     // New tasks might be posted while we are syncing, but in
@@ -140,6 +142,7 @@
   std::unique_ptr<AudioManagerThread> audio_thread_;
   media::FakeAudioLogFactory log_factory_;
   media::ScopedAudioManagerPtr audio_manager_;
+  std::unique_ptr<media::AudioSystem> audio_system_;
 
   DISALLOW_COPY_AND_ASSIGN(AudioOutputAuthorizationHandlerTest);
 };
@@ -151,7 +154,7 @@
       .Times(1);
   std::unique_ptr<AudioOutputAuthorizationHandler> handler =
       base::MakeUnique<AudioOutputAuthorizationHandler>(
-          GetAudioManager(), GetMediaStreamManager(), kRenderProcessId, kSalt);
+          GetAudioSystem(), GetMediaStreamManager(), kRenderProcessId, kSalt);
 
   BrowserThread::PostTask(
       BrowserThread::IO, FROM_HERE,
@@ -172,7 +175,7 @@
       .Times(1);
   std::unique_ptr<AudioOutputAuthorizationHandler> handler =
       base::MakeUnique<AudioOutputAuthorizationHandler>(
-          GetAudioManager(), GetMediaStreamManager(), kRenderProcessId, kSalt);
+          GetAudioSystem(), GetMediaStreamManager(), kRenderProcessId, kSalt);
 
   BrowserThread::PostTask(
       BrowserThread::IO, FROM_HERE,
@@ -194,7 +197,7 @@
   MockAuthorizationCallback listener;
   std::unique_ptr<AudioOutputAuthorizationHandler> handler =
       base::MakeUnique<AudioOutputAuthorizationHandler>(
-          GetAudioManager(), GetMediaStreamManager(), kRenderProcessId, kSalt);
+          GetAudioSystem(), GetMediaStreamManager(), kRenderProcessId, kSalt);
   BrowserThread::PostTask(
       BrowserThread::IO, FROM_HERE,
       base::Bind(
@@ -225,7 +228,7 @@
   MockAuthorizationCallback listener;
   std::unique_ptr<AudioOutputAuthorizationHandler> handler =
       base::MakeUnique<AudioOutputAuthorizationHandler>(
-          GetAudioManager(), GetMediaStreamManager(), kRenderProcessId, kSalt);
+          GetAudioSystem(), GetMediaStreamManager(), kRenderProcessId, kSalt);
   BrowserThread::PostTask(
       BrowserThread::IO, FROM_HERE,
       base::Bind(
@@ -255,7 +258,7 @@
   MockAuthorizationCallback listener;
   std::unique_ptr<AudioOutputAuthorizationHandler> handler =
       base::MakeUnique<AudioOutputAuthorizationHandler>(
-          GetAudioManager(), GetMediaStreamManager(), RPH->GetID(), kSalt);
+          GetAudioSystem(), GetMediaStreamManager(), RPH->GetID(), kSalt);
   EXPECT_EQ(RPH->bad_msg_count(), 0);
 
   EXPECT_CALL(listener,
@@ -290,7 +293,7 @@
   MockAuthorizationCallback listener;
   std::unique_ptr<AudioOutputAuthorizationHandler> handler =
       base::MakeUnique<AudioOutputAuthorizationHandler>(
-          GetAudioManager(), GetMediaStreamManager(), RPH->GetID(), kSalt);
+          GetAudioSystem(), GetMediaStreamManager(), RPH->GetID(), kSalt);
 
   EXPECT_EQ(RPH->bad_msg_count(), 0);
   EXPECT_CALL(listener, Run(_, _, _, _)).Times(0);
@@ -314,7 +317,7 @@
   MockAuthorizationCallback listener;
   std::unique_ptr<AudioOutputAuthorizationHandler> handler =
       base::MakeUnique<AudioOutputAuthorizationHandler>(
-          GetAudioManager(), GetMediaStreamManager(), kRenderProcessId, kSalt);
+          GetAudioSystem(), GetMediaStreamManager(), kRenderProcessId, kSalt);
 
   EXPECT_CALL(listener,
               Run(media::OUTPUT_DEVICE_STATUS_OK, false, _, kDefaultDeviceId))
diff --git a/content/browser/renderer_host/media/audio_renderer_host.cc b/content/browser/renderer_host/media/audio_renderer_host.cc
index 6a99670..0f4f84d7 100644
--- a/content/browser/renderer_host/media/audio_renderer_host.cc
+++ b/content/browser/renderer_host/media/audio_renderer_host.cc
@@ -61,6 +61,7 @@
 
 AudioRendererHost::AudioRendererHost(int render_process_id,
                                      media::AudioManager* audio_manager,
+                                     media::AudioSystem* audio_system,
                                      AudioMirroringManager* mirroring_manager,
                                      MediaStreamManager* media_stream_manager,
                                      const std::string& salt)
@@ -71,7 +72,7 @@
       media_stream_manager_(media_stream_manager),
       salt_(salt),
       validate_render_frame_id_function_(&ValidateRenderFrameId),
-      authorization_handler_(audio_manager_,
+      authorization_handler_(audio_system,
                              media_stream_manager,
                              render_process_id_,
                              salt) {
diff --git a/content/browser/renderer_host/media/audio_renderer_host.h b/content/browser/renderer_host/media/audio_renderer_host.h
index 0d0ca36..dda8b38 100644
--- a/content/browser/renderer_host/media/audio_renderer_host.h
+++ b/content/browser/renderer_host/media/audio_renderer_host.h
@@ -60,6 +60,7 @@
 namespace media {
 class AudioManager;
 class AudioParameters;
+class AudioSystem;
 }
 
 namespace content {
@@ -74,6 +75,7 @@
   // Called from UI thread from the owner of this object.
   AudioRendererHost(int render_process_id,
                     media::AudioManager* audio_manager,
+                    media::AudioSystem* audio_system,
                     AudioMirroringManager* mirroring_manager,
                     MediaStreamManager* media_stream_manager,
                     const std::string& salt);
diff --git a/content/browser/renderer_host/media/audio_renderer_host_unittest.cc b/content/browser/renderer_host/media/audio_renderer_host_unittest.cc
index 41d6ffb36..8d44ee6 100644
--- a/content/browser/renderer_host/media/audio_renderer_host_unittest.cc
+++ b/content/browser/renderer_host/media/audio_renderer_host_unittest.cc
@@ -26,6 +26,7 @@
 #include "content/public/test/test_browser_context.h"
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "ipc/ipc_message_utils.h"
+#include "media/audio/audio_system_impl.h"
 #include "media/audio/fake_audio_log_factory.h"
 #include "media/audio/fake_audio_manager.h"
 #include "media/base/bind_to_current_loop.h"
@@ -128,11 +129,13 @@
   MockAudioRendererHost(base::RunLoop* auth_run_loop,
                         int render_process_id,
                         media::AudioManager* audio_manager,
+                        media::AudioSystem* audio_system,
                         AudioMirroringManager* mirroring_manager,
                         MediaStreamManager* media_stream_manager,
                         const std::string& salt)
       : AudioRendererHost(render_process_id,
                           audio_manager,
+                          audio_system,
                           mirroring_manager,
                           media_stream_manager,
                           salt),
@@ -235,13 +238,15 @@
         audio_manager_(base::MakeUnique<FakeAudioManagerWithAssociations>(
             base::ThreadTaskRunnerHandle::Get(),
             log_factory.get())),
+        audio_system_(media::AudioSystemImpl::Create(audio_manager_.get())),
         render_process_host_(&browser_context_, &auth_run_loop_) {
     base::CommandLine::ForCurrentProcess()->AppendSwitch(
         switches::kUseFakeDeviceForMediaStream);
     media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get()));
     host_ = new MockAudioRendererHost(
         &auth_run_loop_, render_process_host_.GetID(), audio_manager_.get(),
-        &mirroring_manager_, media_stream_manager_.get(), kSalt);
+        audio_system_.get(), &mirroring_manager_, media_stream_manager_.get(),
+        kSalt);
 
     // Simulate IPC channel connected.
     host_->set_peer_process_for_testing(base::Process::Current());
@@ -511,6 +516,7 @@
   TestBrowserContext browser_context_;
   std::unique_ptr<media::FakeAudioLogFactory> log_factory;
   std::unique_ptr<FakeAudioManagerWithAssociations> audio_manager_;
+  std::unique_ptr<media::AudioSystem> audio_system_;
   MockAudioMirroringManager mirroring_manager_;
   base::RunLoop auth_run_loop_;
   MockRenderProcessHostWithSignaling render_process_host_;
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 84dcc3b56..05193e9 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1089,8 +1089,8 @@
       BrowserMainLoop::GetInstance()->user_input_monitor());
   AddFilter(audio_input_renderer_host_.get());
   audio_renderer_host_ = new AudioRendererHost(
-      GetID(), audio_manager, AudioMirroringManager::GetInstance(),
-      media_stream_manager,
+      GetID(), audio_manager, BrowserMainLoop::GetInstance()->audio_system(),
+      AudioMirroringManager::GetInstance(), media_stream_manager,
       browser_context->GetResourceContext()->GetMediaDeviceIDSalt());
   AddFilter(audio_renderer_host_.get());
   AddFilter(
diff --git a/ios/chrome/today_extension/today_metrics_logger.mm b/ios/chrome/today_extension/today_metrics_logger.mm
index bb2422b..17b47bc 100644
--- a/ios/chrome/today_extension/today_metrics_logger.mm
+++ b/ios/chrome/today_extension/today_metrics_logger.mm
@@ -20,6 +20,7 @@
 #include "components/metrics/metrics_log.h"
 #include "components/metrics/metrics_log_uploader.h"
 #include "components/metrics/metrics_pref_names.h"
+#include "components/metrics/metrics_provider.h"
 #include "components/metrics/metrics_service_client.h"
 #include "components/metrics/net/version_utils.h"
 #include "components/prefs/json_pref_store.h"
@@ -247,10 +248,10 @@
                                  metrics_service_client_.get(),
                                  pref_service_.get()));
 
-  log_->RecordEnvironment(std::vector<metrics::MetricsProvider*>(),
-                          std::vector<variations::ActiveGroupId>(),
-                          [install_date longLongValue],
-                          [enabled_date longLongValue]);
+  log_->RecordEnvironment(
+      std::vector<std::unique_ptr<metrics::MetricsProvider>>(),
+      std::vector<variations::ActiveGroupId>(), [install_date longLongValue],
+      [enabled_date longLongValue]);
 
   return true;
 }
diff --git a/media/audio/audio_system.h b/media/audio/audio_system.h
index a11b030..76319cc 100644
--- a/media/audio/audio_system.h
+++ b/media/audio/audio_system.h
@@ -25,11 +25,26 @@
 
   virtual ~AudioSystem();
 
-  // Callback will receive invalid parameters if the device is not found.
+  // Callback may receive invalid parameters, it means the specified device is
+  // not found. This is best-effort: valid parameters do not guarantee existance
+  // of the device.
+  // TODO(olka,tommi): fix all AudioManager implementations to return invalid
+  // parameters if the device is not found.
   virtual void GetInputStreamParameters(
       const std::string& device_id,
       OnAudioParamsCallback on_params_cb) const = 0;
 
+  // If media::AudioDeviceDescription::IsDefaultDevice(device_id) is true,
+  // callback will receive the parameters of the default output device.
+  // Callback may receive invalid parameters, it means the specified device is
+  // not found. This is best-effort: valid parameters do not guarantee existance
+  // of the device.
+  // TODO(olka,tommi): fix all AudioManager implementations to return invalid
+  // parameters if the device is not found.
+  virtual void GetOutputStreamParameters(
+      const std::string& device_id,
+      OnAudioParamsCallback on_params_cb) const = 0;
+
   virtual void HasInputDevices(OnBoolCallback on_has_devices_cb) const = 0;
 
   // Must not be used for anything but stream creation.
diff --git a/media/audio/audio_system_impl.cc b/media/audio/audio_system_impl.cc
index fdffa70f..a6c51a6 100644
--- a/media/audio/audio_system_impl.cc
+++ b/media/audio/audio_system_impl.cc
@@ -7,6 +7,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/single_thread_task_runner.h"
 #include "base/task_runner_util.h"
+#include "media/audio/audio_device_description.h"
 #include "media/audio/audio_manager.h"
 
 // Using base::Unretained for |audio_manager_| is safe since it is deleted after
@@ -21,13 +22,29 @@
   DCHECK(audio_manager->GetTaskRunner()->BelongsToCurrentThread());
 
   // TODO(olka): remove this when AudioManager::GetInputStreamParameters()
-  // works this way on all the platforms.
+  // returns invalid parameters if the device is not found.
   if (!audio_manager->HasAudioInputDevices())
     return AudioParameters();
 
   return audio_manager->GetInputStreamParameters(device_id);
 }
 
+AudioParameters GetOutputParametersOnDeviceThread(
+    AudioManager* audio_manager,
+    const std::string& device_id) {
+  DCHECK(audio_manager->GetTaskRunner()->BelongsToCurrentThread());
+
+  // TODO(olka): remove this when
+  // AudioManager::Get[Default]OutputStreamParameters() returns invalid
+  // parameters if the device is not found.
+  if (!audio_manager->HasAudioOutputDevices())
+    return AudioParameters();
+
+  return media::AudioDeviceDescription::IsDefaultDevice(device_id)
+             ? audio_manager->GetDefaultOutputStreamParameters()
+             : audio_manager->GetOutputStreamParameters(device_id);
+}
+
 }  // namespace
 
 AudioSystemImpl::AudioSystemImpl(AudioManager* audio_manager)
@@ -62,6 +79,22 @@
       std::move(on_params_cb));
 }
 
+void AudioSystemImpl::GetOutputStreamParameters(
+    const std::string& device_id,
+    OnAudioParamsCallback on_params_cb) const {
+  if (GetTaskRunner()->BelongsToCurrentThread()) {
+    GetTaskRunner()->PostTask(
+        FROM_HERE, base::Bind(on_params_cb, GetOutputParametersOnDeviceThread(
+                                                audio_manager_, device_id)));
+    return;
+  }
+  base::PostTaskAndReplyWithResult(
+      GetTaskRunner(), FROM_HERE,
+      base::Bind(&GetOutputParametersOnDeviceThread,
+                 base::Unretained(audio_manager_), device_id),
+      std::move(on_params_cb));
+}
+
 void AudioSystemImpl::HasInputDevices(OnBoolCallback on_has_devices_cb) const {
   if (GetTaskRunner()->BelongsToCurrentThread()) {
     GetTaskRunner()->PostTask(
diff --git a/media/audio/audio_system_impl.h b/media/audio/audio_system_impl.h
index e7efd10..dd9342c 100644
--- a/media/audio/audio_system_impl.h
+++ b/media/audio/audio_system_impl.h
@@ -24,7 +24,13 @@
   void GetInputStreamParameters(
       const std::string& device_id,
       OnAudioParamsCallback on_params_cb) const override;
+
+  void GetOutputStreamParameters(
+      const std::string& device_id,
+      OnAudioParamsCallback on_params_cb) const override;
+
   void HasInputDevices(OnBoolCallback on_has_devices_cb) const override;
+
   AudioManager* GetAudioManager() const override;
 
  protected:
diff --git a/media/audio/audio_system_impl_unittest.cc b/media/audio/audio_system_impl_unittest.cc
index 04f6f64..ba4de57 100644
--- a/media/audio/audio_system_impl_unittest.cc
+++ b/media/audio/audio_system_impl_unittest.cc
@@ -16,12 +16,31 @@
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+namespace {
+const char* kNonDefaultDeviceId = "non-default-device-id";
+}
 namespace media {
 
 class AudioSystemImplTest : public testing::TestWithParam<bool> {
  public:
   AudioSystemImplTest()
-      : use_audio_thread_(GetParam()), audio_thread_("AudioSystemThread") {
+      : use_audio_thread_(GetParam()),
+        audio_thread_("AudioSystemThread"),
+        input_params_(AudioParameters::AUDIO_PCM_LINEAR,
+                      CHANNEL_LAYOUT_MONO,
+                      AudioParameters::kTelephoneSampleRate,
+                      16,
+                      AudioParameters::kTelephoneSampleRate / 10),
+        output_params_(AudioParameters::AUDIO_PCM_LINEAR,
+                       CHANNEL_LAYOUT_MONO,
+                       AudioParameters::kTelephoneSampleRate,
+                       16,
+                       AudioParameters::kTelephoneSampleRate / 20),
+        default_output_params_(AudioParameters::AUDIO_PCM_LINEAR,
+                               CHANNEL_LAYOUT_MONO,
+                               AudioParameters::kTelephoneSampleRate,
+                               16,
+                               AudioParameters::kTelephoneSampleRate / 30) {
     if (use_audio_thread_) {
       audio_thread_.StartAndWaitForTesting();
       audio_manager_.reset(
@@ -30,8 +49,11 @@
       audio_manager_.reset(new media::MockAudioManager(
           base::ThreadTaskRunnerHandle::Get().get()));
     }
-    audio_manager_->SetInputStreamParameters(
-        media::AudioParameters::UnavailableDeviceParams());
+
+    audio_manager_->SetInputStreamParameters(input_params_);
+    audio_manager_->SetOutputStreamParameters(output_params_);
+    audio_manager_->SetDefaultOutputStreamParameters(default_output_params_);
+
     audio_system_ = media::AudioSystemImpl::Create(audio_manager_.get());
     EXPECT_EQ(AudioSystem::Get(), audio_system_.get());
   }
@@ -52,12 +74,17 @@
     AudioParametersReceived();
   }
 
+  void OnHasInputDevices(bool result) {
+    EXPECT_TRUE(thread_checker_.CalledOnValidThread());
+    HasInputDevicesCallback(result);
+  }
+
   void WaitForCallback() {
     if (!use_audio_thread_) {
       base::RunLoop().RunUntilIdle();
       return;
     }
-    media::WaitableMessageLoopEvent event;
+    WaitableMessageLoopEvent event;
     audio_thread_.task_runner()->PostTaskAndReply(
         FROM_HERE, base::Bind(&base::DoNothing), event.GetClosure());
     // Runs the loop and waits for the |audio_thread_| to call event's closure,
@@ -77,6 +104,9 @@
   base::Thread audio_thread_;
   MockAudioManager::UniquePtr audio_manager_;
   std::unique_ptr<media::AudioSystem> audio_system_;
+  AudioParameters input_params_;
+  AudioParameters output_params_;
+  AudioParameters default_output_params_;
 };
 
 TEST_P(AudioSystemImplTest, GetInputStreamParameters) {
@@ -84,7 +114,7 @@
   audio_system_->GetInputStreamParameters(
       media::AudioDeviceDescription::kDefaultDeviceId,
       base::Bind(&AudioSystemImplTest::OnAudioParams, base::Unretained(this),
-                 media::AudioParameters::UnavailableDeviceParams()));
+                 input_params_));
   WaitForCallback();
 }
 
@@ -98,10 +128,44 @@
   WaitForCallback();
 }
 
+TEST_P(AudioSystemImplTest, GetStreamParameters) {
+  EXPECT_CALL(*this, AudioParametersReceived());
+  audio_system_->GetOutputStreamParameters(
+      kNonDefaultDeviceId, base::Bind(&AudioSystemImplTest::OnAudioParams,
+                                      base::Unretained(this), output_params_));
+  WaitForCallback();
+}
+
+TEST_P(AudioSystemImplTest, GetDefaultOutputStreamParameters) {
+  EXPECT_CALL(*this, AudioParametersReceived());
+  audio_system_->GetOutputStreamParameters(
+      media::AudioDeviceDescription::kDefaultDeviceId,
+      base::Bind(&AudioSystemImplTest::OnAudioParams, base::Unretained(this),
+                 default_output_params_));
+  WaitForCallback();
+}
+
+TEST_P(AudioSystemImplTest, GetOutputStreamParametersNoDevice) {
+  audio_manager_->SetHasOutputDevices(false);
+  EXPECT_CALL(*this, AudioParametersReceived()).Times(2);
+
+  audio_system_->GetOutputStreamParameters(
+      media::AudioDeviceDescription::kDefaultDeviceId,
+      base::Bind(&AudioSystemImplTest::OnAudioParams, base::Unretained(this),
+                 media::AudioParameters()));
+  WaitForCallback();
+
+  audio_system_->GetOutputStreamParameters(
+      kNonDefaultDeviceId,
+      base::Bind(&AudioSystemImplTest::OnAudioParams, base::Unretained(this),
+                 media::AudioParameters()));
+  WaitForCallback();
+}
+
 TEST_P(AudioSystemImplTest, HasInputDevices) {
   EXPECT_CALL(*this, HasInputDevicesCallback(true));
   audio_system_->HasInputDevices(base::Bind(
-      &AudioSystemImplTest::HasInputDevicesCallback, base::Unretained(this)));
+      &AudioSystemImplTest::OnHasInputDevices, base::Unretained(this)));
   WaitForCallback();
 }
 
@@ -109,7 +173,7 @@
   audio_manager_->SetHasInputDevices(false);
   EXPECT_CALL(*this, HasInputDevicesCallback(false));
   audio_system_->HasInputDevices(base::Bind(
-      &AudioSystemImplTest::HasInputDevicesCallback, base::Unretained(this)));
+      &AudioSystemImplTest::OnHasInputDevices, base::Unretained(this)));
   WaitForCallback();
 }
 
diff --git a/media/audio/mock_audio_manager.cc b/media/audio/mock_audio_manager.cc
index 931cdbb7..9dcb9e5 100644
--- a/media/audio/mock_audio_manager.cc
+++ b/media/audio/mock_audio_manager.cc
@@ -32,7 +32,7 @@
 
 bool MockAudioManager::HasAudioOutputDevices() {
   DCHECK(GetTaskRunner()->BelongsToCurrentThread());
-  return true;
+  return has_output_devices_;
 }
 
 bool MockAudioManager::HasAudioInputDevices() {
@@ -90,13 +90,13 @@
 }
 
 AudioParameters MockAudioManager::GetDefaultOutputStreamParameters() {
-  return AudioParameters();
+  return default_output_params_;
 }
 
 AudioParameters MockAudioManager::GetOutputStreamParameters(
       const std::string& device_id) {
   DCHECK(GetTaskRunner()->BelongsToCurrentThread());
-  return AudioParameters();
+  return output_params_;
 }
 
 AudioParameters MockAudioManager::GetInputStreamParameters(
@@ -120,13 +120,26 @@
   return nullptr;
 }
 
-void MockAudioManager::SetInputStreamParameters(
-    const AudioParameters& input_params) {
-  input_params_ = input_params;
+void MockAudioManager::SetInputStreamParameters(const AudioParameters& params) {
+  input_params_ = params;
+}
+
+void MockAudioManager::SetOutputStreamParameters(
+    const AudioParameters& params) {
+  output_params_ = params;
+}
+
+void MockAudioManager::SetDefaultOutputStreamParameters(
+    const AudioParameters& params) {
+  default_output_params_ = params;
 }
 
 void MockAudioManager::SetHasInputDevices(bool has_input_devices) {
   has_input_devices_ = has_input_devices;
 }
 
+void MockAudioManager::SetHasOutputDevices(bool has_output_devices) {
+  has_output_devices_ = has_output_devices;
+}
+
 }  // namespace media.
diff --git a/media/audio/mock_audio_manager.h b/media/audio/mock_audio_manager.h
index ae5bd50..619398d 100644
--- a/media/audio/mock_audio_manager.h
+++ b/media/audio/mock_audio_manager.h
@@ -72,16 +72,23 @@
   const char* GetName() override;
 
   // Setters to emulate desired in-test behavior.
-  void SetInputStreamParameters(const AudioParameters& input_params);
+  void SetInputStreamParameters(const AudioParameters& params);
+  void SetOutputStreamParameters(const AudioParameters& params);
+  void SetDefaultOutputStreamParameters(const AudioParameters& params);
   void SetHasInputDevices(bool has_input_devices);
+  void SetHasOutputDevices(bool has_output_devices);
 
  protected:
   ~MockAudioManager() override;
 
  private:
   friend class base::DeleteHelper<MockAudioManager>;
+
   AudioParameters input_params_;
+  AudioParameters output_params_;
+  AudioParameters default_output_params_;
   bool has_input_devices_ = true;
+  bool has_output_devices_ = true;
 
   DISALLOW_COPY_AND_ASSIGN(MockAudioManager);
 };
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations
index 1bf3d20f..5c857b2 100644
--- a/third_party/WebKit/LayoutTests/TestExpectations
+++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -2177,12 +2177,6 @@
 crbug.com/595993 external/wpt/service-workers/service-worker/fetch-header-visibility.https.html [ Failure ]
 crbug.com/595993 external/wpt/service-workers/service-worker/request-end-to-end.https.html [ Failure ]
 
-crbug.com/683066 external/wpt/selection/extend-00.html [ NeedsRebaseline ]
-crbug.com/683066 external/wpt/selection/extend-20.html [ NeedsRebaseline ]
-crbug.com/683066 external/wpt/selection/selectAllChildren.html [ NeedsRebaseline ]
-crbug.com/683066 external/wpt/webvtt/interfaces.html [ NeedsRebaseline ]
-crbug.com/683066 external/wpt/selection/setBaseAndExtent.html  [ NeedsRebaseline ]
-
 crbug.com/666628 http/tests/inspector-enabled/console-stack-overflow-source-url.html [ Pass Failure ]
 crbug.com/666628 virtual/mojo-loading/http/tests/inspector-enabled/console-stack-overflow-source-url.html [ Pass Failure ]
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/extend-00-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/extend-00-expected.txt
deleted file mode 100644
index 4868567d..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/selection/extend-00-expected.txt
+++ /dev/null
@@ -1,5300 +0,0 @@
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-This is a testharness.js-based test.
-Found 2992 tests; 422 PASS, 2570 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS extend() with range 0 [] and point 0 [paras[0].firstChild, -1] 
-PASS extend() with range 0 [] and point 1 [paras[0].firstChild, 0] 
-PASS extend() with range 0 [] and point 2 [paras[0].firstChild, 1] 
-PASS extend() with range 0 [] and point 3 [paras[0].firstChild, 2] 
-PASS extend() with range 0 [] and point 4 [paras[0].firstChild, 8] 
-PASS extend() with range 0 [] and point 5 [paras[0].firstChild, 9] 
-PASS extend() with range 0 [] and point 6 [paras[0].firstChild, 10] 
-PASS extend() with range 0 [] and point 7 [paras[0].firstChild, 65535] 
-PASS extend() with range 0 [] and point 8 [paras[1].firstChild, -1] 
-PASS extend() with range 0 [] and point 9 [paras[1].firstChild, 0] 
-PASS extend() with range 0 [] and point 10 [paras[1].firstChild, 1] 
-PASS extend() with range 0 [] and point 11 [paras[1].firstChild, 2] 
-PASS extend() with range 0 [] and point 12 [paras[1].firstChild, 8] 
-PASS extend() with range 0 [] and point 13 [paras[1].firstChild, 9] 
-PASS extend() with range 0 [] and point 14 [paras[1].firstChild, 10] 
-PASS extend() with range 0 [] and point 15 [paras[1].firstChild, 65535] 
-PASS extend() with range 0 [] and point 16 [detachedPara1.firstChild, 0] 
-PASS extend() with range 0 [] and point 17 [detachedPara1.firstChild, 1] 
-PASS extend() with range 0 [] and point 18 [detachedPara1.firstChild, 8] 
-PASS extend() with range 0 [] and point 19 [detachedPara1.firstChild, 9] 
-PASS extend() with range 0 [] and point 20 [foreignPara1.firstChild, 0] 
-PASS extend() with range 0 [] and point 21 [foreignPara1.firstChild, 1] 
-PASS extend() with range 0 [] and point 22 [foreignPara1.firstChild, 8] 
-PASS extend() with range 0 [] and point 23 [foreignPara1.firstChild, 9] 
-PASS extend() with range 0 [] and point 24 [document.documentElement, -1] 
-PASS extend() with range 0 [] and point 25 [document.documentElement, 0] 
-PASS extend() with range 0 [] and point 26 [document.documentElement, 1] 
-PASS extend() with range 0 [] and point 27 [document.documentElement, 2] 
-PASS extend() with range 0 [] and point 28 [document.documentElement, 7] 
-PASS extend() with range 0 [] and point 29 [document.head, 1] 
-PASS extend() with range 0 [] and point 30 [document.body, 3] 
-PASS extend() with range 0 [] and point 31 [foreignDoc.documentElement, 0] 
-PASS extend() with range 0 [] and point 32 [foreignDoc.documentElement, 1] 
-PASS extend() with range 0 [] and point 33 [foreignDoc.head, 0] 
-PASS extend() with range 0 [] and point 34 [foreignDoc.body, 1] 
-PASS extend() with range 0 [] and point 35 [paras[0], 0] 
-PASS extend() with range 0 [] and point 36 [paras[0], 1] 
-PASS extend() with range 0 [] and point 37 [paras[0], 2] 
-PASS extend() with range 0 [] and point 38 [paras[1], 0] 
-PASS extend() with range 0 [] and point 39 [paras[1], 1] 
-PASS extend() with range 0 [] and point 40 [paras[1], 2] 
-PASS extend() with range 0 [] and point 41 [detachedPara1, 0] 
-PASS extend() with range 0 [] and point 42 [detachedPara1, 1] 
-PASS extend() with range 0 [] and point 43 [testDiv, 0] 
-PASS extend() with range 0 [] and point 44 [testDiv, 3] 
-PASS extend() with range 0 [] and point 45 [document, -1] 
-PASS extend() with range 0 [] and point 46 [document, 0] 
-PASS extend() with range 0 [] and point 47 [document, 1] 
-PASS extend() with range 0 [] and point 48 [document, 2] 
-PASS extend() with range 0 [] and point 49 [document, 3] 
-PASS extend() with range 0 [] and point 50 [comment, -1] 
-PASS extend() with range 0 [] and point 51 [comment, 0] 
-PASS extend() with range 0 [] and point 52 [comment, 4] 
-PASS extend() with range 0 [] and point 53 [comment, 96] 
-PASS extend() with range 0 [] and point 54 [foreignDoc, 0] 
-PASS extend() with range 0 [] and point 55 [foreignDoc, 1] 
-PASS extend() with range 0 [] and point 56 [foreignComment, 2] 
-PASS extend() with range 0 [] and point 57 [foreignTextNode, 0] 
-PASS extend() with range 0 [] and point 58 [foreignTextNode, 36] 
-PASS extend() with range 0 [] and point 59 [xmlDoc, -1] 
-PASS extend() with range 0 [] and point 60 [xmlDoc, 0] 
-PASS extend() with range 0 [] and point 61 [xmlDoc, 1] 
-PASS extend() with range 0 [] and point 62 [xmlDoc, 5] 
-PASS extend() with range 0 [] and point 63 [xmlComment, 0] 
-PASS extend() with range 0 [] and point 64 [xmlComment, 4] 
-PASS extend() with range 0 [] and point 65 [processingInstruction, 0] 
-PASS extend() with range 0 [] and point 66 [processingInstruction, 5] 
-PASS extend() with range 0 [] and point 67 [processingInstruction, 9] 
-PASS extend() with range 0 [] and point 68 [detachedTextNode, 0] 
-PASS extend() with range 0 [] and point 69 [detachedTextNode, 8] 
-PASS extend() with range 0 [] and point 70 [detachedForeignTextNode, 0] 
-PASS extend() with range 0 [] and point 71 [detachedForeignTextNode, 8] 
-PASS extend() with range 0 [] and point 72 [detachedXmlTextNode, 0] 
-PASS extend() with range 0 [] and point 73 [detachedXmlTextNode, 8] 
-PASS extend() with range 0 [] and point 74 [detachedProcessingInstruction, 12] 
-PASS extend() with range 0 [] and point 75 [detachedComment, 3] 
-PASS extend() with range 0 [] and point 76 [detachedComment, 5] 
-PASS extend() with range 0 [] and point 77 [detachedForeignComment, 0] 
-PASS extend() with range 0 [] and point 78 [detachedForeignComment, 4] 
-PASS extend() with range 0 [] and point 79 [detachedXmlComment, 2] 
-PASS extend() with range 0 [] and point 80 [docfrag, 0] 
-PASS extend() with range 0 [] and point 81 [foreignDocfrag, 0] 
-PASS extend() with range 0 [] and point 82 [xmlDocfrag, 0] 
-PASS extend() with range 0 [] and point 83 [doctype, 0] 
-PASS extend() with range 0 [] and point 84 [doctype, -17] 
-PASS extend() with range 0 [] and point 85 [doctype, 1] 
-PASS extend() with range 0 [] and point 86 [foreignDoctype, 0] 
-PASS extend() with range 0 [] and point 87 [xmlDoctype, 0] 
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 0 [paras[0].firstChild, -1] 
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 1 [paras[0].firstChild, 0] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 2 [paras[0].firstChild, 1] assert_equals: focusOffset must be the offset passed to extend() expected 1 but got 2
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 3 [paras[0].firstChild, 2] 
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 4 [paras[0].firstChild, 8] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 5 [paras[0].firstChild, 9] assert_equals: focusOffset must be the offset passed to extend() expected 9 but got 10
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 6 [paras[0].firstChild, 10] 
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 7 [paras[0].firstChild, 65535] 
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 9 [paras[1].firstChild, 0] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 10 [paras[1].firstChild, 1] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 11 [paras[1].firstChild, 2] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 12 [paras[1].firstChild, 8] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 13 [paras[1].firstChild, 9] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 14 [paras[1].firstChild, 10] 
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 23 [foreignPara1.firstChild, 9] 
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 24 [document.documentElement, -1] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 25 [document.documentElement, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 26 [document.documentElement, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 27 [document.documentElement, 2] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Qrstuvwx"
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 28 [document.documentElement, 7] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 29 [document.head, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 30 [document.body, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Qrstuvwx"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 35 [paras[0], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 36 [paras[0], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 37 [paras[0], 2] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 38 [paras[1], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 39 [paras[1], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 40 [paras[1], 2] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 43 [testDiv, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 44 [testDiv, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 45 [document, -1] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 46 [document, 0] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 47 [document, 1] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 48 [document, 2] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Qrstuvwx"
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 49 [document, 3] 
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 50 [comment, -1] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 51 [comment, 0] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 52 [comment, 4] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 53 [comment, 96] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 59 [xmlDoc, -1] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 62 [xmlDoc, 5] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 83 [doctype, 0] 
-FAIL extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 85 [doctype, 1] 
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 86 [foreignDoctype, 0] 
-PASS extend() with range 1 [paras[0].firstChild, 0, paras[0].firstChild, 0] and point 87 [xmlDoctype, 0] 
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 1 [paras[0].firstChild, 0] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 2 [paras[0].firstChild, 1] assert_equals: focusOffset must be the offset passed to extend() expected 1 but got 2
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 3 [paras[0].firstChild, 2] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 4 [paras[0].firstChild, 8] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 5 [paras[0].firstChild, 9] assert_equals: focusOffset must be the offset passed to extend() expected 9 but got 10
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 6 [paras[0].firstChild, 10] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 9 [paras[1].firstChild, 0] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 10 [paras[1].firstChild, 1] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 11 [paras[1].firstChild, 2] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 12 [paras[1].firstChild, 8] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 13 [paras[1].firstChild, 9] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 25 [document.documentElement, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 26 [document.documentElement, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 27 [document.documentElement, 2] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 29 [document.head, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 29 [document.head, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 30 [document.body, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 30 [document.body, 3] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 35 [paras[0], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 36 [paras[0], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 38 [paras[1], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 39 [paras[1], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 43 [testDiv, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 44 [testDiv, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 45 [document, -1] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 45 [document, -1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 46 [document, 0] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 46 [document, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 47 [document, 1] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 47 [document, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 48 [document, 2] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 48 [document, 2] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 49 [document, 3] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 49 [document, 3] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 50 [comment, -1] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 50 [comment, -1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 51 [comment, 0] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 51 [comment, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 52 [comment, 4] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 52 [comment, 4] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 53 [comment, 96] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 53 [comment, 96] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 83 [doctype, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-FAIL extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 84 [doctype, -17] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 85 [doctype, 1] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 2 [paras[0].firstChild, 0, paras[0].firstChild, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: endOffset must be correct expected 1 but got 2
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 0 [paras[0].firstChild, -1] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 0 [paras[0].firstChild, -1] 
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 1 [paras[0].firstChild, 0] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 1 [paras[0].firstChild, 0] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 2 [paras[0].firstChild, 1] assert_equals: focusOffset must be the offset passed to extend() expected 1 but got 2
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 2 [paras[0].firstChild, 1] assert_equals: focusOffset must be the offset passed to extend() expected 1 but got 2
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 3 [paras[0].firstChild, 2] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 3 [paras[0].firstChild, 2] 
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 4 [paras[0].firstChild, 8] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 4 [paras[0].firstChild, 8] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 5 [paras[0].firstChild, 9] assert_equals: focusOffset must be the offset passed to extend() expected 9 but got 10
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 5 [paras[0].firstChild, 9] assert_equals: focusOffset must be the offset passed to extend() expected 9 but got 10
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 6 [paras[0].firstChild, 10] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 6 [paras[0].firstChild, 10] 
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 7 [paras[0].firstChild, 65535] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 7 [paras[0].firstChild, 65535] 
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 8 [paras[1].firstChild, -1] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 9 [paras[1].firstChild, 0] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 9 [paras[1].firstChild, 0] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 10 [paras[1].firstChild, 1] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 10 [paras[1].firstChild, 1] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 11 [paras[1].firstChild, 2] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 11 [paras[1].firstChild, 2] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 12 [paras[1].firstChild, 8] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 12 [paras[1].firstChild, 8] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 13 [paras[1].firstChild, 9] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 13 [paras[1].firstChild, 9] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 14 [paras[1].firstChild, 10] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 14 [paras[1].firstChild, 10] 
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 15 [paras[1].firstChild, 65535] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 19 [detachedPara1.firstChild, 9] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 23 [foreignPara1.firstChild, 9] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 23 [foreignPara1.firstChild, 9] 
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 24 [document.documentElement, -1] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 24 [document.documentElement, -1] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 25 [document.documentElement, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 25 [document.documentElement, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 26 [document.documentElement, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 26 [document.documentElement, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 27 [document.documentElement, 2] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 27 [document.documentElement, 2] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 28 [document.documentElement, 7] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 28 [document.documentElement, 7] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 29 [document.head, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 29 [document.head, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 30 [document.body, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 30 [document.body, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 35 [paras[0], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 35 [paras[0], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 36 [paras[0], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 36 [paras[0], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 37 [paras[0], 2] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 37 [paras[0], 2] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 38 [paras[1], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 38 [paras[1], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 39 [paras[1], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 39 [paras[1], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 40 [paras[1], 2] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 40 [paras[1], 2] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 43 [testDiv, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 43 [testDiv, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 44 [testDiv, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 44 [testDiv, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 45 [document, -1] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 45 [document, -1] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 46 [document, 0] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 46 [document, 0] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 47 [document, 1] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 47 [document, 1] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 48 [document, 2] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 48 [document, 2] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Qrstuvwx"
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 49 [document, 3] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 49 [document, 3] 
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 50 [comment, -1] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 50 [comment, -1] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 51 [comment, 0] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 51 [comment, 0] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 52 [comment, 4] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 52 [comment, 4] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 53 [comment, 96] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 53 [comment, 96] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 59 [xmlDoc, -1] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 59 [xmlDoc, -1] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 62 [xmlDoc, 5] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 62 [xmlDoc, 5] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 83 [doctype, 0] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 83 [doctype, 0] 
-FAIL extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 85 [doctype, 1] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 85 [doctype, 1] 
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 86 [foreignDoctype, 0] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 86 [foreignDoctype, 0] 
-PASS extend() forwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 87 [xmlDoctype, 0] 
-PASS extend() backwards with range 3 [paras[0].firstChild, 2, paras[0].firstChild, 8] and point 87 [xmlDoctype, 0] 
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 1 [paras[0].firstChild, 0] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 2 [paras[0].firstChild, 1] assert_equals: focusOffset must be the offset passed to extend() expected 1 but got 2
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 3 [paras[0].firstChild, 2] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 4 [paras[0].firstChild, 8] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 5 [paras[0].firstChild, 9] assert_equals: focusOffset must be the offset passed to extend() expected 9 but got 10
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 6 [paras[0].firstChild, 10] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 9 [paras[1].firstChild, 0] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 10 [paras[1].firstChild, 1] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 11 [paras[1].firstChild, 2] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 12 [paras[1].firstChild, 8] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 13 [paras[1].firstChild, 9] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 24 [document.documentElement, -1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 25 [document.documentElement, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 25 [document.documentElement, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 26 [document.documentElement, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 26 [document.documentElement, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 27 [document.documentElement, 2] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 27 [document.documentElement, 2] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 28 [document.documentElement, 7] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 29 [document.head, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 29 [document.head, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 30 [document.body, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 30 [document.body, 3] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 35 [paras[0], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 35 [paras[0], 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 36 [paras[0], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 36 [paras[0], 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 37 [paras[0], 2] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 38 [paras[1], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 38 [paras[1], 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 39 [paras[1], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 39 [paras[1], 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 40 [paras[1], 2] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 41 [detachedPara1, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 42 [detachedPara1, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 43 [testDiv, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 43 [testDiv, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 44 [testDiv, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 44 [testDiv, 3] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 45 [document, -1] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 45 [document, -1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 46 [document, 0] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 46 [document, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 47 [document, 1] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 47 [document, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 48 [document, 2] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 48 [document, 2] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 49 [document, 3] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 49 [document, 3] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 50 [comment, -1] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 50 [comment, -1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 51 [comment, 0] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 51 [comment, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 52 [comment, 4] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 52 [comment, 4] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 53 [comment, 96] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 53 [comment, 96] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 54 [foreignDoc, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 55 [foreignDoc, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 56 [foreignComment, 2] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 59 [xmlDoc, -1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 60 [xmlDoc, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 61 [xmlDoc, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 62 [xmlDoc, 5] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 63 [xmlComment, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 64 [xmlComment, 4] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 65 [processingInstruction, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 66 [processingInstruction, 5] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 67 [processingInstruction, 9] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 75 [detachedComment, 3] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 76 [detachedComment, 5] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 80 [docfrag, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 83 [doctype, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-FAIL extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 84 [doctype, -17] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 85 [doctype, 1] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() forwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 4 [paras[0].firstChild, 2, paras[0].firstChild, 9] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: endOffset must be correct expected 9 but got 10
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 7 [paras[0].firstChild, 65535] 
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 14 [paras[1].firstChild, 10] 
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Ijklmnop
-"
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Ijklmnop
-"
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 23 [foreignPara1.firstChild, 9] 
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 24 [document.documentElement, -1] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 28 [document.documentElement, 7] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 37 [paras[0], 2] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 40 [paras[1], 2] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 45 [document, -1] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 49 [document, 3] 
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 50 [comment, -1] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 53 [comment, 96] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Ijklmnop
-"
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 59 [xmlDoc, -1] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Ijklmnop
-"
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 62 [xmlDoc, 5] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Ijklmnop
-"
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Ijklmnop
-"
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 83 [doctype, 0] 
-FAIL extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 85 [doctype, 1] 
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 86 [foreignDoctype, 0] 
-PASS extend() with range 5 [paras[1].firstChild, 0, paras[1].firstChild, 0] and point 87 [xmlDoctype, 0] 
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 45 [document, -1] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 49 [document, 3] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 50 [comment, -1] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 53 [comment, 96] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 6 [paras[1].firstChild, 0, paras[1].firstChild, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 45 [document, -1] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 49 [document, 3] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 50 [comment, -1] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 53 [comment, 96] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 7 [paras[1].firstChild, 2, paras[1].firstChild, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 45 [document, -1] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 49 [document, 3] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 50 [comment, -1] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 53 [comment, 96] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Ijklmnop
-"
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-PASS extend() forwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 8 [paras[1].firstChild, 2, paras[1].firstChild, 9] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 0 [paras[0].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 1 [paras[0].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 2 [paras[0].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 3 [paras[0].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 4 [paras[0].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 5 [paras[0].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 6 [paras[0].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 7 [paras[0].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 8 [paras[1].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 9 [paras[1].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 10 [paras[1].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 11 [paras[1].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 12 [paras[1].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 13 [paras[1].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 14 [paras[1].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 15 [paras[1].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 16 [detachedPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 17 [detachedPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 18 [detachedPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 19 [detachedPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 20 [foreignPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 21 [foreignPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 22 [foreignPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 23 [foreignPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 24 [document.documentElement, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 25 [document.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 26 [document.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 27 [document.documentElement, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 28 [document.documentElement, 7] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 29 [document.head, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 30 [document.body, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 31 [foreignDoc.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 32 [foreignDoc.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 33 [foreignDoc.head, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 34 [foreignDoc.body, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 35 [paras[0], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 36 [paras[0], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 37 [paras[0], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 38 [paras[1], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 39 [paras[1], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 40 [paras[1], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 41 [detachedPara1, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 42 [detachedPara1, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 43 [testDiv, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 44 [testDiv, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 45 [document, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 46 [document, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 47 [document, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 48 [document, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 49 [document, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 50 [comment, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 51 [comment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 52 [comment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 53 [comment, 96] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 54 [foreignDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 55 [foreignDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 56 [foreignComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 57 [foreignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 58 [foreignTextNode, 36] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 59 [xmlDoc, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 60 [xmlDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 61 [xmlDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 62 [xmlDoc, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 63 [xmlComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 64 [xmlComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 65 [processingInstruction, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 66 [processingInstruction, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 67 [processingInstruction, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 68 [detachedTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 69 [detachedTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 70 [detachedForeignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 71 [detachedForeignTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 72 [detachedXmlTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 73 [detachedXmlTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 74 [detachedProcessingInstruction, 12] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 75 [detachedComment, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 76 [detachedComment, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 77 [detachedForeignComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 78 [detachedForeignComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 79 [detachedXmlComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 80 [docfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 81 [foreignDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 82 [xmlDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 83 [doctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 84 [doctype, -17] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 85 [doctype, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 86 [foreignDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 10 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1] and point 87 [xmlDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 0 [paras[0].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 1 [paras[0].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 2 [paras[0].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 3 [paras[0].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 4 [paras[0].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 5 [paras[0].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 6 [paras[0].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 7 [paras[0].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 8 [paras[1].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 9 [paras[1].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 10 [paras[1].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 11 [paras[1].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 12 [paras[1].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 13 [paras[1].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 14 [paras[1].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 15 [paras[1].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 16 [detachedPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 17 [detachedPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 18 [detachedPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 19 [detachedPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 20 [foreignPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 21 [foreignPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 22 [foreignPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 23 [foreignPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 24 [document.documentElement, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 25 [document.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 26 [document.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 27 [document.documentElement, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 28 [document.documentElement, 7] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 29 [document.head, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 30 [document.body, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 31 [foreignDoc.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 32 [foreignDoc.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 33 [foreignDoc.head, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 34 [foreignDoc.body, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 35 [paras[0], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 36 [paras[0], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 37 [paras[0], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 38 [paras[1], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 39 [paras[1], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 40 [paras[1], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 41 [detachedPara1, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 42 [detachedPara1, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 43 [testDiv, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 44 [testDiv, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 45 [document, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 46 [document, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 47 [document, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 48 [document, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 49 [document, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 50 [comment, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 51 [comment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 52 [comment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 53 [comment, 96] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 54 [foreignDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 55 [foreignDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 56 [foreignComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 57 [foreignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 58 [foreignTextNode, 36] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 59 [xmlDoc, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 60 [xmlDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 61 [xmlDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 62 [xmlDoc, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 63 [xmlComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 64 [xmlComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 65 [processingInstruction, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 66 [processingInstruction, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 67 [processingInstruction, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 68 [detachedTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 69 [detachedTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 70 [detachedForeignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 71 [detachedForeignTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 72 [detachedXmlTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 73 [detachedXmlTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 74 [detachedProcessingInstruction, 12] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 75 [detachedComment, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 76 [detachedComment, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 77 [detachedForeignComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 78 [detachedForeignComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 79 [detachedXmlComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 80 [docfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 81 [foreignDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 82 [xmlDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 83 [doctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 84 [doctype, -17] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 85 [doctype, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 86 [foreignDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 11 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8] and point 87 [xmlDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 0 [paras[0].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 1 [paras[0].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 2 [paras[0].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 3 [paras[0].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 4 [paras[0].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 5 [paras[0].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 6 [paras[0].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 7 [paras[0].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 8 [paras[1].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 9 [paras[1].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 10 [paras[1].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 11 [paras[1].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 12 [paras[1].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 13 [paras[1].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 14 [paras[1].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 15 [paras[1].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 16 [detachedPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 17 [detachedPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 18 [detachedPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 19 [detachedPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 20 [foreignPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 21 [foreignPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 22 [foreignPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 23 [foreignPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 24 [document.documentElement, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 25 [document.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 26 [document.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 27 [document.documentElement, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 28 [document.documentElement, 7] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 29 [document.head, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 30 [document.body, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 31 [foreignDoc.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 32 [foreignDoc.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 33 [foreignDoc.head, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 34 [foreignDoc.body, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 35 [paras[0], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 36 [paras[0], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 37 [paras[0], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 38 [paras[1], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 39 [paras[1], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 40 [paras[1], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 41 [detachedPara1, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 42 [detachedPara1, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 43 [testDiv, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 44 [testDiv, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 45 [document, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 46 [document, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 47 [document, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 48 [document, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 49 [document, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 50 [comment, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 51 [comment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 52 [comment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 53 [comment, 96] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 54 [foreignDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 55 [foreignDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 56 [foreignComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 57 [foreignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 58 [foreignTextNode, 36] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 59 [xmlDoc, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 60 [xmlDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 61 [xmlDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 62 [xmlDoc, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 63 [xmlComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 64 [xmlComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 65 [processingInstruction, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 66 [processingInstruction, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 67 [processingInstruction, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 68 [detachedTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 69 [detachedTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 70 [detachedForeignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 71 [detachedForeignTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 72 [detachedXmlTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 73 [detachedXmlTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 74 [detachedProcessingInstruction, 12] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 75 [detachedComment, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 76 [detachedComment, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 77 [detachedForeignComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 78 [detachedForeignComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 79 [detachedXmlComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 80 [docfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 81 [foreignDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 82 [xmlDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 83 [doctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 84 [doctype, -17] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 85 [doctype, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 86 [foreignDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 13 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] and point 87 [xmlDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 0 [paras[0].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 1 [paras[0].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 2 [paras[0].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 3 [paras[0].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 4 [paras[0].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 5 [paras[0].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 6 [paras[0].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 7 [paras[0].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 8 [paras[1].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 9 [paras[1].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 10 [paras[1].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 11 [paras[1].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 12 [paras[1].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 13 [paras[1].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 14 [paras[1].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 15 [paras[1].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 16 [detachedPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 17 [detachedPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 18 [detachedPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 19 [detachedPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 20 [foreignPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 21 [foreignPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 22 [foreignPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 23 [foreignPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 24 [document.documentElement, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 25 [document.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 26 [document.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 27 [document.documentElement, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 28 [document.documentElement, 7] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 29 [document.head, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 30 [document.body, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 31 [foreignDoc.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 32 [foreignDoc.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 33 [foreignDoc.head, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 34 [foreignDoc.body, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 35 [paras[0], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 36 [paras[0], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 37 [paras[0], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 38 [paras[1], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 39 [paras[1], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 40 [paras[1], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 41 [detachedPara1, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 42 [detachedPara1, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 43 [testDiv, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 44 [testDiv, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 45 [document, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 46 [document, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 47 [document, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 48 [document, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 49 [document, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 50 [comment, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 51 [comment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 52 [comment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 53 [comment, 96] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 54 [foreignDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 55 [foreignDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 56 [foreignComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 57 [foreignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 58 [foreignTextNode, 36] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 59 [xmlDoc, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 60 [xmlDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 61 [xmlDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 62 [xmlDoc, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 63 [xmlComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 64 [xmlComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 65 [processingInstruction, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 66 [processingInstruction, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 67 [processingInstruction, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 68 [detachedTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 69 [detachedTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 70 [detachedForeignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 71 [detachedForeignTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 72 [detachedXmlTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 73 [detachedXmlTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 74 [detachedProcessingInstruction, 12] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 75 [detachedComment, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 76 [detachedComment, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 77 [detachedForeignComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 78 [detachedForeignComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 79 [detachedXmlComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 80 [docfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 81 [foreignDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 82 [xmlDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 83 [doctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 84 [doctype, -17] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 85 [doctype, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 86 [foreignDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 14 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8] and point 87 [xmlDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 45 [document, -1] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 49 [document, 3] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 50 [comment, -1] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 53 [comment, 96] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 15 [document.documentElement, 0, document.documentElement, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 45 [document, -1] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 49 [document, 3] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 50 [comment, -1] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 53 [comment, 96] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 16 [document.documentElement, 0, document.documentElement, 2] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 45 [document, -1] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 49 [document, 3] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 50 [comment, -1] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 53 [comment, 96] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 17 [document.documentElement, 1, document.documentElement, 2] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 7 [paras[0].firstChild, 65535] 
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 14 [paras[1].firstChild, 10] 
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 23 [foreignPara1.firstChild, 9] 
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 24 [document.documentElement, -1] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 28 [document.documentElement, 7] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 37 [paras[0], 2] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 40 [paras[1], 2] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 45 [document, -1] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 49 [document, 3] 
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 50 [comment, -1] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 53 [comment, 96] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 59 [xmlDoc, -1] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 62 [xmlDoc, 5] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <head><title>Selection extend() tests</title>
-<meta chars...
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 83 [doctype, 0] 
-FAIL extend() with range 18 [document.head, 1, document.head, 1] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 85 [doctype, 1] 
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 86 [foreignDoctype, 0] 
-PASS extend() with range 18 [document.head, 1, document.head, 1] and point 87 [xmlDoctype, 0] 
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 45 [document, -1] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 49 [document, 3] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 50 [comment, -1] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 53 [comment, 96] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id...
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 19 [document.body, 0, document.body, 1] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 19 [document.body, 0, document.body, 1] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 19 [document.body, 0, document.body, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/extend-20-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/extend-20-expected.txt
deleted file mode 100644
index f8ba77d4..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/selection/extend-20-expected.txt
+++ /dev/null
@@ -1,5563 +0,0 @@
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-CONSOLE ERROR: line 944: The given range isn't in document.
-This is a testharness.js-based test.
-Found 3168 tests; 342 PASS, 2826 FAIL, 0 TIMEOUT, 0 NOTRUN.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 0 [paras[0].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 1 [paras[0].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 2 [paras[0].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 3 [paras[0].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 4 [paras[0].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 5 [paras[0].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 6 [paras[0].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 7 [paras[0].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 8 [paras[1].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 9 [paras[1].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 10 [paras[1].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 11 [paras[1].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 12 [paras[1].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 13 [paras[1].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 14 [paras[1].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 15 [paras[1].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 16 [detachedPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 17 [detachedPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 18 [detachedPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 19 [detachedPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 20 [foreignPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 21 [foreignPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 22 [foreignPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 23 [foreignPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 24 [document.documentElement, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 25 [document.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 26 [document.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 27 [document.documentElement, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 28 [document.documentElement, 7] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 29 [document.head, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 30 [document.body, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 31 [foreignDoc.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 32 [foreignDoc.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 33 [foreignDoc.head, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 34 [foreignDoc.body, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 35 [paras[0], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 36 [paras[0], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 37 [paras[0], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 38 [paras[1], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 39 [paras[1], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 40 [paras[1], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 41 [detachedPara1, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 42 [detachedPara1, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 43 [testDiv, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 44 [testDiv, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 45 [document, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 46 [document, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 47 [document, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 48 [document, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 49 [document, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 50 [comment, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 51 [comment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 52 [comment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 53 [comment, 96] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 54 [foreignDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 55 [foreignDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 56 [foreignComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 57 [foreignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 58 [foreignTextNode, 36] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 59 [xmlDoc, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 60 [xmlDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 61 [xmlDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 62 [xmlDoc, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 63 [xmlComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 64 [xmlComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 65 [processingInstruction, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 66 [processingInstruction, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 67 [processingInstruction, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 68 [detachedTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 69 [detachedTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 70 [detachedForeignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 71 [detachedForeignTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 72 [detachedXmlTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 73 [detachedXmlTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 74 [detachedProcessingInstruction, 12] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 75 [detachedComment, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 76 [detachedComment, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 77 [detachedForeignComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 78 [detachedForeignComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 79 [detachedXmlComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 80 [docfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 81 [foreignDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 82 [xmlDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 83 [doctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 84 [doctype, -17] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 85 [doctype, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 86 [foreignDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 20 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1] and point 87 [xmlDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 21 [foreignDoc.head, 1, foreignDoc.head, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 22 [foreignDoc.body, 0, foreignDoc.body, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 7 [paras[0].firstChild, 65535] 
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 14 [paras[1].firstChild, 10] 
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 23 [foreignPara1.firstChild, 9] 
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 24 [document.documentElement, -1] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 28 [document.documentElement, 7] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 37 [paras[0], 2] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 40 [paras[1], 2] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 45 [document, -1] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 49 [document, 3] 
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 50 [comment, -1] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 53 [comment, 96] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 59 [xmlDoc, -1] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 62 [xmlDoc, 5] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 83 [doctype, 0] 
-FAIL extend() with range 23 [paras[0], 0, paras[0], 0] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 85 [doctype, 1] 
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 86 [foreignDoctype, 0] 
-PASS extend() with range 23 [paras[0], 0, paras[0], 0] and point 87 [xmlDoctype, 0] 
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 45 [document, -1] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 49 [document, 3] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 50 [comment, -1] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 53 [comment, 96] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 24 [paras[0], 0, paras[0], 1] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 24 [paras[0], 0, paras[0], 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() with range 25 [detachedPara1, 0, detachedPara1, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 0 [paras[0].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 1 [paras[0].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 2 [paras[0].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 3 [paras[0].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 4 [paras[0].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 5 [paras[0].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 6 [paras[0].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 7 [paras[0].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 8 [paras[1].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 9 [paras[1].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 10 [paras[1].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 11 [paras[1].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 12 [paras[1].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 13 [paras[1].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 14 [paras[1].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 15 [paras[1].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 16 [detachedPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 17 [detachedPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 18 [detachedPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 19 [detachedPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 20 [foreignPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 21 [foreignPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 22 [foreignPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 23 [foreignPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 24 [document.documentElement, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 25 [document.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 26 [document.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 27 [document.documentElement, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 28 [document.documentElement, 7] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 29 [document.head, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 30 [document.body, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 31 [foreignDoc.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 32 [foreignDoc.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 33 [foreignDoc.head, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 34 [foreignDoc.body, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 35 [paras[0], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 36 [paras[0], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 37 [paras[0], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 38 [paras[1], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 39 [paras[1], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 40 [paras[1], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 41 [detachedPara1, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 42 [detachedPara1, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 43 [testDiv, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 44 [testDiv, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 45 [document, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 46 [document, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 47 [document, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 48 [document, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 49 [document, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 50 [comment, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 51 [comment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 52 [comment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 53 [comment, 96] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 54 [foreignDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 55 [foreignDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 56 [foreignComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 57 [foreignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 58 [foreignTextNode, 36] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 59 [xmlDoc, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 60 [xmlDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 61 [xmlDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 62 [xmlDoc, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 63 [xmlComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 64 [xmlComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 65 [processingInstruction, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 66 [processingInstruction, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 67 [processingInstruction, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 68 [detachedTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 69 [detachedTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 70 [detachedForeignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 71 [detachedForeignTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 72 [detachedXmlTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 73 [detachedXmlTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 74 [detachedProcessingInstruction, 12] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 75 [detachedComment, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 76 [detachedComment, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 77 [detachedForeignComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 78 [detachedForeignComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 79 [detachedXmlComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 80 [docfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 81 [foreignDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 82 [xmlDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 83 [doctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 84 [doctype, -17] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 85 [doctype, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 86 [foreignDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 26 [detachedPara1, 0, detachedPara1, 1] and point 87 [xmlDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 1 [paras[0].firstChild, 0] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 2 [paras[0].firstChild, 1] assert_equals: focusOffset must be the offset passed to extend() expected 1 but got 2
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 3 [paras[0].firstChild, 2] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 4 [paras[0].firstChild, 8] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 5 [paras[0].firstChild, 9] assert_equals: focusOffset must be the offset passed to extend() expected 9 but got 10
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 6 [paras[0].firstChild, 10] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 9 [paras[1].firstChild, 0] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 10 [paras[1].firstChild, 1] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 11 [paras[1].firstChild, 2] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 12 [paras[1].firstChild, 8] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 13 [paras[1].firstChild, 9] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 25 [document.documentElement, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 26 [document.documentElement, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 27 [document.documentElement, 2] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 29 [document.head, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 29 [document.head, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 30 [document.body, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 30 [document.body, 3] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 35 [paras[0], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 36 [paras[0], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 38 [paras[1], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 39 [paras[1], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 43 [testDiv, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 44 [testDiv, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 45 [document, -1] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 45 [document, -1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 46 [document, 0] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 46 [document, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 47 [document, 1] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 47 [document, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 48 [document, 2] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 48 [document, 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 49 [document, 3] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 49 [document, 3] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 50 [comment, -1] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 50 [comment, -1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 51 [comment, 0] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 51 [comment, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 52 [comment, 4] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 52 [comment, 4] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 53 [comment, 96] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 53 [comment, 96] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 83 [doctype, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 84 [doctype, -17] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 85 [doctype, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 27 [paras[0].firstChild, 0, paras[1].firstChild, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 1 [paras[0].firstChild, 0] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 2 [paras[0].firstChild, 1] assert_equals: focusOffset must be the offset passed to extend() expected 1 but got 2
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 3 [paras[0].firstChild, 2] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 4 [paras[0].firstChild, 8] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 5 [paras[0].firstChild, 9] assert_equals: focusOffset must be the offset passed to extend() expected 9 but got 10
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 6 [paras[0].firstChild, 10] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 9 [paras[1].firstChild, 0] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 10 [paras[1].firstChild, 1] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 11 [paras[1].firstChild, 2] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 12 [paras[1].firstChild, 8] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 13 [paras[1].firstChild, 9] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 24 [document.documentElement, -1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 25 [document.documentElement, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 25 [document.documentElement, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 26 [document.documentElement, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 26 [document.documentElement, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 27 [document.documentElement, 2] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 27 [document.documentElement, 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 28 [document.documentElement, 7] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 29 [document.head, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 29 [document.head, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 30 [document.body, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 30 [document.body, 3] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 35 [paras[0], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 35 [paras[0], 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 36 [paras[0], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 36 [paras[0], 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 37 [paras[0], 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 38 [paras[1], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 38 [paras[1], 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 39 [paras[1], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 39 [paras[1], 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 40 [paras[1], 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 41 [detachedPara1, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 42 [detachedPara1, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 43 [testDiv, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 43 [testDiv, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 44 [testDiv, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 44 [testDiv, 3] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 45 [document, -1] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 45 [document, -1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 46 [document, 0] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 46 [document, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 47 [document, 1] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 47 [document, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 48 [document, 2] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 48 [document, 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 49 [document, 3] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 49 [document, 3] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 50 [comment, -1] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 50 [comment, -1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 51 [comment, 0] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 51 [comment, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 52 [comment, 4] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 52 [comment, 4] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 53 [comment, 96] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 53 [comment, 96] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 54 [foreignDoc, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 55 [foreignDoc, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 56 [foreignComment, 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 59 [xmlDoc, -1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 60 [xmlDoc, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 61 [xmlDoc, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 62 [xmlDoc, 5] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 63 [xmlComment, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 64 [xmlComment, 4] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 65 [processingInstruction, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 66 [processingInstruction, 5] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 67 [processingInstruction, 9] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 75 [detachedComment, 3] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 76 [detachedComment, 5] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 80 [docfrag, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 83 [doctype, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 84 [doctype, -17] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 85 [doctype, 1] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 28 [paras[0].firstChild, 0, paras[1].firstChild, 8] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: endContainer must be correct expected Text node "Ijklmnop
-" but got Element node <p id="c">Qrstuvwx</p>
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 1 [paras[0].firstChild, 0] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 2 [paras[0].firstChild, 1] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 3 [paras[0].firstChild, 2] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 4 [paras[0].firstChild, 8] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 5 [paras[0].firstChild, 9] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 6 [paras[0].firstChild, 10] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 9 [paras[1].firstChild, 0] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 10 [paras[1].firstChild, 1] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 11 [paras[1].firstChild, 2] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 12 [paras[1].firstChild, 8] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 13 [paras[1].firstChild, 9] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 25 [document.documentElement, 0] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 26 [document.documentElement, 1] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 27 [document.documentElement, 2] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 29 [document.head, 1] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 29 [document.head, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 30 [document.body, 3] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 30 [document.body, 3] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 35 [paras[0], 0] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 35 [paras[0], 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 36 [paras[0], 1] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 36 [paras[0], 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 37 [paras[0], 2] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 38 [paras[1], 0] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 38 [paras[1], 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 39 [paras[1], 1] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 39 [paras[1], 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 40 [paras[1], 2] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 43 [testDiv, 0] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 43 [testDiv, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 44 [testDiv, 3] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 44 [testDiv, 3] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 45 [document, -1] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 45 [document, -1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 46 [document, 0] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 46 [document, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 47 [document, 1] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 47 [document, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 48 [document, 2] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 48 [document, 2] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 49 [document, 3] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 49 [document, 3] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 50 [comment, -1] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 50 [comment, -1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 51 [comment, 0] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 51 [comment, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 52 [comment, 4] assert_equals: anchorOffset must not change if the node passed to extend() has the same root as the original range expected 3 but got 4
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 52 [comment, 4] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 53 [comment, 96] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 53 [comment, 96] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 80 [docfrag, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 83 [doctype, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-FAIL extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 84 [doctype, -17] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 85 [doctype, 1] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 29 [paras[0].firstChild, 3, paras[3], 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startOffset must be correct expected 3 but got 4
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 45 [document, -1] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 49 [document, 3] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 50 [comment, -1] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 53 [comment, 96] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p>
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 30 [paras[0], 0, paras[0].firstChild, 7] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 45 [document, -1] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 49 [document, 3] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 50 [comment, -1] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 53 [comment, 96] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 31 [testDiv, 2, paras[4], 1] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 31 [testDiv, 2, paras[4], 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 45 [document, -1] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Element node <p id="c">Qrstuvwx</p>
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 49 [document, 3] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 50 [comment, -1] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 53 [comment, 96] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 32 [testDiv, 1, paras[2].firstChild, 5] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 45 [document, -1] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 49 [document, 3] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 50 [comment, -1] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 53 [comment, 96] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <html><head><title>Selection extend() tests</title>
-<meta...
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 33 [document.documentElement, 1, document.body, 0] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 33 [document.documentElement, 1, document.body, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 0 [paras[0].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 1 [paras[0].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 2 [paras[0].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 3 [paras[0].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 4 [paras[0].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 5 [paras[0].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 6 [paras[0].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 7 [paras[0].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 8 [paras[1].firstChild, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 9 [paras[1].firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 10 [paras[1].firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 11 [paras[1].firstChild, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 12 [paras[1].firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 13 [paras[1].firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 14 [paras[1].firstChild, 10] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 15 [paras[1].firstChild, 65535] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 16 [detachedPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 17 [detachedPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 18 [detachedPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 19 [detachedPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 20 [foreignPara1.firstChild, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 21 [foreignPara1.firstChild, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 22 [foreignPara1.firstChild, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 23 [foreignPara1.firstChild, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 24 [document.documentElement, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 24 [document.documentElement, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 25 [document.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 25 [document.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 26 [document.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 26 [document.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 27 [document.documentElement, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 27 [document.documentElement, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 28 [document.documentElement, 7] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 28 [document.documentElement, 7] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 29 [document.head, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 29 [document.head, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 30 [document.body, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 30 [document.body, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 31 [foreignDoc.documentElement, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 32 [foreignDoc.documentElement, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 33 [foreignDoc.head, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 34 [foreignDoc.body, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 35 [paras[0], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 35 [paras[0], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 36 [paras[0], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 36 [paras[0], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 37 [paras[0], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 37 [paras[0], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 38 [paras[1], 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 38 [paras[1], 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 39 [paras[1], 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 39 [paras[1], 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 40 [paras[1], 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 40 [paras[1], 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 41 [detachedPara1, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 41 [detachedPara1, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 42 [detachedPara1, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 42 [detachedPara1, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 43 [testDiv, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 43 [testDiv, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 44 [testDiv, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 44 [testDiv, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 45 [document, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 45 [document, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 46 [document, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 46 [document, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 47 [document, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 47 [document, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 48 [document, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 48 [document, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 49 [document, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 49 [document, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 50 [comment, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 50 [comment, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 51 [comment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 51 [comment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 52 [comment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 52 [comment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 53 [comment, 96] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 53 [comment, 96] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 54 [foreignDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 54 [foreignDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 55 [foreignDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 55 [foreignDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 56 [foreignComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 56 [foreignComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 57 [foreignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 58 [foreignTextNode, 36] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 59 [xmlDoc, -1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 59 [xmlDoc, -1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 60 [xmlDoc, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 60 [xmlDoc, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 61 [xmlDoc, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 61 [xmlDoc, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 62 [xmlDoc, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 62 [xmlDoc, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 63 [xmlComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 63 [xmlComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 64 [xmlComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 64 [xmlComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 65 [processingInstruction, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 65 [processingInstruction, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 66 [processingInstruction, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 66 [processingInstruction, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 67 [processingInstruction, 9] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 67 [processingInstruction, 9] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 68 [detachedTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 69 [detachedTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 70 [detachedForeignTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 71 [detachedForeignTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 72 [detachedXmlTextNode, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 73 [detachedXmlTextNode, 8] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 74 [detachedProcessingInstruction, 12] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 75 [detachedComment, 3] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 75 [detachedComment, 3] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 76 [detachedComment, 5] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 76 [detachedComment, 5] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 77 [detachedForeignComment, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 78 [detachedForeignComment, 4] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 79 [detachedXmlComment, 2] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 80 [docfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 80 [docfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 81 [foreignDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 82 [xmlDocfrag, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 83 [doctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 83 [doctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 84 [doctype, -17] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 84 [doctype, -17] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 85 [doctype, 1] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 85 [doctype, 1] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 86 [foreignDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-FAIL extend() forwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: rangeCount must be correct expected 1 but got 0
-FAIL extend() backwards with range 34 [foreignDoc.documentElement, 1, foreignDoc.body, 0] and point 87 [xmlDoctype, 0] Failed to execute 'extend' on 'Selection': This Selection object doesn't have any Ranges.
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 45 [document, -1] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 49 [document, 3] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 50 [comment, -1] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 53 [comment, 96] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Document node with 2 children
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 35 [document, 0, document, 1] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 35 [document, 0, document, 1] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 35 [document, 0, document, 1] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 45 [document, -1] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 49 [document, 3] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 50 [comment, -1] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 53 [comment, 96] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Document node with 2 children
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 36 [document, 0, document, 2] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 36 [document, 0, document, 2] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 36 [document, 0, document, 2] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 45 [document, -1] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 49 [document, 3] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 50 [comment, -1] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 53 [comment, 96] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Document node with 2 children
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 37 [document, 1, document, 2] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 37 [document, 1, document, 2] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 37 [document, 1, document, 2] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 1 [paras[0].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 2 [paras[0].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 3 [paras[0].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 4 [paras[0].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 5 [paras[0].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 6 [paras[0].firstChild, 10] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 9 [paras[1].firstChild, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 10 [paras[1].firstChild, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 11 [paras[1].firstChild, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 12 [paras[1].firstChild, 8] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 13 [paras[1].firstChild, 9] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 24 [document.documentElement, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 25 [document.documentElement, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 25 [document.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 26 [document.documentElement, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 26 [document.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 27 [document.documentElement, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 27 [document.documentElement, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 28 [document.documentElement, 7] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 29 [document.head, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 29 [document.head, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 30 [document.body, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 30 [document.body, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 35 [paras[0], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 35 [paras[0], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 36 [paras[0], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 36 [paras[0], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 37 [paras[0], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 38 [paras[1], 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 38 [paras[1], 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 39 [paras[1], 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 39 [paras[1], 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 40 [paras[1], 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 41 [detachedPara1, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 42 [detachedPara1, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 43 [testDiv, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 43 [testDiv, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 44 [testDiv, 3] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 44 [testDiv, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 45 [document, -1] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 45 [document, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 46 [document, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 46 [document, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 47 [document, 1] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 47 [document, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 48 [document, 2] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 48 [document, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 49 [document, 3] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 49 [document, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 50 [comment, -1] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 50 [comment, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 51 [comment, 0] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 51 [comment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 52 [comment, 4] assert_equals: anchorNode must not change if the node passed to extend() has the same root as the original range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 52 [comment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 53 [comment, 96] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 53 [comment, 96] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 54 [foreignDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 55 [foreignDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 56 [foreignComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 59 [xmlDoc, -1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 60 [xmlDoc, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 61 [xmlDoc, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 62 [xmlDoc, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 63 [xmlComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 64 [xmlComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 65 [processingInstruction, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 66 [processingInstruction, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 67 [processingInstruction, 9] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 75 [detachedComment, 3] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 76 [detachedComment, 5] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 80 [docfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s...
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 83 [doctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() forwards with range 38 [testDiv, 0, comment, 5] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 84 [doctype, -17] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 85 [doctype, 1] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 38 [testDiv, 0, comment, 5] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 38 [testDiv, 0, comment, 5] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: startContainer must be correct expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 0 [paras[0].firstChild, -1] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 0 [paras[0].firstChild, -1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 1 [paras[0].firstChild, 0] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 1 [paras[0].firstChild, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 2 [paras[0].firstChild, 1] assert_equals: focusOffset must be the offset passed to extend() expected 1 but got 2
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 2 [paras[0].firstChild, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 3 [paras[0].firstChild, 2] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 3 [paras[0].firstChild, 2] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 4 [paras[0].firstChild, 8] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 4 [paras[0].firstChild, 8] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 5 [paras[0].firstChild, 9] assert_equals: focusOffset must be the offset passed to extend() expected 9 but got 10
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 5 [paras[0].firstChild, 9] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 6 [paras[0].firstChild, 10] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 6 [paras[0].firstChild, 10] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 7 [paras[0].firstChild, 65535] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 7 [paras[0].firstChild, 65535] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 8 [paras[1].firstChild, -1] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 8 [paras[1].firstChild, -1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 9 [paras[1].firstChild, 0] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 9 [paras[1].firstChild, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 10 [paras[1].firstChild, 1] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 10 [paras[1].firstChild, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 11 [paras[1].firstChild, 2] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 11 [paras[1].firstChild, 2] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 12 [paras[1].firstChild, 8] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 12 [paras[1].firstChild, 8] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 13 [paras[1].firstChild, 9] assert_equals: focusNode must be the node passed to extend() expected Text node "Ijklmnop
-" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 13 [paras[1].firstChild, 9] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 14 [paras[1].firstChild, 10] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 14 [paras[1].firstChild, 10] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 15 [paras[1].firstChild, 65535] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 15 [paras[1].firstChild, 65535] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 16 [detachedPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 16 [detachedPara1.firstChild, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 17 [detachedPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 17 [detachedPara1.firstChild, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 18 [detachedPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Opqrstuv" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 18 [detachedPara1.firstChild, 8] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 19 [detachedPara1.firstChild, 9] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 19 [detachedPara1.firstChild, 9] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 20 [foreignPara1.firstChild, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 20 [foreignPara1.firstChild, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 21 [foreignPara1.firstChild, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 21 [foreignPara1.firstChild, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 22 [foreignPara1.firstChild, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Efghijkl" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 22 [foreignPara1.firstChild, 8] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 23 [foreignPara1.firstChild, 9] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 23 [foreignPara1.firstChild, 9] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 24 [document.documentElement, -1] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 24 [document.documentElement, -1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 25 [document.documentElement, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 25 [document.documentElement, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 26 [document.documentElement, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 26 [document.documentElement, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 27 [document.documentElement, 2] assert_equals: focusNode must be the node passed to extend() expected Element node <html><head><title>Selection extend() tests</title>
-<meta... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 27 [document.documentElement, 2] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 28 [document.documentElement, 7] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 28 [document.documentElement, 7] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 29 [document.head, 1] assert_equals: focusNode must be the node passed to extend() expected Element node <head><title>Selection extend() tests</title>
-<meta chars... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 29 [document.head, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 30 [document.body, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 30 [document.body, 3] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 31 [foreignDoc.documentElement, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 31 [foreignDoc.documentElement, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 32 [foreignDoc.documentElement, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <html><head><title></title></head><body><p>Efghijkl</p><p... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 32 [foreignDoc.documentElement, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 33 [foreignDoc.head, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <head><title></title></head> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 33 [foreignDoc.head, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 34 [foreignDoc.body, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <body><p>Efghijkl</p><p>Mnopqrst</p>I admit that I harbor... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 34 [foreignDoc.body, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 35 [paras[0], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 35 [paras[0], 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 36 [paras[0], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 36 [paras[0], 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 37 [paras[0], 2] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 37 [paras[0], 2] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 38 [paras[1], 0] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 38 [paras[1], 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 39 [paras[1], 1] assert_equals: focusNode must be the node passed to extend() expected Element node <p id="b" style="display:none">Ijklmnop
-</p> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 39 [paras[1], 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 40 [paras[1], 2] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 40 [paras[1], 2] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 41 [detachedPara1, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 41 [detachedPara1, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 42 [detachedPara1, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Element node <p>Opqrstuv</p> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 42 [detachedPara1, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 43 [testDiv, 0] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 43 [testDiv, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 44 [testDiv, 3] assert_equals: focusNode must be the node passed to extend() expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ
-</p><p id="b" s... but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 44 [testDiv, 3] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 45 [document, -1] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 45 [document, -1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 46 [document, 0] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 46 [document, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 47 [document, 1] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ
-"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 47 [document, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 48 [document, 2] assert_equals: focusNode must be the node passed to extend() expected Document node with 2 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 48 [document, 2] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 49 [document, 3] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 49 [document, 3] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 50 [comment, -1] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 50 [comment, -1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 51 [comment, 0] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 51 [comment, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 52 [comment, 4] assert_equals: focusNode must be the node passed to extend() expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 52 [comment, 4] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 53 [comment, 96] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 53 [comment, 96] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 54 [foreignDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 54 [foreignDoc, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 55 [foreignDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 3 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 55 [foreignDoc, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 56 [foreignComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--"Commenter" and "commentator" mean different things.  I'v...--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 56 [foreignComment, 2] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 57 [foreignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 57 [foreignTextNode, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 58 [foreignTextNode, 36] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "I admit that I harbor doubts about whether we really need..." but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 58 [foreignTextNode, 36] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 59 [xmlDoc, -1] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 59 [xmlDoc, -1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 60 [xmlDoc, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 60 [xmlDoc, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 61 [xmlDoc, 1] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Document node with 4 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 61 [xmlDoc, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 62 [xmlDoc, 5] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 62 [xmlDoc, 5] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 63 [xmlComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 63 [xmlComment, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 64 [xmlComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--I maliciously created a comment that will break incautiou...--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 64 [xmlComment, 4] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 65 [processingInstruction, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 65 [processingInstruction, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 66 [processingInstruction, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 66 [processingInstruction, 5] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 67 [processingInstruction, 9] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "somePI" and data "Did you know that \":syn sync fromstart\" is very useful wh..." but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 67 [processingInstruction, 9] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 68 [detachedTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 68 [detachedTextNode, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 69 [detachedTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Uvwxyzab" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 69 [detachedTextNode, 8] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 70 [detachedForeignTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 70 [detachedForeignTextNode, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 71 [detachedForeignTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Cdefghij" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 71 [detachedForeignTextNode, 8] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 72 [detachedXmlTextNode, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 72 [detachedXmlTextNode, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 73 [detachedXmlTextNode, 8] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Text node "Klmnopqr" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 73 [detachedXmlTextNode, 8] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 74 [detachedProcessingInstruction, 12] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected ProcessingInstruction node with target "whippoorwill" and data "chirp chirp chirp" but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 74 [detachedProcessingInstruction, 12] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 75 [detachedComment, 3] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 75 [detachedComment, 3] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 76 [detachedComment, 5] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--Stuvwxyz--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 76 [detachedComment, 5] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 77 [detachedForeignComment, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 77 [detachedForeignComment, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 78 [detachedForeignComment, 4] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--אריה יהודה--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 78 [detachedForeignComment, 4] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 79 [detachedXmlComment, 2] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected Comment node <!--בן חיים אליעזר--> but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 79 [detachedXmlComment, 2] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 80 [docfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 80 [docfrag, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 81 [foreignDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 81 [foreignDocfrag, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 82 [xmlDocfrag, 0] assert_equals: anchorNode must be the node passed to extend() if it has a different root from the original range expected DocumentFragment node with 0 children but got Text node "Qrstuvwx"
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 82 [xmlDocfrag, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 83 [doctype, 0] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 83 [doctype, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-FAIL extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 84 [doctype, -17] assert_throws: extend() to a doctype must throw InvalidNodeTypeError function "function () {
-            selection.extend(node, offset);
-        }" threw object "IndexSizeError: Failed to execute 'extend' on 'Selection': -17 is not a valid offset." that is not a DOMException INVALID_NODE_TYPE_ERR: property "code" is equal to 1, expected 24
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 84 [doctype, -17] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 85 [doctype, 1] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 85 [doctype, 1] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 86 [foreignDoctype, 0] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 86 [foreignDoctype, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-PASS extend() forwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 87 [xmlDoctype, 0] 
-FAIL extend() backwards with range 39 [paras[2].firstChild, 4, comment, 2] and point 87 [xmlDoctype, 0] assert_equals: Sanity check: endContainer must be correct expected Comment node <!--Alphabet soup?--> but got Text node "Qrstuvwx"
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/setBaseAndExtent-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/setBaseAndExtent-expected.txt
index 3e6e91ea..19eb023 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/selection/setBaseAndExtent-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/selection/setBaseAndExtent-expected.txt
@@ -1,4 +1,5 @@
 This is a testharness.js-based test.
+Found 120 tests; 119 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] setBaseAndExtent() 
 PASS Reverse range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] setBaseAndExtent() 
 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] setBaseAndExtent() 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webvtt/interfaces-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webvtt/interfaces-expected.txt
index dc67b94f..a980177 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/webvtt/interfaces-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/webvtt/interfaces-expected.txt
@@ -1,4 +1,5 @@
 This is a testharness.js-based test.
+Found 50 tests; 40 PASS, 10 FAIL, 0 TIMEOUT, 0 NOTRUN.
 FAIL VTTCue interface: existence and properties of interface object Cannot read property 'has_extended_attribute' of undefined
 PASS VTTCue interface object length 
 PASS VTTCue interface object name 
diff --git a/third_party/WebKit/Source/bindings/scripts/generate_init_partial_interfaces.py b/third_party/WebKit/Source/bindings/scripts/generate_init_partial_interfaces.py
index 2ea53ec..ab5bbe633 100755
--- a/third_party/WebKit/Source/bindings/scripts/generate_init_partial_interfaces.py
+++ b/third_party/WebKit/Source/bindings/scripts/generate_init_partial_interfaces.py
@@ -22,7 +22,6 @@
 _COPYRIGHT = """// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
-
 """
 
 _INIT_PARTIAL_INTERFACE = """%s
@@ -30,8 +29,7 @@
 
 namespace blink {
 
-void initPartialInterfacesInModules()
-{
+void initPartialInterfacesInModules() {
 %s
 }
 
@@ -93,7 +91,7 @@
 
     includes = ['#include "bindings/modules/v8/%s.h"' % interface_name
                 for interface_name in interface_names]
-    initialize_calls = ['    %s::initialize();' % interface_name
+    initialize_calls = ['  %s::initialize();' % interface_name
                         for interface_name in interface_names]
 
     content = _INIT_PARTIAL_INTERFACE % (
diff --git a/third_party/WebKit/Source/core/page/NetworkStateNotifier.cpp b/third_party/WebKit/Source/core/page/NetworkStateNotifier.cpp
index 9998e33..b35bf70 100644
--- a/third_party/WebKit/Source/core/page/NetworkStateNotifier.cpp
+++ b/third_party/WebKit/Source/core/page/NetworkStateNotifier.cpp
@@ -25,10 +25,9 @@
 
 #include "core/page/NetworkStateNotifier.h"
 
-#include "core/dom/ExecutionContext.h"
-#include "core/dom/ExecutionContextTask.h"
 #include "core/dom/TaskRunnerHelper.h"
 #include "core/page/Page.h"
+#include "platform/CrossThreadFunctional.h"
 #include "wtf/Assertions.h"
 #include "wtf/Functional.h"
 #include "wtf/PtrUtil.h"
@@ -86,25 +85,25 @@
 }
 
 void NetworkStateNotifier::addObserver(NetworkStateObserver* observer,
-                                       ExecutionContext* context) {
-  ASSERT(context->isContextThread());
-  ASSERT(observer);
+                                       WebTaskRunner* taskRunner) {
+  DCHECK(taskRunner->runsTasksOnCurrentThread());
+  DCHECK(observer);
 
   MutexLocker locker(m_mutex);
-  ObserverListMap::AddResult result = m_observers.insert(context, nullptr);
+  ObserverListMap::AddResult result = m_observers.insert(taskRunner, nullptr);
   if (result.isNewEntry)
     result.storedValue->value = WTF::wrapUnique(new ObserverList);
 
-  ASSERT(result.storedValue->value->observers.find(observer) == kNotFound);
+  DCHECK(result.storedValue->value->observers.find(observer) == kNotFound);
   result.storedValue->value->observers.push_back(observer);
 }
 
 void NetworkStateNotifier::removeObserver(NetworkStateObserver* observer,
-                                          ExecutionContext* context) {
-  ASSERT(context->isContextThread());
-  ASSERT(observer);
+                                          WebTaskRunner* taskRunner) {
+  DCHECK(taskRunner->runsTasksOnCurrentThread());
+  DCHECK(observer);
 
-  ObserverList* observerList = lockAndFindObserverList(context);
+  ObserverList* observerList = lockAndFindObserverList(taskRunner);
   if (!observerList)
     return;
 
@@ -116,7 +115,7 @@
   }
 
   if (!observerList->iterating && !observerList->zeroedObservers.isEmpty())
-    collectZeroedObservers(observerList, context);
+    collectZeroedObservers(observerList, taskRunner);
 }
 
 void NetworkStateNotifier::setOverride(bool onLine,
@@ -147,28 +146,30 @@
 void NetworkStateNotifier::notifyObservers(WebConnectionType type,
                                            double maxBandwidthMbps) {
   DCHECK(isMainThread());
+  MutexLocker locker(m_mutex);
   for (const auto& entry : m_observers) {
-    ExecutionContext* context = entry.key;
-    context->postTask(
-        TaskType::Networking, BLINK_FROM_HERE,
-        createCrossThreadTask(
-            &NetworkStateNotifier::notifyObserversOfConnectionChangeOnContext,
-            crossThreadUnretained(this), type, maxBandwidthMbps));
+    WebTaskRunner* taskRunner = entry.key;
+    taskRunner->postTask(
+        BLINK_FROM_HERE,
+        crossThreadBind(&NetworkStateNotifier::
+                            notifyObserversOfConnectionChangeOnTaskRunner,
+                        crossThreadUnretained(this), type, maxBandwidthMbps,
+                        crossThreadUnretained(taskRunner)));
   }
 }
 
-void NetworkStateNotifier::notifyObserversOfConnectionChangeOnContext(
+void NetworkStateNotifier::notifyObserversOfConnectionChangeOnTaskRunner(
     WebConnectionType type,
     double maxBandwidthMbps,
-    ExecutionContext* context) {
-  ObserverList* observerList = lockAndFindObserverList(context);
+    WebTaskRunner* taskRunner) {
+  ObserverList* observerList = lockAndFindObserverList(taskRunner);
 
   // The context could have been removed before the notification task got to
   // run.
   if (!observerList)
     return;
 
-  ASSERT(context->isContextThread());
+  DCHECK(taskRunner->runsTasksOnCurrentThread());
 
   observerList->iterating = true;
 
@@ -181,20 +182,20 @@
   observerList->iterating = false;
 
   if (!observerList->zeroedObservers.isEmpty())
-    collectZeroedObservers(observerList, context);
+    collectZeroedObservers(observerList, taskRunner);
 }
 
 NetworkStateNotifier::ObserverList*
-NetworkStateNotifier::lockAndFindObserverList(ExecutionContext* context) {
+NetworkStateNotifier::lockAndFindObserverList(WebTaskRunner* taskRunner) {
   MutexLocker locker(m_mutex);
-  ObserverListMap::iterator it = m_observers.find(context);
+  ObserverListMap::iterator it = m_observers.find(taskRunner);
   return it == m_observers.end() ? nullptr : it->value.get();
 }
 
 void NetworkStateNotifier::collectZeroedObservers(ObserverList* list,
-                                                  ExecutionContext* context) {
-  ASSERT(context->isContextThread());
-  ASSERT(!list->iterating);
+                                                  WebTaskRunner* taskRunner) {
+  DCHECK(taskRunner->runsTasksOnCurrentThread());
+  DCHECK(!list->iterating);
 
   // If any observers were removed during the iteration they will have
   // 0 values, clean them up.
@@ -205,7 +206,7 @@
 
   if (list->observers.isEmpty()) {
     MutexLocker locker(m_mutex);
-    m_observers.erase(context);  // deletes list
+    m_observers.erase(taskRunner);  // deletes list
   }
 }
 
diff --git a/third_party/WebKit/Source/core/page/NetworkStateNotifier.h b/third_party/WebKit/Source/core/page/NetworkStateNotifier.h
index dcb0abf..d7ab66b6 100644
--- a/third_party/WebKit/Source/core/page/NetworkStateNotifier.h
+++ b/third_party/WebKit/Source/core/page/NetworkStateNotifier.h
@@ -26,15 +26,15 @@
 #ifndef NetworkStateNotifier_h
 #define NetworkStateNotifier_h
 
+#include <memory>
 #include "core/CoreExport.h"
-#include "core/dom/ExecutionContext.h"
+#include "platform/WebTaskRunner.h"
 #include "public/platform/WebConnectionType.h"
 #include "wtf/Allocator.h"
 #include "wtf/HashMap.h"
 #include "wtf/Noncopyable.h"
 #include "wtf/ThreadingPrimitives.h"
 #include "wtf/Vector.h"
-#include <memory>
 
 namespace blink {
 
@@ -45,7 +45,7 @@
  public:
   class NetworkStateObserver {
    public:
-    // Will be called on the thread of the context passed in addObserver.
+    // Will be called on the task runner that is passed in addObserver.
     virtual void connectionChange(WebConnectionType,
                                   double maxBandwidthMbps) = 0;
   };
@@ -110,12 +110,12 @@
   void setOverride(bool onLine, WebConnectionType, double maxBandwidthMbps);
   void clearOverride();
 
-  // Must be called on the context's thread. An added observer must be removed
-  // before its ExecutionContext is deleted. It's possible for an observer to
-  // be called twice for the same event if it is first removed and then added
-  // during notification.
-  void addObserver(NetworkStateObserver*, ExecutionContext*);
-  void removeObserver(NetworkStateObserver*, ExecutionContext*);
+  // Must be called on the given task runner. An added observer must be removed
+  // before the observer or its execution context goes away. It's possible for
+  // an observer to be called twice for the same event if it is first removed
+  // and then added during notification.
+  void addObserver(NetworkStateObserver*, WebTaskRunner*);
+  void removeObserver(NetworkStateObserver*, WebTaskRunner*);
 
  private:
   struct ObserverList {
@@ -149,23 +149,21 @@
   };
 
   // The ObserverListMap is cross-thread accessed, adding/removing Observers
-  // running within an ExecutionContext. Kept off-heap to ease cross-thread
-  // allocation and use; the observers are (already) responsible for explicitly
-  // unregistering while finalizing.
+  // running on a task runner.
   using ObserverListMap =
-      HashMap<UntracedMember<ExecutionContext>, std::unique_ptr<ObserverList>>;
+      HashMap<WebTaskRunner*, std::unique_ptr<ObserverList>>;
 
   void notifyObservers(WebConnectionType, double maxBandwidthMbps);
-  void notifyObserversOfConnectionChangeOnContext(WebConnectionType,
-                                                  double maxBandwidthMbps,
-                                                  ExecutionContext*);
+  void notifyObserversOfConnectionChangeOnTaskRunner(WebConnectionType,
+                                                     double maxBandwidthMbps,
+                                                     WebTaskRunner*);
 
-  ObserverList* lockAndFindObserverList(ExecutionContext*);
+  ObserverList* lockAndFindObserverList(WebTaskRunner*);
 
   // Removed observers are nulled out in the list in case the list is being
   // iterated over. Once done iterating, call this to clean up nulled
   // observers.
-  void collectZeroedObservers(ObserverList*, ExecutionContext*);
+  void collectZeroedObservers(ObserverList*, WebTaskRunner*);
 
   mutable Mutex m_mutex;
   NetworkState m_state;
diff --git a/third_party/WebKit/Source/core/page/NetworkStateNotifierTest.cpp b/third_party/WebKit/Source/core/page/NetworkStateNotifierTest.cpp
index 0876f4d..8a6d494 100644
--- a/third_party/WebKit/Source/core/page/NetworkStateNotifierTest.cpp
+++ b/third_party/WebKit/Source/core/page/NetworkStateNotifierTest.cpp
@@ -31,6 +31,7 @@
 #include "core/page/NetworkStateNotifier.h"
 
 #include "core/dom/Document.h"
+#include "core/dom/TaskRunnerHelper.h"
 #include "platform/testing/UnitTestHelpers.h"
 #include "public/platform/Platform.h"
 #include "public/platform/WebConnectionType.h"
@@ -89,9 +90,13 @@
     m_notifier.setWebConnection(WebConnectionTypeUnknown, 0.0);
   }
 
-  ExecutionContext* getExecutionContext() { return m_document.get(); }
+  WebTaskRunner* getTaskRunner() {
+    return TaskRunnerHelper::get(TaskType::Networking, m_document.get()).get();
+  }
 
-  ExecutionContext* executionContext2() { return m_document2.get(); }
+  WebTaskRunner* getTaskRunner2() {
+    return TaskRunnerHelper::get(TaskType::Networking, m_document2.get()).get();
+  }
 
  protected:
   void setConnection(WebConnectionType type, double maxBandwidthMbps) {
@@ -101,17 +106,16 @@
 
   void addObserverOnNotification(StateObserver* observer,
                                  StateObserver* observerToAdd) {
-    observer->setNotificationCallback(bind(
-        &NetworkStateNotifier::addObserver, WTF::unretained(&m_notifier),
-        WTF::unretained(observerToAdd), wrapPersistent(getExecutionContext())));
+    observer->setNotificationCallback(
+        bind(&NetworkStateNotifier::addObserver, WTF::unretained(&m_notifier),
+             WTF::unretained(observerToAdd), WTF::unretained(getTaskRunner())));
   }
 
   void removeObserverOnNotification(StateObserver* observer,
                                     StateObserver* observerToRemove) {
-    observer->setNotificationCallback(
-        bind(&NetworkStateNotifier::removeObserver,
-             WTF::unretained(&m_notifier), WTF::unretained(observerToRemove),
-             wrapPersistent(getExecutionContext())));
+    observer->setNotificationCallback(bind(
+        &NetworkStateNotifier::removeObserver, WTF::unretained(&m_notifier),
+        WTF::unretained(observerToRemove), WTF::unretained(getTaskRunner())));
   }
 
   bool verifyObservations(const StateObserver& observer,
@@ -130,7 +134,7 @@
 
 TEST_F(NetworkStateNotifierTest, AddObserver) {
   StateObserver observer;
-  m_notifier.addObserver(&observer, getExecutionContext());
+  m_notifier.addObserver(&observer, getTaskRunner());
   EXPECT_TRUE(verifyObservations(observer, WebConnectionTypeNone,
                                  kNoneMaxBandwidthMbps));
 
@@ -142,9 +146,9 @@
 
 TEST_F(NetworkStateNotifierTest, RemoveObserver) {
   StateObserver observer1, observer2;
-  m_notifier.addObserver(&observer1, getExecutionContext());
-  m_notifier.removeObserver(&observer1, getExecutionContext());
-  m_notifier.addObserver(&observer2, getExecutionContext());
+  m_notifier.addObserver(&observer1, getTaskRunner());
+  m_notifier.removeObserver(&observer1, getTaskRunner());
+  m_notifier.addObserver(&observer2, getTaskRunner());
 
   setConnection(WebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
   EXPECT_TRUE(verifyObservations(observer1, WebConnectionTypeNone,
@@ -155,8 +159,8 @@
 
 TEST_F(NetworkStateNotifierTest, RemoveSoleObserver) {
   StateObserver observer1;
-  m_notifier.addObserver(&observer1, getExecutionContext());
-  m_notifier.removeObserver(&observer1, getExecutionContext());
+  m_notifier.addObserver(&observer1, getTaskRunner());
+  m_notifier.removeObserver(&observer1, getTaskRunner());
 
   setConnection(WebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
   EXPECT_TRUE(verifyObservations(observer1, WebConnectionTypeNone,
@@ -165,7 +169,7 @@
 
 TEST_F(NetworkStateNotifierTest, AddObserverWhileNotifying) {
   StateObserver observer1, observer2;
-  m_notifier.addObserver(&observer1, getExecutionContext());
+  m_notifier.addObserver(&observer1, getTaskRunner());
   addObserverOnNotification(&observer1, &observer2);
 
   setConnection(WebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
@@ -177,7 +181,7 @@
 
 TEST_F(NetworkStateNotifierTest, RemoveSoleObserverWhileNotifying) {
   StateObserver observer1;
-  m_notifier.addObserver(&observer1, getExecutionContext());
+  m_notifier.addObserver(&observer1, getTaskRunner());
   removeObserverOnNotification(&observer1, &observer1);
 
   setConnection(WebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
@@ -191,8 +195,8 @@
 
 TEST_F(NetworkStateNotifierTest, RemoveCurrentObserverWhileNotifying) {
   StateObserver observer1, observer2;
-  m_notifier.addObserver(&observer1, getExecutionContext());
-  m_notifier.addObserver(&observer2, getExecutionContext());
+  m_notifier.addObserver(&observer1, getTaskRunner());
+  m_notifier.addObserver(&observer2, getTaskRunner());
   removeObserverOnNotification(&observer1, &observer1);
 
   setConnection(WebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
@@ -210,8 +214,8 @@
 
 TEST_F(NetworkStateNotifierTest, RemovePastObserverWhileNotifying) {
   StateObserver observer1, observer2;
-  m_notifier.addObserver(&observer1, getExecutionContext());
-  m_notifier.addObserver(&observer2, getExecutionContext());
+  m_notifier.addObserver(&observer1, getTaskRunner());
+  m_notifier.addObserver(&observer2, getTaskRunner());
   removeObserverOnNotification(&observer2, &observer1);
 
   setConnection(WebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
@@ -227,9 +231,9 @@
 
 TEST_F(NetworkStateNotifierTest, RemoveFutureObserverWhileNotifying) {
   StateObserver observer1, observer2, observer3;
-  m_notifier.addObserver(&observer1, getExecutionContext());
-  m_notifier.addObserver(&observer2, getExecutionContext());
-  m_notifier.addObserver(&observer3, getExecutionContext());
+  m_notifier.addObserver(&observer1, getTaskRunner());
+  m_notifier.addObserver(&observer2, getTaskRunner());
+  m_notifier.addObserver(&observer3, getTaskRunner());
   removeObserverOnNotification(&observer1, &observer2);
 
   setConnection(WebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
@@ -243,8 +247,8 @@
 
 TEST_F(NetworkStateNotifierTest, MultipleContextsAddObserver) {
   StateObserver observer1, observer2;
-  m_notifier.addObserver(&observer1, getExecutionContext());
-  m_notifier.addObserver(&observer2, executionContext2());
+  m_notifier.addObserver(&observer1, getTaskRunner());
+  m_notifier.addObserver(&observer2, getTaskRunner2());
 
   setConnection(WebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
   EXPECT_TRUE(verifyObservations(observer1, WebConnectionTypeBluetooth,
@@ -255,9 +259,9 @@
 
 TEST_F(NetworkStateNotifierTest, RemoveContext) {
   StateObserver observer1, observer2;
-  m_notifier.addObserver(&observer1, getExecutionContext());
-  m_notifier.addObserver(&observer2, executionContext2());
-  m_notifier.removeObserver(&observer2, executionContext2());
+  m_notifier.addObserver(&observer1, getTaskRunner());
+  m_notifier.addObserver(&observer2, getTaskRunner2());
+  m_notifier.removeObserver(&observer2, getTaskRunner2());
 
   setConnection(WebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
   EXPECT_TRUE(verifyObservations(observer1, WebConnectionTypeBluetooth,
@@ -268,10 +272,10 @@
 
 TEST_F(NetworkStateNotifierTest, RemoveAllContexts) {
   StateObserver observer1, observer2;
-  m_notifier.addObserver(&observer1, getExecutionContext());
-  m_notifier.addObserver(&observer2, executionContext2());
-  m_notifier.removeObserver(&observer1, getExecutionContext());
-  m_notifier.removeObserver(&observer2, executionContext2());
+  m_notifier.addObserver(&observer1, getTaskRunner());
+  m_notifier.addObserver(&observer2, getTaskRunner2());
+  m_notifier.removeObserver(&observer1, getTaskRunner());
+  m_notifier.removeObserver(&observer2, getTaskRunner2());
 
   setConnection(WebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
   EXPECT_TRUE(verifyObservations(observer1, WebConnectionTypeNone,
@@ -282,7 +286,7 @@
 
 TEST_F(NetworkStateNotifierTest, SetOverride) {
   StateObserver observer;
-  m_notifier.addObserver(&observer, getExecutionContext());
+  m_notifier.addObserver(&observer, getTaskRunner());
 
   m_notifier.setOnLine(true);
   setConnection(WebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
@@ -320,12 +324,12 @@
   EXPECT_EQ(WebConnectionTypeNone, m_notifier.connectionType());
   EXPECT_EQ(kNoneMaxBandwidthMbps, m_notifier.maxBandwidth());
 
-  m_notifier.removeObserver(&observer, getExecutionContext());
+  m_notifier.removeObserver(&observer, getTaskRunner());
 }
 
 TEST_F(NetworkStateNotifierTest, NoExtraNotifications) {
   StateObserver observer;
-  m_notifier.addObserver(&observer, getExecutionContext());
+  m_notifier.addObserver(&observer, getTaskRunner());
 
   setConnection(WebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
   EXPECT_TRUE(verifyObservations(observer, WebConnectionTypeBluetooth,
@@ -348,7 +352,7 @@
                                  kBluetoothMaxBandwidthMbps));
   EXPECT_EQ(observer.callbackCount(), 3);
 
-  m_notifier.removeObserver(&observer, getExecutionContext());
+  m_notifier.removeObserver(&observer, getTaskRunner());
 }
 
 TEST_F(NetworkStateNotifierTest, NoNotificationOnInitialization) {
@@ -356,7 +360,7 @@
   Persistent<Document> document(Document::create());
   StateObserver observer;
 
-  notifier.addObserver(&observer, document.get());
+  notifier.addObserver(&observer, getTaskRunner());
   testing::runPendingTasks();
   EXPECT_EQ(observer.callbackCount(), 0);
 
diff --git a/third_party/WebKit/Source/modules/netinfo/NetworkInformation.cpp b/third_party/WebKit/Source/modules/netinfo/NetworkInformation.cpp
index e7cadfbf..7ff297e 100644
--- a/third_party/WebKit/Source/modules/netinfo/NetworkInformation.cpp
+++ b/third_party/WebKit/Source/modules/netinfo/NetworkInformation.cpp
@@ -5,6 +5,7 @@
 #include "modules/netinfo/NetworkInformation.h"
 
 #include "core/dom/ExecutionContext.h"
+#include "core/dom/TaskRunnerHelper.h"
 #include "core/events/Event.h"
 #include "core/page/NetworkStateNotifier.h"
 #include "modules/EventTargetModules.h"
@@ -129,14 +130,18 @@
 void NetworkInformation::startObserving() {
   if (!m_observing && !m_contextStopped) {
     m_type = networkStateNotifier().connectionType();
-    networkStateNotifier().addObserver(this, getExecutionContext());
+    networkStateNotifier().addObserver(
+        this, TaskRunnerHelper::get(TaskType::Networking, getExecutionContext())
+                  .get());
     m_observing = true;
   }
 }
 
 void NetworkInformation::stopObserving() {
   if (m_observing) {
-    networkStateNotifier().removeObserver(this, getExecutionContext());
+    networkStateNotifier().removeObserver(
+        this, TaskRunnerHelper::get(TaskType::Networking, getExecutionContext())
+                  .get());
     m_observing = false;
   }
 }
diff --git a/third_party/WebKit/Source/modules/netinfo/WorkerNavigatorNetworkInformation.h b/third_party/WebKit/Source/modules/netinfo/WorkerNavigatorNetworkInformation.h
index 17063485..5ce2ae7 100644
--- a/third_party/WebKit/Source/modules/netinfo/WorkerNavigatorNetworkInformation.h
+++ b/third_party/WebKit/Source/modules/netinfo/WorkerNavigatorNetworkInformation.h
@@ -10,6 +10,7 @@
 
 namespace blink {
 
+class ExecutionContext;
 class NetworkInformation;
 class ScriptState;
 class WorkerNavigator;
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 7327695..561bd711 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -55244,6 +55244,34 @@
   </summary>
 </histogram>
 
+<histogram name="ResourcePrefetchPredictor.PrefetchHitsCount.Cached"
+    units="count">
+  <owner>lizeb@chromium.org</owner>
+  <summary>
+    Number of resources that were prefetched and requested by a page load, for
+    cached requests. Logged after the prefetcher completes.
+  </summary>
+</histogram>
+
+<histogram name="ResourcePrefetchPredictor.PrefetchHitsCount.NotCached"
+    units="count">
+  <owner>lizeb@chromium.org</owner>
+  <summary>
+    Number of resources that were prefetched and requested by a page load, for
+    non cached requests. Logged after the prefetcher completes.
+  </summary>
+</histogram>
+
+<histogram name="ResourcePrefetchPredictor.PrefetchHitsSizeKB" units="KB">
+  <owner>lizeb@chromium.org</owner>
+  <summary>
+    Amount of useful data fetched from the network for a prefetch request. This
+    is the total size of the resources accounted for in
+    ResourcePrefetchPredictor.PrefetchHitsCount.NotCached. Logged after the
+    prefetcher completes.
+  </summary>
+</histogram>
+
 <histogram name="ResourcePrefetchPredictor.PrefetchingDuration" units="ms">
   <owner>alexilin@chromium.org</owner>
   <summary>
@@ -55253,6 +55281,35 @@
   </summary>
 </histogram>
 
+<histogram name="ResourcePrefetchPredictor.PrefetchMissesCount.Cached"
+    units="count">
+  <owner>lizeb@chromium.org</owner>
+  <summary>
+    Number of resources that were prefetched but not requested by a page load,
+    for cached requests. Logged after the prefetcher completes.
+  </summary>
+</histogram>
+
+<histogram name="ResourcePrefetchPredictor.PrefetchMissesCount.NotCached"
+    units="count">
+  <owner>lizeb@chromium.org</owner>
+  <summary>
+    Number of resources that were prefetched but not requested by a page load,
+    for non cached requests, that is waste. Logged after the prefetcher
+    completes.
+  </summary>
+</histogram>
+
+<histogram name="ResourcePrefetchPredictor.PrefetchMissesSizeKB" units="KB">
+  <owner>lizeb@chromium.org</owner>
+  <summary>
+    Amount of wasted data fetched from the network for a prefetch request. This
+    is the total size of the resources accounted for in
+    ResourcePrefetchPredictor.PrefetchMissesCount.NotCached. Logged after the
+    prefetcher completes.
+  </summary>
+</histogram>
+
 <histogram name="ResourcePrefetchPredictor.ReportingEvent"
     enum="ResourcePrefetchPredictorReportingEvent">
   <owner>alexilin@chromium.org</owner>