GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Add top-level await for esnext and system modules by rbuckton · Pull Request #35813 · microsoft/TypeScript

Conversation

@rbuckton

@rbuckton Ron Buckton (rbuckton) commented Dec 21, 2019 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

This removes our restriction around using an await expression at the top level of a file when the following conditions are met:

  • The containing file is an external module (or --isolatedModules is provided)
  • The --target is >= ScriptTarget.ES2017 (minimum version required for await keyword)
  • The --module is either esnext or system.

This is not currently supported for earlier script targets (e.g., ES2016, ES2015, ES5, ES3) as the system transform currently happens after async functions and generators have been transformed, so it is too late to transform the async function that is created as part of the system module transform. This also ensures it is consistent with --target es5 --module esnext, as there would be no way to down-level the await in that context either.

Fixes #25988, #32793

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

saschanaz, brainkim, ExE-Boss, MitchTalmadge, matijagrcic, islishude, fuafa, btoo, aryzing, delzennejc, and 17 more reacted with thumbs up emoji shreyasminocha, brainkim, MitchTalmadge, sumitmckv, ryasmi, chicoxyzzy, dekhanov, aryzing, ExE-Boss, tomironkko, and 6 more reacted with hooray emoji mightyiam, matijagrcic, aryzing, ExE-Boss, rayhanw, and emadgit reacted with heart emoji ExE-Boss, emadgit, and SergeITinc reacted with rocket emoji brainkim, emadgit, and SergeITinc reacted with eyes emoji
All reactions
  • 👍 27 reactions
  • 🎉 16 reactions
  • ❤️ 6 reactions
  • 🚀 3 reactions
  • 👀 3 reactions
@rbuckton
Ron Buckton (rbuckton) requested review from Daniel Rosenwasser (DanielRosenwasser), Andrew Branch (andrewbranch) and Wesley Wigham (weswigham) December 21, 2019 03:03
@rbuckton
Add top-level await for esnext and system modules
1a30b10
@rbuckton
Ron Buckton (rbuckton) force-pushed the topLevelAwait branch from e3e8b0c to 1a30b10 Compare December 21, 2019 03:32
weswigham
Wesley Wigham (weswigham) approved these changes Dec 21, 2019
View reviewed changes
@rbuckton
Ron Buckton (rbuckton) merged commit 114dad7 into master Dec 22, 2019
@rbuckton
Ron Buckton (rbuckton) deleted the topLevelAwait branch December 22, 2019 21:24
@mightyiam

Shahar "Dawn" Or (mightyiam) commented Dec 23, 2019

Copy link
Copy Markdown

Thank you, Ron Buckton (@rbuckton). I'm looking forward to using this!

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@brainkim Brian Kim (brainkim) mentioned this pull request Dec 24, 2019
Bundling V2 denoland/deno#2475
Closed
@rbuckton Ron Buckton (rbuckton) mentioned this pull request Jan 6, 2020
Support top-level await in SystemJS modules #32793
Closed
@dtruffaut Denis TRUFFAUT (dtruffaut) mentioned this pull request Mar 31, 2020
Add a stable module target for top-level await #37709
Open
@Vandivier John Vandivier (Vandivier) mentioned this pull request Apr 4, 2020
Remove extraneous top-level await requirement #37794
Closed
@dandv Dan Dascalescu (dandv) mentioned this pull request May 9, 2020
Output ES Modules typegoose/typegoose#214
Open
@gregbenz Greg B (gregbenz) mentioned this pull request Jul 30, 2020
ERROR in The "path" argument must be of type string. Received an instance of Object webpack/copy-webpack-plugin#496
Closed
@github-actions github-actions Bot mentioned this pull request Aug 14, 2022
Remove span tag in title and unnecessary TOC in Ko microsoft/TypeScript-Website-Localizations#164
Merged
@microsoft Microsoft (microsoft) locked as resolved and limited conversation to collaborators Oct 21, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Reviewers

@weswigham Wesley Wigham (weswigham) weswigham approved these changes
@DanielRosenwasser Daniel Rosenwasser (DanielRosenwasser) Awaiting requested review from DanielRosenwasser
@andrewbranch Andrew Branch (andrewbranch) Awaiting requested review from andrewbranch

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Top Level Await

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@rbuckton @mightyiam @weswigham
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.