// Copyright (c) 2017, 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. // VMOptions=--intrinsify --use_sse41 // VMOptions=--no_intrinsify --use_sse41 // VMOptions=--intrinsify --no_use_sse41 // VMOptions=--no_intrinsify --no_use_sse41 import 'package:expect/expect.dart'; main() { for (int x in [0, 1, 0xffff, 0xffffffff, 0x111111111111, 0xffffffffffff]) { test(x); test(-x); } // Test with ints outside the 53-bit range that are known to have an // exact double representation. test(9007199254840856); test(144115188075954880); test(936748722493162112); test(0x8000000000000000); } test(int x) { Expect.equals(x, x.toDouble().toInt(), "bad test argument ($x)"); Expect.equals(x.hashCode, x.toDouble().hashCode); }