| Index: test/codegen/expect/language/await_future_test.js
|
| diff --git a/test/codegen/expect/language/await_future_test.js b/test/codegen/expect/language/await_future_test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c00a4cd800592f8f755d3bc629cac511eb390c71
|
| --- /dev/null
|
| +++ b/test/codegen/expect/language/await_future_test.js
|
| @@ -0,0 +1,311 @@
|
| +dart_library.library('language/await_future_test', null, /* Imports */[
|
| + 'dart_sdk',
|
| + 'expect',
|
| + 'async_helper'
|
| +], function load__await_future_test(exports, dart_sdk, expect, async_helper) {
|
| + '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 expect$ = expect.expect;
|
| + const async_helper$ = async_helper.async_helper;
|
| + const await_future_test = Object.create(null);
|
| + let FutureOfint = () => (FutureOfint = dart.constFn(async.Future$(core.int)))();
|
| + let JSArrayOfString = () => (JSArrayOfString = dart.constFn(_interceptors.JSArray$(core.String)))();
|
| + let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))();
|
| + let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
|
| + let VoidToFuture = () => (VoidToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [])))();
|
| + let dynamicAnddynamicTodynamic = () => (dynamicAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
|
| + let VoidToFutureOfint = () => (VoidToFutureOfint = dart.constFn(dart.definiteFunctionType(FutureOfint(), [])))();
|
| + let intAndintTodynamic = () => (intAndintTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.int, core.int])))();
|
| + let dynamicToFuture = () => (dynamicToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [dart.dynamic])))();
|
| + await_future_test.bar = function(p) {
|
| + return dart.async(function*(p) {
|
| + return p;
|
| + }, dart.dynamic, p);
|
| + };
|
| + dart.fn(await_future_test.bar, dynamicTodynamic());
|
| + await_future_test.baz = function(p) {
|
| + return async.Future.new(dart.fn(() => p, VoidTodynamic()));
|
| + };
|
| + dart.fn(await_future_test.baz, dynamicTodynamic());
|
| + await_future_test.foo = function() {
|
| + return dart.async(function*() {
|
| + let b = 0;
|
| + for (let i = 0; i < 10; i++) {
|
| + b = dart.notNull(b) + dart.notNull(core.int._check(dart.dsend(yield await_future_test.bar(1), '+', yield await_future_test.baz(2))));
|
| + }
|
| + return b;
|
| + }, dart.dynamic);
|
| + };
|
| + dart.fn(await_future_test.foo, VoidTodynamic());
|
| + await_future_test.faa = function() {
|
| + return dart.async(function*() {
|
| + return dart.dload(yield await_future_test.bar('faa'), 'length');
|
| + }, dart.dynamic);
|
| + };
|
| + dart.fn(await_future_test.faa, VoidTodynamic());
|
| + await_future_test.quaz = function(p) {
|
| + return dart.async(function*(p) {
|
| + let x = 0;
|
| + try {
|
| + for (let j = 0; j < 10; j++) {
|
| + x = dart.notNull(x) + dart.notNull(core.int._check(yield await_future_test.baz(j)));
|
| + }
|
| + return x;
|
| + } finally {
|
| + expect$.Expect.equals(x, 45);
|
| + return p;
|
| + }
|
| + }, dart.dynamic, p);
|
| + };
|
| + dart.fn(await_future_test.quaz, dynamicTodynamic());
|
| + await_future_test.quazz = function() {
|
| + return dart.async(function*() {
|
| + let x = 0;
|
| + try {
|
| + try {
|
| + x = core.int._check(yield await_future_test.bar(1));
|
| + dart.throw(x);
|
| + } catch (e1) {
|
| + let y = (yield await_future_test.baz(dart.dsend(e1, '+', 1)));
|
| + dart.throw(y);
|
| + }
|
| +
|
| + } catch (e2) {
|
| + return e2;
|
| + }
|
| +
|
| + }, dart.dynamic);
|
| + };
|
| + dart.fn(await_future_test.quazz, VoidTodynamic());
|
| + await_future_test.nesting = function() {
|
| + return dart.async(function*() {
|
| + try {
|
| + try {
|
| + let x = 1;
|
| + let y = dart.fn(() => dart.async(function*() {
|
| + try {
|
| + let z = dart.dsend(yield await_future_test.bar(3), '+', x);
|
| + dart.throw(z);
|
| + } catch (e1) {
|
| + return e1;
|
| + }
|
| +
|
| + }, dart.dynamic), VoidToFuture());
|
| + let a = (yield y());
|
| + dart.throw(a);
|
| + } catch (e2) {
|
| + dart.throw(dart.dsend(e2, '+', 1));
|
| + }
|
| +
|
| + } catch (e3) {
|
| + return e3;
|
| + }
|
| +
|
| + }, dart.dynamic);
|
| + };
|
| + dart.fn(await_future_test.nesting, VoidTodynamic());
|
| + await_future_test.awaitAsUnary = function(a, b) {
|
| + return dart.async(function*(a, b) {
|
| + return dart.dsend(yield a, '+', yield b);
|
| + }, dart.dynamic, a, b);
|
| + };
|
| + dart.fn(await_future_test.awaitAsUnary, dynamicAnddynamicTodynamic());
|
| + await_future_test.awaitIf = function(p) {
|
| + return dart.async(function*(p) {
|
| + if (dart.test(dart.dsend(p, '<', yield await_future_test.bar(5)))) {
|
| + return "p<5";
|
| + } else {
|
| + return "p>=5";
|
| + }
|
| + }, dart.dynamic, p);
|
| + };
|
| + dart.fn(await_future_test.awaitIf, dynamicTodynamic());
|
| + await_future_test.awaitNestedIf = function(p, q) {
|
| + return dart.async(function*(p, q) {
|
| + if (dart.equals(p, yield await_future_test.bar(5))) {
|
| + if (dart.test(dart.dsend(q, '<', yield await_future_test.bar(7)))) {
|
| + return "q<7";
|
| + } else {
|
| + return "q>=7";
|
| + }
|
| + } else {
|
| + return "p!=5";
|
| + }
|
| + return "!";
|
| + }, dart.dynamic, p, q);
|
| + };
|
| + dart.fn(await_future_test.awaitNestedIf, dynamicAnddynamicTodynamic());
|
| + await_future_test.awaitElseIf = function(p) {
|
| + return dart.async(function*(p) {
|
| + if (dart.test(dart.dsend(p, '>', yield await_future_test.bar(5)))) {
|
| + return "p>5";
|
| + } else if (dart.test(dart.dsend(p, '<', yield await_future_test.bar(5)))) {
|
| + return "p<5";
|
| + } else {
|
| + return "p==5";
|
| + }
|
| + return "!";
|
| + }, dart.dynamic, p);
|
| + };
|
| + dart.fn(await_future_test.awaitElseIf, dynamicTodynamic());
|
| + await_future_test.awaitReturn = function() {
|
| + return dart.async(function*() {
|
| + return yield await_future_test.bar(17);
|
| + }, dart.dynamic);
|
| + };
|
| + dart.fn(await_future_test.awaitReturn, VoidTodynamic());
|
| + await_future_test.awaitSwitch = function() {
|
| + return dart.async(function*() {
|
| + switch (yield await_future_test.bar(3)) {
|
| + case 1:
|
| + {
|
| + return 1;
|
| + break;
|
| + }
|
| + case 3:
|
| + {
|
| + return 3;
|
| + break;
|
| + }
|
| + default:
|
| + {
|
| + return -1;
|
| + }
|
| + }
|
| + }, dart.dynamic);
|
| + };
|
| + dart.fn(await_future_test.awaitSwitch, VoidTodynamic());
|
| + await_future_test.awaitNestedWhile = function(i, j) {
|
| + return dart.async(function*(i, j) {
|
| + let savedJ = j;
|
| + let decI = dart.fn(() => dart.async(function*() {
|
| + let x = i;
|
| + i = dart.notNull(x) - 1;
|
| + return x;
|
| + }, core.int), VoidToFutureOfint());
|
| + let decJ = dart.fn(() => dart.async(function*() {
|
| + let x = j;
|
| + j = dart.notNull(x) - 1;
|
| + return x;
|
| + }, core.int), VoidToFutureOfint());
|
| + let k = 0;
|
| + while (dart.notNull(yield decI()) > 0) {
|
| + j = savedJ;
|
| + while (0 < dart.notNull(yield decJ())) {
|
| + k++;
|
| + }
|
| + }
|
| + return k;
|
| + }, dart.dynamic, i, j);
|
| + };
|
| + dart.fn(await_future_test.awaitNestedWhile, intAndintTodynamic());
|
| + await_future_test.awaitNestedDoWhile = function(i, j) {
|
| + return dart.async(function*(i, j) {
|
| + let savedJ = j;
|
| + let decI = dart.fn(() => dart.async(function*() {
|
| + let x = i;
|
| + i = dart.notNull(x) - 1;
|
| + return x;
|
| + }, core.int), VoidToFutureOfint());
|
| + let decJ = dart.fn(() => dart.async(function*() {
|
| + let x = j;
|
| + j = dart.notNull(x) - 1;
|
| + return x;
|
| + }, core.int), VoidToFutureOfint());
|
| + let k = 0;
|
| + do {
|
| + do {
|
| + k++;
|
| + } while (0 < dart.notNull(yield decI()));
|
| + } while (dart.notNull(yield decJ()) > 0);
|
| + return k;
|
| + }, dart.dynamic, i, j);
|
| + };
|
| + dart.fn(await_future_test.awaitNestedDoWhile, intAndintTodynamic());
|
| + await_future_test.awaitFor = function() {
|
| + return dart.async(function*() {
|
| + let asyncInc = dart.fn(p => dart.async(function*(p) {
|
| + return dart.dsend(p, '+', 1);
|
| + }, dart.dynamic, p), dynamicToFuture());
|
| + let k = 0;
|
| + for (let j = core.int._check(yield await_future_test.bar(0)), i = core.int._check(yield await_future_test.bar(1)); dart.notNull(j) < dart.notNull(core.num._check(yield await_future_test.bar(5))); j = core.int._check(yield dart.dcall(asyncInc, j)), i = core.int._check(yield dart.dcall(asyncInc, i))) {
|
| + k = dart.notNull(k) + dart.notNull(i);
|
| + k = dart.notNull(k) + dart.notNull(j);
|
| + }
|
| + return k;
|
| + }, dart.dynamic);
|
| + };
|
| + dart.fn(await_future_test.awaitFor, VoidTodynamic());
|
| + await_future_test.awaitForIn = function() {
|
| + return dart.async(function*() {
|
| + let list = JSArrayOfString().of(['a', 'b', 'c']);
|
| + let k = '';
|
| + for (let c of core.Iterable._check(yield await_future_test.bar(list))) {
|
| + k = dart.notNull(k) + dart.notNull(core.String._check(c));
|
| + }
|
| + return k;
|
| + }, dart.dynamic);
|
| + };
|
| + dart.fn(await_future_test.awaitForIn, VoidTodynamic());
|
| + await_future_test.test = function() {
|
| + return dart.async(function*() {
|
| + let result = null;
|
| + for (let i = 0; i < 10; i++) {
|
| + result = (yield await_future_test.foo());
|
| + expect$.Expect.equals(30, result);
|
| + result = (yield await_future_test.faa());
|
| + expect$.Expect.equals(3, result);
|
| + result = (yield await_future_test.quaz(17));
|
| + expect$.Expect.equals(17, result);
|
| + result = (yield await_future_test.quazz());
|
| + expect$.Expect.equals(2, result);
|
| + result = (yield await_future_test.nesting());
|
| + expect$.Expect.equals(5, result);
|
| + result = (yield await_future_test.awaitIf(3));
|
| + expect$.Expect.equals("p<5", result);
|
| + result = (yield await_future_test.awaitIf(5));
|
| + expect$.Expect.equals("p>=5", result);
|
| + result = (yield await_future_test.awaitNestedIf(5, 3));
|
| + expect$.Expect.equals("q<7", result);
|
| + result = (yield await_future_test.awaitNestedIf(5, 8));
|
| + expect$.Expect.equals("q>=7", result);
|
| + result = (yield await_future_test.awaitNestedIf(3, 8));
|
| + expect$.Expect.equals("p!=5", result);
|
| + result = (yield await_future_test.awaitReturn());
|
| + expect$.Expect.equals(17, result);
|
| + result = (yield await_future_test.awaitSwitch());
|
| + expect$.Expect.equals(3, result);
|
| + result = (yield await_future_test.awaitElseIf(6));
|
| + expect$.Expect.equals("p>5", result);
|
| + result = (yield await_future_test.awaitElseIf(4));
|
| + expect$.Expect.equals("p<5", result);
|
| + result = (yield await_future_test.awaitElseIf(5));
|
| + expect$.Expect.equals("p==5", result);
|
| + result = (yield await_future_test.awaitNestedWhile(5, 3));
|
| + expect$.Expect.equals(15, result);
|
| + result = (yield await_future_test.awaitNestedWhile(4, 6));
|
| + expect$.Expect.equals(24, result);
|
| + result = (yield await_future_test.awaitAsUnary(await_future_test.bar(1), await_future_test.bar(2)));
|
| + expect$.Expect.equals(3, result);
|
| + result = (yield await_future_test.awaitFor());
|
| + expect$.Expect.equals(25, result);
|
| + result = (yield await_future_test.awaitForIn());
|
| + expect$.Expect.equals('abc', result);
|
| + }
|
| + }, dart.dynamic);
|
| + };
|
| + dart.fn(await_future_test.test, VoidTodynamic());
|
| + await_future_test.main = function() {
|
| + async_helper$.asyncStart();
|
| + dart.dsend(await_future_test.test(), 'then', dart.fn(_ => {
|
| + async_helper$.asyncEnd();
|
| + }, dynamicTodynamic()));
|
| + };
|
| + dart.fn(await_future_test.main, VoidTodynamic());
|
| + // Exports:
|
| + exports.await_future_test = await_future_test;
|
| +});
|
|
|