Files
sdk/tests/language_2/mint_identical_test.dart
T
Jens Johansen 076db33f03 [vm] Fix constant propagators version of identical for integers and doubles
Before this CL the constant propagator relied on two objects being identical
only if a.raw() == b.raw().
This is only the case if they have been canonicalized, which doubles and
ints shouldn't have to be.

This CL fixes it and introduces a few tests (one of which -cdartkp would have
failed prior to this CL).

NOTE: This should only change the behavior of precompiled mode, and only so
that it is more correct.
Change-Id: I4380ce4d3292fa15d728b0572403cb7ed4d0582c
Reviewed-on: https://dart-review.googlesource.com/42620
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-02-21 11:58:44 +00:00

18 lines
730 B
Dart

// Copyright (c) 2018, 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";
main() {
// Smis on 64-bit.
Expect.isTrue(identical(2305843009213693952, 2305843009213693952));
Expect.isTrue(identical(2305843009213693953, 2305843009213693953));
Expect.isTrue(identical(2305843009213693954, 2305843009213693954));
Expect.isTrue(identical(4611686018427387903, 4611686018427387903));
// Mints on 64-bit.
Expect.isTrue(identical(4611686018427387904, 4611686018427387904));
Expect.isTrue(identical(4611686018427387905, 4611686018427387905));
}