Skip to content

SyntaxError: Cannot use keyword 'await' outside an async function #466

@icy0307

Description

@icy0307

What's the issue?

Exporting an async function with await keyword inside cause rollup-plugin-closure-compiler to report this error:

SyntaxError: Cannot use keyword 'await' outside an async function

How do we reproduce the issue?

  1. copy this to test folder test/export-default/async-function.test.js
import { generator } from '../generator';

generator('export-default', 'async-function', false, ['esm'], {stable: {}});

Keep everything the same as the rest of the tests, except for making language_out as default to avoid polyfills, which simplifies the test.

  1. the test in the fixtures folder 'test/export-default/fixtures/async-function.js'
export async function asyncTest() {
    await Promise.resolve('async-test');
    console.log('async-test')
}

export async function asyncTestWithArgument(argument) {
    await Promise.resolve('async-test-with-argument');
    console.log(argument)
}

We'll likely need to know:

  1. Your Rollup configuration.
    As mentioned above, default options.
  2. Error logs from your console when invoking Rollup with this plugin present.

  Unhandled rejection in test/export-default/async-function.test.js

  /workspaces/rollup-plugin-closure-compiler/node_modules/acorn/dist/acorn.js:2927

  SyntaxError: Cannot use keyword 'await' outside an async function (1:21)

  Parser.pp$4.raise (node_modules/acorn/dist/acorn.js:2927:15)
  Parser.pp$3.checkUnreserved (node_modules/acorn/dist/acorn.js:2853:16)
  Parser.pp$3.parseIdent (node_modules/acorn/dist/acorn.js:2883:12)
  Parser.pp$3.parseExprAtom (node_modules/acorn/dist/acorn.js:2254:21)
  Parser.pp$3.parseExprSubscripts (node_modules/acorn/dist/acorn.js:2129:21)
  Parser.pp$3.parseMaybeUnary (node_modules/acorn/dist/acorn.js:2106:19)
  Parser.pp$3.parseExprOps (node_modules/acorn/dist/acorn.js:2041:21)
  Parser.pp$3.parseMaybeConditional (node_modules/acorn/dist/acorn.js:2024:21)
  Parser.pp$3.parseMaybeAssign (node_modules/acorn/dist/acorn.js:1997:21)
  Parser.pp$3.parseExpression (node_modules/acorn/dist/acorn.js:1963:21)

If this is a feature request you can use this section to point to a prototype/mockup that will help us understand the request.

Additional context

Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions