| Index: tests/language/rewrite_while_many_exits_test.dart
|
| diff --git a/tests/language/rewrite_while_many_exits_test.dart b/tests/language/rewrite_while_many_exits_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a3a3c0cc7d0f0116bc3b3b557d524446fb3ee4c8
|
| --- /dev/null
|
| +++ b/tests/language/rewrite_while_many_exits_test.dart
|
| @@ -0,0 +1,48 @@
|
| +// 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";
|
| +
|
| +var baz_clicks = 0;
|
| +
|
| +baz() {
|
| + return ++baz_clicks;
|
| +}
|
| +
|
| +var global = 0;
|
| +
|
| +increment_global() {
|
| + ++global;
|
| + return global <= 10;
|
| +}
|
| +
|
| +foo(x, y) {
|
| + var n = 0;
|
| + while (true) {
|
| + baz();
|
| + if (n >= x) {
|
| + return n;
|
| + }
|
| + baz();
|
| + if (n >= y) {
|
| + return n;
|
| + }
|
| + n = n + 1;
|
| + }
|
| +}
|
| +
|
| +bar() {
|
| + while (increment_global()) {
|
| + baz();
|
| + }
|
| + return baz();
|
| +}
|
| +
|
| +main() {
|
| + Expect.equals(10, foo(10, 20));
|
| + Expect.equals(10, foo(20, 10));
|
| +
|
| + baz_clicks = 0;
|
| + Expect.equals(11, bar());
|
| +}
|
|
|