//// [tests/cases/compiler/es5-asyncFunctionNewExpressions.ts] ////

//// [es5-asyncFunctionNewExpressions.ts]
declare var x, y, z, a, b, c;

async function newExpression0() {
    await new x(y, z);
}

async function newExpression1() {
    new (await x)(y, z);
}

async function newExpression2() {
    new x(await y, z);
}

async function newExpression3() {
    new x(y, await z);
}

async function newExpression4() {
    await new x(...y, z);
}

async function newExpression5() {
    new (await x)(...y, z);
}

async function newExpression6() {
    new x(...(await y), z);
}

async function newExpression7() {
    new x(...y, await z);
}

async function newExpression8() {
    new x(await y, ...z);
}

async function newExpression9() {
    new x(y, ...(await z));
}

async function newExpression10() {
    await new x.a(y, z);
}

async function newExpression11() {
    new (await x.a)(y, z);
}

async function newExpression12() {
    new (await x).a(y, z);
}

async function newExpression13() {
    new x.a(await y, z);
}

async function newExpression14() {
    new x.a(y, await z);
}

async function newExpression15() {
    await new x[a](y, z);
}

async function newExpression16() {
    new (await x[a])(y, z);
}

async function newExpression17() {
    new (await x)[a](y, z);
}

async function newExpression18() {
    new x[await a](y, z);
}

async function newExpression19() {
    new x[a](await y, z);
}

async function newExpression20() {
    new x[a](y, await z);
}

//// [es5-asyncFunctionNewExpressions.js]
"use strict";
function newExpression0() {
    return __awaiter(this, void 0, void 0, function* () {
        yield new x(y, z);
    });
}
function newExpression1() {
    return __awaiter(this, void 0, void 0, function* () {
        new (yield x)(y, z);
    });
}
function newExpression2() {
    return __awaiter(this, void 0, void 0, function* () {
        new x(yield y, z);
    });
}
function newExpression3() {
    return __awaiter(this, void 0, void 0, function* () {
        new x(y, yield z);
    });
}
function newExpression4() {
    return __awaiter(this, void 0, void 0, function* () {
        yield new x(...y, z);
    });
}
function newExpression5() {
    return __awaiter(this, void 0, void 0, function* () {
        new (yield x)(...y, z);
    });
}
function newExpression6() {
    return __awaiter(this, void 0, void 0, function* () {
        new x(...(yield y), z);
    });
}
function newExpression7() {
    return __awaiter(this, void 0, void 0, function* () {
        new x(...y, yield z);
    });
}
function newExpression8() {
    return __awaiter(this, void 0, void 0, function* () {
        new x(yield y, ...z);
    });
}
function newExpression9() {
    return __awaiter(this, void 0, void 0, function* () {
        new x(y, ...(yield z));
    });
}
function newExpression10() {
    return __awaiter(this, void 0, void 0, function* () {
        yield new x.a(y, z);
    });
}
function newExpression11() {
    return __awaiter(this, void 0, void 0, function* () {
        new (yield x.a)(y, z);
    });
}
function newExpression12() {
    return __awaiter(this, void 0, void 0, function* () {
        new (yield x).a(y, z);
    });
}
function newExpression13() {
    return __awaiter(this, void 0, void 0, function* () {
        new x.a(yield y, z);
    });
}
function newExpression14() {
    return __awaiter(this, void 0, void 0, function* () {
        new x.a(y, yield z);
    });
}
function newExpression15() {
    return __awaiter(this, void 0, void 0, function* () {
        yield new x[a](y, z);
    });
}
function newExpression16() {
    return __awaiter(this, void 0, void 0, function* () {
        new (yield x[a])(y, z);
    });
}
function newExpression17() {
    return __awaiter(this, void 0, void 0, function* () {
        new (yield x)[a](y, z);
    });
}
function newExpression18() {
    return __awaiter(this, void 0, void 0, function* () {
        new x[yield a](y, z);
    });
}
function newExpression19() {
    return __awaiter(this, void 0, void 0, function* () {
        new x[a](yield y, z);
    });
}
function newExpression20() {
    return __awaiter(this, void 0, void 0, function* () {
        new x[a](y, yield z);
    });
}
