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
