| Index: tests/language/if_conversion_vm_test.dart
|
| diff --git a/tests/language/if_conversion_vm_test.dart b/tests/language/if_conversion_vm_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..22e6203291f96ac6251f204399738b29cf7f2be9
|
| --- /dev/null
|
| +++ b/tests/language/if_conversion_vm_test.dart
|
| @@ -0,0 +1,92 @@
|
| +// Copyright (c) 2013, 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.
|
| +
|
| +// Test if-convertion pass in the optimizing compiler.
|
| +
|
| +import "package:expect/expect.dart";
|
| +
|
| +f1(i) => (i == 0) ? 0 : 1;
|
| +f2(i) => (i == 0) ? 2 : 3;
|
| +f3(i) => (i == null) ? 0 : 1;
|
| +f4(i) => (i == null) ? 2 : 3;
|
| +
|
| +f5(i) => (i != 0) ? 0 : 1;
|
| +f6(i) => (i != 0) ? 2 : 3;
|
| +f7(i) => (i != null) ? 0 : 1;
|
| +f8(i) => (i != null) ? 2 : 3;
|
| +
|
| +f9(i) => identical(i, 0) ? 0 : 1;
|
| +f10(i) => identical(i, 0) ? 2 : 3;
|
| +f11(i) => identical(i, null) ? 0 : 1;
|
| +f12(i) => identical(i, null) ? 2 : 3;
|
| +
|
| +f13(i) => !identical(i, 0) ? 0 : 1;
|
| +f14(i) => !identical(i, 0) ? 2 : 3;
|
| +f15(i) => !identical(i, null) ? 0 : 1;
|
| +f16(i) => !identical(i, null) ? 2 : 3;
|
| +
|
| +const POWER_OF_2 = 0x1000000000;
|
| +
|
| +bigPower(i) => (i == 11) ? 0 : POWER_OF_2;
|
| +
|
| +main() {
|
| + for (var i = 0; i < 10000; i++) {
|
| + f1(i);
|
| + f2(i);
|
| + f3(i);
|
| + f4(i);
|
| + f5(i);
|
| + f6(i);
|
| + f7(i);
|
| + f8(i);
|
| + f9(i);
|
| + f10(i);
|
| + f11(i);
|
| + f12(i);
|
| + f13(i);
|
| + f14(i);
|
| + f15(i);
|
| + f16(i);
|
| + bigPower(i);
|
| + }
|
| +
|
| + Expect.equals(0, f1(0));
|
| + Expect.equals(1, f1(44));
|
| + Expect.equals(2, f2(0));
|
| + Expect.equals(3, f2(44));
|
| + Expect.equals(0, f3(null));
|
| + Expect.equals(1, f3(44));
|
| + Expect.equals(2, f4(null));
|
| + Expect.equals(3, f4(44));
|
| +
|
| + Expect.equals(1, f5(0));
|
| + Expect.equals(0, f5(44));
|
| + Expect.equals(3, f6(0));
|
| + Expect.equals(2, f6(44));
|
| + Expect.equals(1, f7(null));
|
| + Expect.equals(0, f7(44));
|
| + Expect.equals(3, f8(null));
|
| + Expect.equals(2, f8(44));
|
| +
|
| + Expect.equals(0, f9(0));
|
| + Expect.equals(1, f9(44));
|
| + Expect.equals(2, f10(0));
|
| + Expect.equals(3, f10(44));
|
| + Expect.equals(0, f11(null));
|
| + Expect.equals(1, f11(44));
|
| + Expect.equals(2, f12(null));
|
| + Expect.equals(3, f12(44));
|
| +
|
| + Expect.equals(1, f13(0));
|
| + Expect.equals(0, f13(44));
|
| + Expect.equals(3, f14(0));
|
| + Expect.equals(2, f14(44));
|
| + Expect.equals(1, f15(null));
|
| + Expect.equals(0, f15(44));
|
| + Expect.equals(3, f16(null));
|
| + Expect.equals(2, f16(44));
|
| +
|
| + Expect.equals(0, bigPower(11));
|
| + Expect.equals(POWER_OF_2, bigPower(12));
|
| +}
|
|
|