Version 1.5.0-dev.3.4

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

git-svn-id: http://dart.googlecode.com/svn/trunk@36871 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 84ebc80..27e0f7d 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -10262,51 +10262,59 @@
 
   @DomName('Element.offsetHeight')
   @DocsEditable()
-  final num offsetHeight;
+  num get offsetHeight => JS('num', '#.offsetHeight', this).round();
 
   @DomName('Element.offsetLeft')
   @DocsEditable()
-  final num offsetLeft;
+  num get offsetLeft => JS('num', '#.offsetLeft', this).round();
 
   @DomName('Element.offsetTop')
   @DocsEditable()
-  final num offsetTop;
+  num get offsetTop => JS('num', '#.offsetTop', this).round();
 
   @DomName('Element.offsetWidth')
   @DocsEditable()
-  final num offsetWidth;
+  num get offsetWidth => JS('num', '#.offsetWidth', this).round();
 
   @DomName('Element.clientHeight')
   @DocsEditable()
-  final num clientHeight;
+  num get clientHeight => JS('num', '#.clientHeight', this).round();
 
   @DomName('Element.clientLeft')
   @DocsEditable()
-  final num clientLeft;
+  num get clientLeft => JS('num', '#.clientLeft', this).round();
 
   @DomName('Element.clientTop')
   @DocsEditable()
-  final num clientTop;
+  num get clientTop => JS('num', '#.clientTop', this).round();
 
   @DomName('Element.clientWidth')
   @DocsEditable()
-  final num clientWidth;
+  num get clientWidth => JS('num', '#.clientWidth', this).round();
 
   @DomName('Element.scrollHeight')
   @DocsEditable()
-  final num scrollHeight;
+  num get scrollHeight => JS('num', '#.scrollHeight', this).round();
 
   @DomName('Element.scrollLeft')
   @DocsEditable()
-  num scrollLeft;
+  num get scrollLeft => JS('num', '#.scrollLeft', this).round();
+
+  @DomName('Element.scrollLeft')
+  @DocsEditable()
+  void set scrollLeft(num value) => JS("void", "#.scrollLeft = #", this, value.round());
 
   @DomName('Element.scrollTop')
   @DocsEditable()
-  num scrollTop;
+  num get scrollTop => JS('num', '#.scrollTop', this).round();
+
+  @DomName('Element.scrollTop')
+  @DocsEditable()
+  void set scrollTop(num value) => JS("void", "#.scrollTop = #", this, value.round());
 
   @DomName('Element.scrollWidth')
   @DocsEditable()
-  final num scrollWidth;
+  num get scrollWidth => JS('num', '#.scrollWidth', this).round();
 
 
   // To suppress missing implicit constructor warnings.
diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
index e146df0..35910da 100644
--- a/sdk/lib/html/dartium/html_dartium.dart
+++ b/sdk/lib/html/dartium/html_dartium.dart
@@ -10589,59 +10589,59 @@
 
   @DomName('Element.offsetHeight')
   @DocsEditable()
-  num get offsetHeight => _blink.Native_Element_offsetHeight_Getter(this);
+  num get offsetHeight => _blink.Native_Element_offsetHeight_Getter(this).round();
 
   @DomName('Element.offsetLeft')
   @DocsEditable()
-  num get offsetLeft => _blink.Native_Element_offsetLeft_Getter(this);
+  num get offsetLeft => _blink.Native_Element_offsetLeft_Getter(this).round();
 
   @DomName('Element.offsetTop')
   @DocsEditable()
-  num get offsetTop => _blink.Native_Element_offsetTop_Getter(this);
+  num get offsetTop => _blink.Native_Element_offsetTop_Getter(this).round();
 
   @DomName('Element.offsetWidth')
   @DocsEditable()
-  num get offsetWidth => _blink.Native_Element_offsetWidth_Getter(this);
+  num get offsetWidth => _blink.Native_Element_offsetWidth_Getter(this).round();
 
   @DomName('Element.clientHeight')
   @DocsEditable()
