// 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. 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)); }