Index: test/codegen/expect/language/await_for_test.js |
diff --git a/test/codegen/expect/language/await_for_test.js b/test/codegen/expect/language/await_for_test.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6ac60118d77f17a04d253724d0798524f1c0c9b3 |
--- /dev/null |
+++ b/test/codegen/expect/language/await_for_test.js |
@@ -0,0 +1,209 @@ |
+dart_library.library('language/await_for_test', null, /* Imports */[ |
+ 'dart_sdk', |
+ 'async_helper', |
+ 'expect' |
+], function load__await_for_test(exports, dart_sdk, async_helper, expect) { |
+ 'use strict'; |
+ const core = dart_sdk.core; |
+ const async = dart_sdk.async; |
+ const _interceptors = dart_sdk._interceptors; |
+ const dart = dart_sdk.dart; |
+ const dartx = dart_sdk.dartx; |
+ const async_helper$ = async_helper.async_helper; |
+ const expect$ = expect.expect; |
+ const await_for_test = Object.create(null); |
+ let JSArrayOfFuture = () => (JSArrayOfFuture = dart.constFn(_interceptors.JSArray$(async.Future)))(); |
+ let VoidToStream = () => (VoidToStream = dart.constFn(dart.definiteFunctionType(async.Stream, [])))(); |
+ let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))(); |
+ let ListTodynamic = () => (ListTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.List])))(); |
+ let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic])))(); |
+ let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [])))(); |
+ let intToStream = () => (intToStream = dart.constFn(dart.definiteFunctionType(async.Stream, [core.int])))(); |
+ await_for_test.Trace = class Trace extends core.Object { |
+ new() { |
+ this.trace = ""; |
+ } |
+ record(x) { |
+ this.trace = dart.notNull(this.trace) + dart.notNull(dart.toString(x)); |
+ } |
+ toString() { |
+ return this.trace; |
+ } |
+ }; |
+ dart.setSignature(await_for_test.Trace, { |
+ methods: () => ({record: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])}) |
+ }); |
+ await_for_test.makeMeAStream = function() { |
+ return await_for_test.timedCounter(5); |
+ }; |
+ dart.fn(await_for_test.makeMeAStream, VoidToStream()); |
+ dart.defineLazy(await_for_test, { |
+ get t1() { |
+ return new await_for_test.Trace(); |
+ }, |
+ set t1(_) {} |
+ }); |
+ await_for_test.consumeOne = function() { |
+ return dart.async(function*() { |
+ let s = await_for_test.makeMeAStream(); |
+ let it = async.StreamIterator.new(s); |
+ while (dart.test(yield it.moveNext())) { |
+ let x = it.current; |
+ await_for_test.t1.record(x); |
+ } |
+ await_for_test.t1.record("X"); |
+ }, dart.dynamic); |
+ }; |
+ dart.fn(await_for_test.consumeOne, VoidTodynamic()); |
+ dart.defineLazy(await_for_test, { |
+ get t2() { |
+ return new await_for_test.Trace(); |
+ }, |
+ set t2(_) {} |
+ }); |
+ await_for_test.consumeTwo = function() { |
+ return dart.async(function*() { |
+ let it = async.StreamIterator.new(await_for_test.makeMeAStream()); |
+ try { |
+ while (yield it.moveNext()) { |
+ let x = it.current; |
+ await_for_test.t2.record(x); |
+ } |
+ } finally { |
+ yield it.cancel(); |
+ } |
+ await_for_test.t2.record("Y"); |
+ }, dart.dynamic); |
+ }; |
+ dart.fn(await_for_test.consumeTwo, VoidTodynamic()); |
+ dart.defineLazy(await_for_test, { |
+ get t3() { |
+ return new await_for_test.Trace(); |
+ }, |
+ set t3(_) {} |
+ }); |
+ await_for_test.consumeNested = function() { |
+ return dart.async(function*() { |
+ let it = async.StreamIterator.new(await_for_test.makeMeAStream()); |
+ try { |
+ while (yield it.moveNext()) { |
+ let x = it.current; |
+ await_for_test.t3.record(x); |
+ let it$ = async.StreamIterator.new(await_for_test.makeMeAStream()); |
+ try { |
+ while (yield it$.moveNext()) { |
+ let y = it$.current; |
+ await_for_test.t3.record(y); |
+ } |
+ } finally { |
+ yield it$.cancel(); |
+ } |
+ await_for_test.t3.record("|"); |
+ } |
+ } finally { |
+ yield it.cancel(); |
+ } |
+ await_for_test.t3.record("Z"); |
+ }, dart.dynamic); |
+ }; |
+ dart.fn(await_for_test.consumeNested, VoidTodynamic()); |
+ dart.defineLazy(await_for_test, { |
+ get t4() { |
+ return new await_for_test.Trace(); |
+ }, |
+ set t4(_) {} |
+ }); |
+ await_for_test.consumeSomeOfInfinite = function() { |
+ return dart.async(function*() { |
+ let i = 0; |
+ let it = async.StreamIterator.new(await_for_test.infiniteStream()); |
+ try { |
+ while (yield it.moveNext()) { |
+ let x = it.current; |
+ i++; |
+ if (i > 10) break; |
+ await_for_test.t4.record(x); |
+ } |
+ } finally { |
+ yield it.cancel(); |
+ } |
+ await_for_test.t4.record("U"); |
+ }, dart.dynamic); |
+ }; |
+ dart.fn(await_for_test.consumeSomeOfInfinite, VoidTodynamic()); |
+ await_for_test.main = function() { |
+ let f1 = await_for_test.consumeOne(); |
+ await_for_test.t1.record("T1:"); |
+ let f2 = await_for_test.consumeTwo(); |
+ await_for_test.t2.record("T2:"); |
+ let f3 = await_for_test.consumeNested(); |
+ await_for_test.t3.record("T3:"); |
+ let f4 = await_for_test.consumeSomeOfInfinite(); |
+ await_for_test.t4.record("T4:"); |
+ async_helper$.asyncStart(); |
+ async.Future.wait(dart.dynamic)(JSArrayOfFuture().of([async.Future._check(f1), async.Future._check(f2), async.Future._check(f3), async.Future._check(f4)])).then(dart.dynamic)(dart.fn(_ => { |
+ expect$.Expect.equals("T1:12345X", dart.toString(await_for_test.t1)); |
+ expect$.Expect.equals("T2:12345Y", dart.toString(await_for_test.t2)); |
+ expect$.Expect.equals("T3:112345|212345|312345|412345|512345|Z", dart.toString(await_for_test.t3)); |
+ expect$.Expect.equals("T4:12345678910U", dart.toString(await_for_test.t4)); |
+ async_helper$.asyncEnd(); |
+ }, ListTodynamic())); |
+ }; |
+ dart.fn(await_for_test.main, VoidTodynamic()); |
+ let const$; |
+ await_for_test.timedCounter = function(maxCount) { |
+ let controller = null; |
+ let timer = null; |
+ let counter = 0; |
+ function tick(_) { |
+ counter++; |
+ controller.add(counter); |
+ if (counter >= dart.notNull(maxCount)) { |
+ timer.cancel(); |
+ controller.close(); |
+ } |
+ } |
+ dart.fn(tick, dynamicTovoid()); |
+ function startTimer() { |
+ timer = async.Timer.periodic(const$ || (const$ = dart.const(new core.Duration({milliseconds: 10}))), tick); |
+ } |
+ dart.fn(startTimer, VoidTovoid()); |
+ function stopTimer() { |
+ if (timer != null) { |
+ timer.cancel(); |
+ timer = null; |
+ } |
+ } |
+ dart.fn(stopTimer, VoidTovoid()); |
+ controller = async.StreamController.new({onListen: startTimer, onPause: stopTimer, onResume: startTimer, onCancel: stopTimer}); |
+ return controller.stream; |
+ }; |
+ dart.fn(await_for_test.timedCounter, intToStream()); |
+ let const$0; |
+ await_for_test.infiniteStream = function() { |
+ let controller = null; |
+ let timer = null; |
+ let counter = 0; |
+ function tick(_) { |
+ counter++; |
+ controller.add(counter); |
+ } |
+ dart.fn(tick, dynamicTovoid()); |
+ function startTimer() { |
+ timer = async.Timer.periodic(const$0 || (const$0 = dart.const(new core.Duration({milliseconds: 10}))), tick); |
+ } |
+ dart.fn(startTimer, VoidTovoid()); |
+ function stopTimer() { |
+ if (timer != null) { |
+ timer.cancel(); |
+ timer = null; |
+ } |
+ } |
+ dart.fn(stopTimer, VoidTovoid()); |
+ controller = async.StreamController.new({onListen: startTimer, onPause: stopTimer, onResume: startTimer, onCancel: stopTimer}); |
+ return controller.stream; |
+ }; |
+ dart.fn(await_for_test.infiniteStream, VoidToStream()); |
+ // Exports: |
+ exports.await_for_test = await_for_test; |
+}); |