-  num get clientHeight => _blink.Native_Element_clientHeight_Getter(this);
+  num get clientHeight => _blink.Native_Element_clientHeight_Getter(this).round();
 
   @DomName('Element.clientLeft')
   @DocsEditable()
-  num get clientLeft => _blink.Native_Element_clientLeft_Getter(this);
+  num get clientLeft => _blink.Native_Element_clientLeft_Getter(this).round();
 
   @DomName('Element.clientTop')
   @DocsEditable()
-  num get clientTop => _blink.Native_Element_clientTop_Getter(this);
+  num get clientTop => _blink.Native_Element_clientTop_Getter(this).round();
 
   @DomName('Element.clientWidth')
   @DocsEditable()
-  num get clientWidth => _blink.Native_Element_clientWidth_Getter(this);
+  num get clientWidth => _blink.Native_Element_clientWidth_Getter(this).round();
 
   @DomName('Element.scrollHeight')
   @DocsEditable()
-  num get scrollHeight => _blink.Native_Element_scrollHeight_Getter(this);
+  num get scrollHeight => _blink.Native_Element_scrollHeight_Getter(this).round();
 
   @DomName('Element.scrollLeft')
   @DocsEditable()
-  num get scrollLeft => _blink.Native_Element_scrollLeft_Getter(this);
+  num get scrollLeft => _blink.Native_Element_scrollLeft_Getter(this).round();
 
   @DomName('Element.scrollLeft')
   @DocsEditable()
-  void set scrollLeft(num value) => _blink.Native_Element_scrollLeft_Setter(this, value);
+  void set scrollLeft(num value) => _blink.Native_Element_scrollLeft_Setter(this, value.round());
 
   @DomName('Element.scrollTop')
   @DocsEditable()
-  num get scrollTop => _blink.Native_Element_scrollTop_Getter(this);
+  num get scrollTop => _blink.Native_Element_scrollTop_Getter(this).round();
 
   @DomName('Element.scrollTop')
   @DocsEditable()
-  void set scrollTop(num value) => _blink.Native_Element_scrollTop_Setter(this, value);
+  void set scrollTop(num value) => _blink.Native_Element_scrollTop_Setter(this, value.round());
 
   @DomName('Element.scrollWidth')
   @DocsEditable()
-  num get scrollWidth => _blink.Native_Element_scrollWidth_Getter(this);
+  num get scrollWidth => _blink.Native_Element_scrollWidth_Getter(this).round();
 
   // To suppress missing implicit constructor warnings.
   factory Element._() { throw new UnsupportedError("Not supported"); }
diff --git a/tests/co19/co19-dartium.status b/tests/co19/co19-dartium.status
index feaa25a..1a1c9a2 100644
--- a/tests/co19/co19-dartium.status
+++ b/tests/co19/co19-dartium.status
@@ -117,7 +117,6 @@
 
 LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Issue 17758.  Please triage this failure.
 LayoutTests/fast/dom/Document/CaretRangeFromPoint/basic_t01: RuntimeError # Issue 17758.  Please triage this failure.
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-user-select-none_t01: RuntimeError # Issue 19055.
 LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Issue 17758.  Please triage this failure.
 LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport_t01: RuntimeError # Issue 17758.  Please triage this failure.
 LayoutTests/fast/dom/Document/CaretRangeFromPoint/replace-element_t01: RuntimeError # Issue 17758.  Please triage this failure.
@@ -125,8 +124,6 @@
 LayoutTests/fast/dom/Element/attribute-uppercase_t01: RuntimeError # Issue 17758.  Please triage this failure.
 LayoutTests/fast/dom/Element/getClientRects_t01: RuntimeError # Issue 17758.  Please triage this failure.
 LayoutTests/fast/dom/Element/setAttributeNS-namespace-err_t01: RuntimeError # Issue 17758.  Please triage this failure.
