Chromium Code Reviews| Index: runtime/lib/double_patch.dart |
| diff --git a/runtime/lib/double_patch.dart b/runtime/lib/double_patch.dart |
| index d0367250dcd2cb082e021cd29d07df65a046c843..ea34f7765d81c0b5e46d4e1cc2d3ad9a04f52dd0 100644 |
| --- a/runtime/lib/double_patch.dart |
| +++ b/runtime/lib/double_patch.dart |
| @@ -7,34 +7,17 @@ |
| patch class double { |
| - static double _native_parse(_OneByteString string) native "Double_parse"; |
| + static double _native_parse(String str, |
|
Vyacheslav Egorov (Google)
2014/07/01 11:36:18
Should not this be called _nativeParse? _native_pa
Lasse Reichstein Nielsen
2014/07/01 11:54:18
Changed to _nativeParse.
Moving it to dart:_inter
|
| + int start, int end) native "Double_parse"; |
| static double _parse(var str) { |
| - str = str.trim(); |
| + int len = str.length; |
| + int start = str._firstNonWhitespace(); |
| + if (start == len) return null; // All whitespace. |
| + int end = str._lastNonWhitespace() + 1; |
| + assert(start < end); |
| - if (str.length == 0) return null; |
| - |
| - final ccid = ClassID.getID(str); |
| - _OneByteString oneByteString; |
| - // TODO(Srdjan): Allow _ExternalOneByteStrings. |
| - if (ccid == ClassID.cidOneByteString) { |
| - oneByteString = str; |
| - } else { |
| - int length = str.length; |
| - var s = _OneByteString._allocate(length); |
| - for (int i = 0; i < length; i++) { |
| - int currentUnit = str.codeUnitAt(i); |
| - // All valid trimmed double strings must be ASCII. |
| - if (currentUnit < 128) { |
| - s._setAt(i, currentUnit); |
| - } else { |
| - return null; |
| - } |
| - } |
| - oneByteString = s; |
| - } |
| - |
| - return _native_parse(oneByteString); |
| + return _native_parse(str, start, end); |
| } |
| /* patch */ static double parse(String str, |