076db33f03
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>
18 lines
730 B
Dart
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));
|
|
}
|