|  | // Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | import 'native_testing.dart'; | 
|  |  | 
|  | // Negative constant numbers must be generated as negation, not just a literal | 
|  | // with a sign, i.e. | 
|  | // | 
|  | //     (-5).toString() | 
|  | // | 
|  | // not | 
|  | // | 
|  | //     -5 .toString() | 
|  | // | 
|  | // The unparethesized version is `-(5 .toString())`, which creates the string | 
|  | // `"5"`, then converts it to a number for negation, giving a number result | 
|  | // instead of a string result. | 
|  |  | 
|  | @pragma('dart2js:noInline') | 
|  | checkString(r) { | 
|  | Expect.isTrue( | 
|  | r is String, 'Expected string, found ${r} of type ${r.runtimeType}'); | 
|  | } | 
|  |  | 
|  | test1() { | 
|  | checkString(JS('', '#.toString()', -5)); | 
|  | } | 
|  |  | 
|  | test2() { | 
|  | checkString(JS('', '#.toString()', -1.5)); | 
|  | } | 
|  |  | 
|  | test3() { | 
|  | checkString(JS('', '#.toString()', -0.0)); | 
|  | } | 
|  |  | 
|  | main() { | 
|  | test1(); | 
|  | test2(); | 
|  | test3(); | 
|  | } |