-LayoutTests/fast/dom/Element/scrollWidth_t01: RuntimeError # Issue 19055.
-LayoutTests/fast/html/details-click-controls_t01: RuntimeError # Issue 19055.
 LayoutTests/fast/html/hidden-attr_t01: RuntimeError # Issue 17758.  Please triage this failure.
 LayoutTests/fast/html/imports/import-element-removed-flag_t01: RuntimeError # Issue 17758.  Please triage this failure.
 LayoutTests/fast/html/imports/import-events_t01: RuntimeError # Issue 17758.  Please triage this failure.
@@ -314,7 +311,6 @@
 LayoutTests/fast/dom/HTMLScriptElement/defer-inline-script_t01: RuntimeError # co19-roll r722: Please triage this failure.
 LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload_t01: RuntimeError # co19-roll r722: Please triage this failure.
 LayoutTests/fast/dom/HTMLScriptElement/remove-in-beforeload_t01: RuntimeError # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLSelectElement/remove-element-from-within-focus-handler-crash_t01: RuntimeError # Issue 19055.
 LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # co19-roll r722: Please triage this failure.
 LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # co19-roll r722: Please triage this failure.
 LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # co19-roll r722: Please triage this failure.
diff --git a/tools/VERSION b/tools/VERSION
index 07eb501..b0d624a 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
 MINOR 5
 PATCH 0
 PRERELEASE 3
-PRERELEASE_PATCH 3
+PRERELEASE_PATCH 4
diff --git a/tools/dom/templates/html/impl/impl_Element.darttemplate b/tools/dom/templates/html/impl/impl_Element.darttemplate
index 5069291..225b31d 100644
--- a/tools/dom/templates/html/impl/impl_Element.darttemplate
+++ b/tools/dom/templates/html/impl/impl_Element.darttemplate
@@ -1328,108 +1328,116 @@
 $if DART2JS
   @DomName('Element.offsetHeight')
   @DocsEditable()
-  final num offsetHeight;
+  num get offsetHeight => JS('num', '#.offsetHeight', this).round();
 
   @DomName('Element.offsetLeft')
   @DocsEditable()
-  final num offsetLeft;
+  num get offsetLeft => JS('num', '#.offsetLeft', this).round();
 
   @DomName('Element.offsetTop')
   @DocsEditable()
-  final num offsetTop;
+  num get offsetTop => JS('num', '#.offsetTop', this).round();
 
   @DomName('Element.offsetWidth')
   @DocsEditable()
-  final num offsetWidth;
+  num get offsetWidth => JS('num', '#.offsetWidth', this).round();
 
   @DomName('Element.clientHeight')
   @DocsEditable()
-  final num clientHeight;
+  num get clientHeight => JS('num', '#.clientHeight', this).round();
 
   @DomName('Element.clientLeft')
   @DocsEditable()
-  final num clientLeft;
+  num get clientLeft => JS('num', '#.clientLeft', this).round();
 
   @DomName('Element.clientTop')
   @DocsEditable()
-  final num clientTop;
+  num get clientTop => JS('num', '#.clientTop', this).round();
 
   @DomName('Element.clientWidth')
   @DocsEditable()
-  final num clientWidth;
+  num get clientWidth => JS('num', '#.clientWidth', this).round();
 
   @DomName('Element.scrollHeight')
   @DocsEditable()
-  final num scrollHeight;
+  num get scrollHeight => JS('num', '#.scrollHeight', this).round();
 
   @DomName('Element.scrollLeft')
   @DocsEditable()
-  num scrollLeft;
+  num get scrollLeft => JS('num', '#.scrollLeft', this).round();
+
+  @DomName('Element.scrollLeft')
+  @DocsEditable()
+  void set scrollLeft(num value) => JS("void", "#.scrollLeft = #", this, value.round());
 
   @DomName('Element.scrollTop')
   @DocsEditable()
