OLD | NEW |
1 library test; | 1 library test; |
2 import self as self; | 2 import self as self; |
3 import "dart:core" as core; | 3 import "dart:core" as core; |
4 import "dart:async" as asy; | 4 import "dart:async" as asy; |
5 | 5 |
6 abstract class MyStream<T extends core::Object> extends asy::Stream<self::MyStre
am::T> { | 6 abstract class MyStream<T extends core::Object> extends asy::Stream<self::MyStre
am::T> { |
7 static factory •<T extends core::Object>() → self::MyStream<self::MyStream::•:
:T> | 7 static factory •<T extends core::Object>() → self::MyStream<self::MyStream::•:
:T> |
8 return null; | 8 return null; |
9 } | 9 } |
10 static method F<T extends core::Object>() → self::F::T | 10 static method F<T extends core::Object>() → self::F::T |
11 return null; | 11 return null; |
12 static method f() → asy::Future<dynamic> /* originally async */ { | 12 static method f() → asy::Future<dynamic> async { |
13 final asy::Completer<asy::FutureOr<dynamic>> :completer = asy::Completer::sync
<asy::FutureOr<dynamic>>(); | 13 dynamic d; |
14 asy::FutureOr<dynamic> :return_value; | 14 core::Object o; |
15 dynamic :async_op_then; | 15 for (dynamic x in self::F<dynamic>()) { |
16 dynamic :async_op_error; | 16 } |
17 dynamic :await_jump_var = 0; | 17 for (dynamic x in self::F<core::Iterable<dynamic>>()) { |
18 dynamic :await_ctx_var; | 18 } |
19 dynamic :saved_try_context_var0; | 19 for (core::Object x in self::F<core::Iterable<core::Object>>()) { |
20 dynamic :saved_try_context_var1; | 20 } |
21 dynamic :exception0; | 21 for (final dynamic #t1 in self::F<dynamic>()) { |
22 dynamic :stack_trace0; | 22 d = #t1; |
23 function :async_op([dynamic :result, dynamic :exception, dynamic :stack_trace]
) → dynamic yielding | 23 } |
24 try { | 24 for (final dynamic #t2 in self::F<dynamic>()) { |
25 #L1: | 25 o = #t2; |
26 { | 26 } |
27 dynamic d; | 27 await for (dynamic x in self::F<dynamic>()) { |
28 core::Object o; | 28 } |
29 for (dynamic x in self::F<dynamic>()) { | 29 await for (dynamic x in self::F<asy::Stream<dynamic>>()) { |
30 } | 30 } |
31 for (dynamic x in self::F<core::Iterable<dynamic>>()) { | 31 await for (core::Object x in self::F<asy::Stream<core::Object>>()) { |
32 } | 32 } |
33 for (core::Object x in self::F<core::Iterable<core::Object>>()) { | 33 await for (final dynamic #t3 in self::F<dynamic>()) { |
34 } | 34 d = #t3; |
35 for (final dynamic #t1 in self::F<dynamic>()) { | 35 } |
36 d = #t1; | 36 await for (final dynamic #t4 in self::F<dynamic>()) { |
37 } | 37 o = #t4; |
38 for (final dynamic #t2 in self::F<dynamic>()) { | 38 } |
39 o = #t2; | |
40 } | |
41 { | |
42 dynamic :for-iterator = new asy::_StreamIterator::•<dynamic>(self::F<d
ynamic>()); | |
43 try | |
44 #L2: | |
45 while (true) { | |
46 asy::_awaitHelper(:for-iterator.moveNext(), :async_op_then, :async
_op_error, :async_op); | |
47 [yield] null; | |
48 if(:result) { | |
49 dynamic x = :for-iterator.current; | |
50 {} | |
51 } | |
52 else | |
53 break #L2; | |
54 } | |
55 finally { | |
56 asy::_awaitHelper(:for-iterator.cancel(), :async_op_then, :async_op_
error, :async_op); | |
57 [yield] null; | |
58 :result; | |
59 } | |
60 } | |
61 { | |
62 dynamic :for-iterator = new asy::_StreamIterator::•<dynamic>(self::F<a
sy::Stream<dynamic>>()); | |
63 try | |
64 #L3: | |
65 while (true) { | |
66 asy::_awaitHelper(:for-iterator.moveNext(), :async_op_then, :async
_op_error, :async_op); | |
67 [yield] null; | |
68 if(:result) { | |
69 dynamic x = :for-iterator.current; | |
70 {} | |
71 } | |
72 else | |
73 break #L3; | |
74 } | |
75 finally { | |
76 asy::_awaitHelper(:for-iterator.cancel(), :async_op_then, :async_op_
error, :async_op); | |
77 [yield] null; | |
78 :result; | |
79 } | |
80 } | |
81 { | |
82 dynamic :for-iterator = new asy::_StreamIterator::•<dynamic>(self::F<a
sy::Stream<core::Object>>()); | |
83 try | |
84 #L4: | |
85 while (true) { | |
86 asy::_awaitHelper(:for-iterator.moveNext(), :async_op_then, :async
_op_error, :async_op); | |
87 [yield] null; | |
88 if(:result) { | |
89 core::Object x = :for-iterator.current; | |
90 {} | |
91 } | |
92 else | |
93 break #L4; | |
94 } | |
95 finally { | |
96 asy::_awaitHelper(:for-iterator.cancel(), :async_op_then, :async_op_
error, :async_op); | |
97 [yield] null; | |
98 :result; | |
99 } | |
100 } | |
101 { | |
102 dynamic :for-iterator = new asy::_StreamIterator::•<dynamic>(self::F<d
ynamic>()); | |
103 try | |
104 #L5: | |
105 while (true) { | |
106 asy::_awaitHelper(:for-iterator.moveNext(), :async_op_then, :async
_op_error, :async_op); | |
107 [yield] null; | |
108 if(:result) { | |
109 final dynamic #t3 = :for-iterator.current; | |
110 { | |
111 d = #t3; | |
112 } | |
113 } | |
114 else | |
115 break #L5; | |
116 } | |
117 finally { | |
118 asy::_awaitHelper(:for-iterator.cancel(), :async_op_then, :async_op_
error, :async_op); | |
119 [yield] null; | |
120 :result; | |
121 } | |
122 } | |
123 { | |
124 dynamic :for-iterator = new asy::_StreamIterator::•<dynamic>(self::F<d
ynamic>()); | |
125 try | |
126 #L6: | |
127 while (true) { | |
128 asy::_awaitHelper(:for-iterator.moveNext(), :async_op_then, :async
_op_error, :async_op); | |
129 [yield] null; | |
130 if(:result) { | |
131 final dynamic #t4 = :for-iterator.current; | |
132 { | |
133 o = #t4; | |
134 } | |
135 } | |
136 else | |
137 break #L6; | |
138 } | |
139 finally { | |
140 asy::_awaitHelper(:for-iterator.cancel(), :async_op_then, :async_op_
error, :async_op); | |
141 [yield] null; | |
142 :result; | |
143 } | |
144 } | |
145 } | |
146 :completer.complete(:return_value); | |
147 return; | |
148 } | |
149 on dynamic catch(dynamic :exception, dynamic :stack_trace) { | |
150 :completer.completeError(:exception, :stack_trace); | |
151 } | |
152 :async_op_then = asy::_asyncThenWrapperHelper(:async_op); | |
153 :async_op_error = asy::_asyncErrorWrapperHelper(:async_op); | |
154 asy::Future::microtask<dynamic>(:async_op); | |
155 return :completer.future; | |
156 } | 39 } |
157 static method main() → asy::Future<dynamic> /* originally async */ { | 40 static method main() → asy::Future<dynamic> async { |
158 final asy::Completer<asy::FutureOr<dynamic>> :completer = asy::Completer::sync
<asy::FutureOr<dynamic>>(); | 41 for (core::int x in <core::int>[1, 2, 3]) { |
159 asy::FutureOr<dynamic> :return_value; | 42 } |
160 dynamic :async_op_then; | 43 for (core::num x in <core::num>[1, 2, 3]) { |
161 dynamic :async_op_error; | 44 } |
162 dynamic :await_jump_var = 0; | 45 for (core::int x in <core::int>[1, 2, 3]) { |
163 dynamic :await_ctx_var; | 46 } |
164 dynamic :saved_try_context_var0; | 47 await for (core::int x in self::MyStream::•<core::int>()) { |
165 dynamic :saved_try_context_var1; | 48 } |
166 dynamic :exception0; | 49 await for (core::int x in self::MyStream::•<core::int>()) { |
167 dynamic :stack_trace0; | 50 } |
168 function :async_op([dynamic :result, dynamic :exception, dynamic :stack_trace]
) → dynamic yielding | |
169 try { | |
170 #L7: | |
171 { | |
172 for (core::int x in <core::int>[1, 2, 3]) { | |
173 } | |
174 for (core::num x in <core::num>[1, 2, 3]) { | |
175 } | |
176 for (core::int x in <core::int>[1, 2, 3]) { | |
177 } | |
178 { | |
179 dynamic :for-iterator = new asy::_StreamIterator::•<dynamic>(self::MyS
tream::•<core::int>()); | |
180 try | |
181 #L8: | |
182 while (true) { | |
183 asy::_awaitHelper(:for-iterator.moveNext(), :async_op_then, :async
_op_error, :async_op); | |
184 [yield] null; | |
185 if(:result) { | |
186 core::int x = :for-iterator.current; | |
187 {} | |
188 } | |
189 else | |
190 break #L8; | |
191 } | |
192 finally { | |
193 asy::_awaitHelper(:for-iterator.cancel(), :async_op_then, :async_op_
error, :async_op); | |
194 [yield] null; | |
195 :result; | |
196 } | |
197 } | |
198 { | |
199 dynamic :for-iterator = new asy::_StreamIterator::•<dynamic>(self::MyS
tream::•<core::int>()); | |
200 try | |
201 #L9: | |
202 while (true) { | |
203 asy::_awaitHelper(:for-iterator.moveNext(), :async_op_then, :async
_op_error, :async_op); | |
204 [yield] null; | |
205 if(:result) { | |
206 core::int x = :for-iterator.current; | |
207 {} | |
208 } | |
209 else | |
210 break #L9; | |
211 } | |
212 finally { | |
213 asy::_awaitHelper(:for-iterator.cancel(), :async_op_then, :async_op_
error, :async_op); | |
214 [yield] null; | |
215 :result; | |
216 } | |
217 } | |
218 } | |
219 :completer.complete(:return_value); | |
220 return; | |
221 } | |
222 on dynamic catch(dynamic :exception, dynamic :stack_trace) { | |
223 :completer.completeError(:exception, :stack_trace); | |
224 } | |
225 :async_op_then = asy::_asyncThenWrapperHelper(:async_op); | |
226 :async_op_error = asy::_asyncErrorWrapperHelper(:async_op); | |
227 asy::Future::microtask<dynamic>(:async_op); | |
228 return :completer.future; | |
229 } | 51 } |
OLD | NEW |