OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 // Dart core library. | 4 // Dart core library. |
5 | 5 |
6 // VM implementation of double. | 6 // VM implementation of double. |
7 | 7 |
8 patch class double { | 8 patch class double { |
9 | 9 |
10 static double _native_parse(_OneByteString string) native "Double_parse"; | 10 static double _native_parse(_OneByteString string) native "Double_parse"; |
(...skipping 27 matching lines...) Expand all Loading... |
38 return _native_parse(oneByteString); | 38 return _native_parse(oneByteString); |
39 } | 39 } |
40 | 40 |
41 /* patch */ static double parse(String str, | 41 /* patch */ static double parse(String str, |
42 [double onError(String str)]) { | 42 [double onError(String str)]) { |
43 var result = _parse(str); | 43 var result = _parse(str); |
44 if (result == null) { | 44 if (result == null) { |
45 if (onError == null) throw new FormatException(str); | 45 if (onError == null) throw new FormatException(str); |
46 return onError(str); | 46 return onError(str); |
47 } | 47 } |
48 // Parse can create a NaN that is not identical to double.NAN. | |
49 if (result.isNaN) return NAN; | |
50 return result; | 48 return result; |
51 } | 49 } |
52 } | 50 } |
OLD | NEW |