fc1b1ecc71
Change-Id: Idbcc965a27e9ffeedf5e0a1068b019de4193070f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127745 Commit-Queue: Bob Nystrom <rnystrom@google.com> Reviewed-by: Alexander Thomas <athom@google.com>
60 lines
1.1 KiB
Dart
60 lines
1.1 KiB
Dart
// Copyright (c) 2015, 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.
|
|
|
|
// This test may crash dart2js.
|
|
|
|
import "dart:async";
|
|
import "package:expect/expect.dart";
|
|
import "package:async_helper/async_helper.dart";
|
|
|
|
main() {
|
|
var res = [];
|
|
fisk() async* {
|
|
res.add("+fisk");
|
|
try {
|
|
for (int i = 0; i < 2; i++) {
|
|
yield await new Future.microtask(() => i);
|
|
}
|
|
} finally {
|
|
res.add("-fisk");
|
|
}
|
|
}
|
|
|
|
fugl(int count) async {
|
|
res.add("fisk $count");
|
|
try {
|
|
await for (int i in fisk().take(count)) res.add(i);
|
|
} finally {
|
|
res.add("done");
|
|
}
|
|
}
|
|
|
|
asyncStart();
|
|
fugl(3)
|
|
.whenComplete(() => fugl(2))
|
|
.whenComplete(() => fugl(1))
|
|
.whenComplete(() {
|
|
Expect.listEquals([
|
|
"fisk 3",
|
|
"+fisk",
|
|
0,
|
|
1,
|
|
"-fisk",
|
|
"done",
|
|
"fisk 2",
|
|
"+fisk",
|
|
0,
|
|
1,
|
|
"-fisk",
|
|
"done",
|
|
"fisk 1",
|
|
"+fisk",
|
|
0,
|
|
"-fisk",
|
|
"done"
|
|
], res);
|
|
asyncEnd();
|
|
});
|
|
}
|