| // Copyright (c) 2012, 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 "package:expect/expect.dart"; |
| import 'package:expect/variations.dart' as v; |
| |
| var myIdentical = identical; |
| |
| main() { |
| // Mint (2^63). |
| Expect.isTrue(myIdentical(0x8000000000000000, 0x8000000000000000)); |
| |
| if (!v.jsNumbers) { |
| Expect.isFalse(myIdentical(0x8000000000000000, 0x8000000000000000 + 1)); |
| |
| // Different types. |
| Expect.isFalse(myIdentical(42, 42.0)); |
| |
| // NaN handling. |
| Expect.isTrue(myIdentical(double.nan, double.nan)); |
| } else { |
| // Web numbers have less precision, conflate int and double values, and have |
| // an incorrect implementation of `identical` for NaNs. |
| Expect.isTrue(myIdentical(0x8000000000000000, 0x8000000000000000 + 1)); |
| Expect.isTrue(myIdentical(42, 42.0)); |
| Expect.isFalse(myIdentical(double.nan, double.nan)); |
| } |
| } |