| 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 | 4 |
| 5 part of _interceptors; | 5 part of _interceptors; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * The super interceptor class for [JSInt] and [JSDouble]. The compiler | 8 * The super interceptor class for [JSInt] and [JSDouble]. The compiler |
| 9 * recognizes this class as an interceptor, and changes references to | 9 * recognizes this class as an interceptor, and changes references to |
| 10 * [:this:] to actually use the receiver of the method, which is | 10 * [:this:] to actually use the receiver of the method, which is |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 static String _handleIEtoString(String result) { | 159 static String _handleIEtoString(String result) { |
| 160 // Result is probably IE's untraditional format for large numbers, | 160 // Result is probably IE's untraditional format for large numbers, |
| 161 // e.g., "8.0000000000008(e+15)" for 0x8000000000000800.toString(16). | 161 // e.g., "8.0000000000008(e+15)" for 0x8000000000000800.toString(16). |
| 162 var match = JS('List|Null', | 162 var match = JS('List|Null', |
| 163 r'/^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(#)', | 163 r'/^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(#)', |
| 164 result); | 164 result); |
| 165 if (match == null) { | 165 if (match == null) { |
| 166 // Then we don't know how to handle it at all. | 166 // Then we don't know how to handle it at all. |
| 167 throw new UnsupportedError("Unexpected toString result: $result"); | 167 throw new UnsupportedError("Unexpected toString result: $result"); |
| 168 } | 168 } |
| 169 String result = JS('String', '#', match[1]); | 169 result = JS('String', '#', match[1]); |
| 170 int exponent = JS("int", "+#", match[3]); | 170 int exponent = JS("int", "+#", match[3]); |
| 171 if (match[2] != null) { | 171 if (match[2] != null) { |
| 172 result = JS('String', '# + #', result, match[2]); | 172 result = JS('String', '# + #', result, match[2]); |
| 173 exponent -= JS('int', '#.length', match[2]); | 173 exponent -= JS('int', '#.length', match[2]); |
| 174 } | 174 } |
| 175 return result + "0" * exponent; | 175 return result + "0" * exponent; |
| 176 } | 176 } |
| 177 | 177 |
| 178 // Note: if you change this, also change the function [S]. | 178 // Note: if you change this, also change the function [S]. |
| 179 String toString() { | 179 String toString() { |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 } | 413 } |
| 414 | 414 |
| 415 class JSDouble extends JSNumber implements double { | 415 class JSDouble extends JSNumber implements double { |
| 416 const JSDouble(); | 416 const JSDouble(); |
| 417 Type get runtimeType => double; | 417 Type get runtimeType => double; |
| 418 } | 418 } |
| 419 | 419 |
| 420 class JSPositiveInt extends JSInt {} | 420 class JSPositiveInt extends JSInt {} |
| 421 class JSUInt32 extends JSPositiveInt {} | 421 class JSUInt32 extends JSPositiveInt {} |
| 422 class JSUInt31 extends JSUInt32 {} | 422 class JSUInt31 extends JSUInt32 {} |
| OLD | NEW |