Version 0.7.2.1 .

svn merge -c 27259 https://dart.googlecode.com/svn/branches/bleeding_edge trunk

git-svn-id: http://dart.googlecode.com/svn/trunk@27268 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 61dfe4c..129d2d9 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -9641,6 +9641,7 @@
   }
 
   static HtmlDocument _parseDocument;
+  static Range _parseRange;
   static NodeValidatorBuilder _defaultValidator;
   static _ValidatingTreeSanitizer _defaultSanitizer;
 
@@ -9686,6 +9687,7 @@
 
     if (_parseDocument == null) {
       _parseDocument = document.implementation.createHtmlDocument('');
+      _parseRange = _parseDocument.createRange();
     }
     var contextElement;
     if (this is BodyElement) {
@@ -9696,9 +9698,8 @@
     }
     var fragment;
     if (Range.supportsCreateContextualFragment) {
-      var range = _parseDocument.createRange();
-      range.selectNodeContents(contextElement);
-      fragment = range.createContextualFragment(html);
+      _parseRange.selectNodeContents(contextElement);
+      fragment = _parseRange.createContextualFragment(html);
     } else {
       contextElement._innerHtml = html;
 
diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
index 222c855..3bce62d 100644
--- a/sdk/lib/html/dartium/html_dartium.dart
+++ b/sdk/lib/html/dartium/html_dartium.dart
@@ -10056,6 +10056,7 @@
   }
 
   static HtmlDocument _parseDocument;
+  static Range _parseRange;
   static NodeValidatorBuilder _defaultValidator;
   static _ValidatingTreeSanitizer _defaultSanitizer;
 
@@ -10101,6 +10102,7 @@
 
     if (_parseDocument == null) {
       _parseDocument = document.implementation.createHtmlDocument('');
+      _parseRange = _parseDocument.createRange();
     }
     var contextElement;
     if (this is BodyElement) {
@@ -10111,9 +10113,8 @@
     }
     var fragment;
     if (Range.supportsCreateContextualFragment) {
-      var range = _parseDocument.createRange();
-      range.selectNodeContents(contextElement);
-      fragment = range.createContextualFragment(html);
+      _parseRange.selectNodeContents(contextElement);
+      fragment = _parseRange.createContextualFragment(html);
     } else {
       contextElement._innerHtml = html;
 
diff --git a/tools/VERSION b/tools/VERSION
index 77964b9..c1c78df 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -1,4 +1,4 @@
 MAJOR 0
 MINOR 7
 BUILD 2
-PATCH 0
+PATCH 1
diff --git a/tools/dom/templates/html/impl/impl_Element.darttemplate b/tools/dom/templates/html/impl/impl_Element.darttemplate
index 4c1a75a..1a556b2 100644
--- a/tools/dom/templates/html/impl/impl_Element.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Element.darttemplate
@@ -1189,6 +1189,7 @@
   }
 
   static HtmlDocument _parseDocument;
+  static Range _parseRange;
   static NodeValidatorBuilder _defaultValidator;
   static _ValidatingTreeSanitizer _defaultSanitizer;
 
@@ -1234,6 +1235,7 @@
 
     if (_parseDocument == null) {
       _parseDocument = document.implementation.createHtmlDocument('');
+      _parseRange = _parseDocument.createRange();
     }
     var contextElement;
     if (this is BodyElement) {
@@ -1244,9 +1246,8 @@
     }
     var fragment;
     if (Range.supportsCreateContextualFragment) {
-      var range = _parseDocument.createRange();
-      range.selectNodeContents(contextElement);
-      fragment = range.createContextualFragment(html);
+      _parseRange.selectNodeContents(contextElement);
+      fragment = _parseRange.createContextualFragment(html);
     } else {
       contextElement._innerHtml = html;