-  num scrollTop;
+  num get scrollTop => JS('num', '#.scrollTop', this).round();
+
+  @DomName('Element.scrollTop')
+  @DocsEditable()
+  void set scrollTop(num value) => JS("void", "#.scrollTop = #", this, value.round());
 
   @DomName('Element.scrollWidth')
   @DocsEditable()
-  final num scrollWidth;
+  num get scrollWidth => JS('num', '#.scrollWidth', this).round();
 
 $else
   @DomName('Element.offsetHeight')
   @DocsEditable()
-  num get offsetHeight => _blink.Native_Element_offsetHeight_Getter(this);
+  num get offsetHeight => _blink.Native_Element_offsetHeight_Getter(this).round();
 
   @DomName('Element.offsetLeft')
   @DocsEditable()
-  num get offsetLeft => _blink.Native_Element_offsetLeft_Getter(this);
+  num get offsetLeft => _blink.Native_Element_offsetLeft_Getter(this).round();
 
   @DomName('Element.offsetTop')
   @DocsEditable()
-  num get offsetTop => _blink.Native_Element_offsetTop_Getter(this);
+  num get offsetTop => _blink.Native_Element_offsetTop_Getter(this).round();
 
   @DomName('Element.offsetWidth')
   @DocsEditable()
-  num get offsetWidth => _blink.Native_Element_offsetWidth_Getter(this);
+  num get offsetWidth => _blink.Native_Element_offsetWidth_Getter(this).round();
 
   @DomName('Element.clientHeight')
   @DocsEditable()
-  num get clientHeight => _blink.Native_Element_clientHeight_Getter(this);
+  num get clientHeight => _blink.Native_Element_clientHeight_Getter(this).round();
 
   @DomName('Element.clientLeft')
   @DocsEditable()
-  num get clientLeft => _blink.Native_Element_clientLeft_Getter(this);
+  num get clientLeft => _blink.Native_Element_clientLeft_Getter(this).round();
 
   @DomName('Element.clientTop')
   @DocsEditable()
-  num get clientTop => _blink.Native_Element_clientTop_Getter(this);
+  num get clientTop => _blink.Native_Element_clientTop_Getter(this).round();
 
   @DomName('Element.clientWidth')
   @DocsEditable()
-  num get clientWidth => _blink.Native_Element_clientWidth_Getter(this);
+  num get clientWidth => _blink.Native_Element_clientWidth_Getter(this).round();
 
   @DomName('Element.scrollHeight')
   @DocsEditable()
-  num get scrollHeight => _blink.Native_Element_scrollHeight_Getter(this);
+  num get scrollHeight => _blink.Native_Element_scrollHeight_Getter(this).round();
 
   @DomName('Element.scrollLeft')
   @DocsEditable()
-  num get scrollLeft => _blink.Native_Element_scrollLeft_Getter(this);
+  num get scrollLeft => _blink.Native_Element_scrollLeft_Getter(this).round();
 
   @DomName('Element.scrollLeft')
   @DocsEditable()
-  void set scrollLeft(num value) => _blink.Native_Element_scrollLeft_Setter(this, value);
+  void set scrollLeft(num value) => _blink.Native_Element_scrollLeft_Setter(this, value.round());
 
   @DomName('Element.scrollTop')
   @DocsEditable()
-  num get scrollTop => _blink.Native_Element_scrollTop_Getter(this);
+  num get scrollTop => _blink.Native_Element_scrollTop_Getter(this).round();
 
   @DomName('Element.scrollTop')
   @DocsEditable()
-  void set scrollTop(num value) => _blink.Native_Element_scrollTop_Setter(this, value);
+  void set scrollTop(num value) => _blink.Native_Element_scrollTop_Setter(this, value.round());
 
   @DomName('Element.scrollWidth')
   @DocsEditable()
-  num get scrollWidth => _blink.Native_Element_scrollWidth_Getter(this);
+  num get scrollWidth => _blink.Native_Element_scrollWidth_Getter(this).round();
 $endif
 
 $!MEMBERS