OLD | NEW |
| (Empty) |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 library async_star_pause_test; | |
6 | |
7 import "package:unittest/unittest.dart"; | |
8 import "dart:async"; | |
9 | |
10 main() { | |
11 test("await for pauses stream during body", () async { | |
12 // Assumes await-for uses streamIterator. | |
13 var log = []; | |
14 var s = () async* { | |
15 for (int i = 0; i < 3; i++) { | |
16 log.add("$i-"); | |
17 yield i; | |
18 // Should pause here until next iteration of await-for loop. | |
19 log.add("$i+"); | |
20 } | |
21 }(); | |
22 await for (var i in s) { | |
23 log.add("$i?"); | |
24 await nextMicrotask(); | |
25 log.add("$i!"); | |
26 } | |
27 expect(log, [ | |
28 "0-", | |
29 "0?", | |
30 "0!", | |
31 "0+", | |
32 "1-", | |
33 "1?", | |
34 "1!", | |
35 "1+", | |
36 "2-", | |
37 "2?", | |
38 "2!", | |
39 "2+" | |
40 ]); | |
41 }); | |
42 } | |
43 | |
44 Future nextMicrotask() => new Future.microtask(() {}); | |
OLD | NEW |