| // Copyright (c) 2014, 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. |
| |
| // @dart = 2.9 |
| |
| import "package:expect/expect.dart"; |
| |
| baz() {} |
| |
| loop1(x) { |
| var n = 0; |
| while (n < x) { |
| n = n + 1; |
| } |
| return n; |
| } |
| |
| loop2(x) { |
| var n = 0; |
| if (x < 100) { |
| while (n < x) { |
| n = n + 1; |
| } |
| } |
| baz(); |
| return n; |
| } |
| |
| loop3(x) { |
| var n = 0; |
| if (x < 100) { |
| while (n < x) { |
| n = n + 1; |
| baz(); |
| } |
| } |
| baz(); |
| return n; |
| } |
| |
| loop4(x) { |
| var n = 0; |
| if (x < 100) { |
| while (n < x) { |
| baz(); |
| n = n + 1; |
| } |
| } |
| baz(); |
| return n; |
| } |
| |
| f1(b) { |
| while (b) return 1; |
| |
| return 2; |
| } |
| |
| f2(b) { |
| while (b) { |
| return 1; |
| } |
| return 2; |
| } |
| |
| main() { |
| Expect.equals(0, loop1(-10)); |
| Expect.equals(10, loop1(10)); |
| |
| Expect.equals(0, loop2(-10)); |
| Expect.equals(10, loop2(10)); |
| Expect.equals(0, loop2(200)); |
| |
| Expect.equals(0, loop3(-10)); |
| Expect.equals(10, loop3(10)); |
| Expect.equals(0, loop3(200)); |
| |
| Expect.equals(0, loop4(-10)); |
| Expect.equals(10, loop4(10)); |
| Expect.equals(0, loop4(200)); |
| |
| Expect.equals(1, f1(true)); |
| Expect.equals(2, f1(false)); |
| Expect.equals(1, f2(true)); |
| Expect.equals(2, f2(false)); |
| } |