New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IE11 compatibility for top-level await #18487
Conversation
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
buildDuration | 12.9s | 12.7s | -277ms |
nodeModulesSize | 91.3 MB | 91.3 MB | ✓ |
Page Load Tests Overall increase ✓
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.455 | 2.412 | -0.04 |
/ avg req/sec | 1018.16 | 1036.7 | +18.54 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.289 | 1.243 | -0.05 |
/error-in-render avg req/sec | 1939.45 | 2012.04 | +72.59 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..3aa9.js gzip | 11.3 kB | 11.3 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-7f1864f..ae19.js gzip | 7.35 kB | 7.35 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.3 kB | 58.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 7.03 kB | 7.03 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-6865226..dule.js gzip | 6.33 kB | 6.33 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.1 kB | 53.1 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-41ceea0..6b62.js gzip | 1.35 kB | 1.35 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.75 kB | 7.75 kB | ✓ |
Client Pages Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-2d41a89..dule.js gzip | 1.31 kB | 1.31 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.4 kB | 5.4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
index.html gzip | 1 kB | 1 kB | ✓ |
link.html gzip | 1.01 kB | 1.01 kB | ✓ |
withRouter.html gzip | 996 B | 996 B | ✓ |
Overall change | 3.01 kB | 3.01 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
buildDuration | 14.5s | 14.7s | |
nodeModulesSize | 91.3 MB | 91.3 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..3aa9.js gzip | 11.3 kB | 11.3 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-7f1864f..ae19.js gzip | 7.35 kB | 7.35 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.3 kB | 58.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 7.03 kB | 7.03 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-6865226..dule.js gzip | 6.33 kB | 6.33 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.1 kB | 53.1 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-41ceea0..6b62.js gzip | 1.35 kB | 1.35 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.75 kB | 7.75 kB | ✓ |
Client Pages Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-2d41a89..dule.js gzip | 1.31 kB | 1.31 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.4 kB | 5.4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Serverless bundles
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_error.js | 1.06 MB | 1.06 MB | ✓ |
404.html | 4.73 kB | 4.73 kB | ✓ |
hooks.html | 3.92 kB | 3.92 kB | ✓ |
index.js | 1.06 MB | 1.06 MB | ✓ |
link.js | 1.11 MB | 1.11 MB | ✓ |
routerDirect.js | 1.1 MB | 1.1 MB | ✓ |
withRouter.js | 1.1 MB | 1.1 MB | ✓ |
Overall change | 5.43 MB | 5.43 MB | ✓ |
Stats from current PRDefault Server Mode (Decrease detected ✓)General
Page Load Tests Overall decrease
|
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.554 | 2.552 | 0 |
/ avg req/sec | 979.04 | 979.78 | +0.74 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.518 | 1.586 | |
/error-in-render avg req/sec | 1646.53 | 1576.75 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..3aa9.js gzip | 11.3 kB | 11.3 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-7f1864f..ae19.js gzip | 7.35 kB | 7.35 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.3 kB | 58.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 7.03 kB | 7.03 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-6865226..dule.js gzip | 6.33 kB | 6.33 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.1 kB | 53.1 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-41ceea0..6b62.js gzip | 1.35 kB | 1.35 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.75 kB | 7.75 kB | ✓ |
Client Pages Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-2d41a89..dule.js gzip | 1.31 kB | 1.31 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.4 kB | 5.4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
index.html gzip | 1 kB | 1 kB | ✓ |
link.html gzip | 1.01 kB | 1.01 kB | ✓ |
withRouter.html gzip | 996 B | 996 B | ✓ |
Overall change | 3.01 kB | 3.01 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
buildDuration | 15s | 15.1s | |
nodeModulesSize | 91.3 MB | 91.3 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..3aa9.js gzip | 11.3 kB | 11.3 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-7f1864f..ae19.js gzip | 7.35 kB | 7.35 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.3 kB | 58.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 7.03 kB | 7.03 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-6865226..dule.js gzip | 6.33 kB | 6.33 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.1 kB | 53.1 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-41ceea0..6b62.js gzip | 1.35 kB | 1.35 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.75 kB | 7.75 kB | ✓ |
Client Pages Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-2d41a89..dule.js gzip | 1.31 kB | 1.31 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.4 kB | 5.4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Serverless bundles
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_error.js | 1.06 MB | 1.06 MB | ✓ |
404.html | 4.73 kB | 4.73 kB | ✓ |
hooks.html | 3.92 kB | 3.92 kB | ✓ |
index.js | 1.06 MB | 1.06 MB | ✓ |
link.js | 1.11 MB | 1.11 MB | ✓ |
routerDirect.js | 1.1 MB | 1.1 MB | ✓ |
withRouter.js | 1.1 MB | 1.1 MB | ✓ |
Overall change | 5.43 MB | 5.43 MB | ✓ |
- run: cat packages/next/package.json | jq '.resolutions."react-dom" = "^17.0.0-rc.1"' > package.json.tmp && mv package.json.tmp packages/next/package.json | ||
- run: cat package.json | jq '.resolutions.webpack = "^5.0.0-beta.30"' > package.json.tmp && mv package.json.tmp package.json | ||
- run: cat package.json | jq '.resolutions.react = "^17.0.0-rc.1"' > package.json.tmp && mv package.json.tmp package.json | ||
- run: cat package.json | jq '.resolutions."react-dom" = "^17.0.0-rc.1"' > package.json.tmp && mv package.json.tmp package.json |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I noticed that the webpack 5 tests never ran, as webpack remained at 4.x on CI. When #17590 was merged, it looks like all tests were simply skipped:
Running tests:
test/integration/async-modules/test/index.test.js
console.log test/jest-setup-after-env.js:5
Configuring jest retries: 0
Test Suites: 1 skipped, 0 of 1 total
Tests: 24 skipped, 24 total
Snapshots: 0 total
Time: 4.269s
From https://github.com/vercel/next.js/runs/1252336307
With the change above, they run as expected. Does this look ok to you or am I overlooking something?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤔 interesting. That means none of the webpack 5 tests are currently actually testing webpack 5 integration?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure, I'm really new to the repository and not familiar with the general setup. I just noticed that my added test didn't fail on CI and therefore I've adjusted this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Btw. the project where I originally found this bug is using the currently latest version of webpack
: 5.3.1.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And this doesn't happen on next 10 + webpack 4?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean, does the bundle contain async () =>
in webpack 4, even when not using top-level-await?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't checked that yet, but what I did try is using webpack 5 and using async/await in the regular component code in _app
. These statements were changed to ES5 as expected, but only the top-level await code resulted in native async/await code.
That made me wondering if top-level await only works with native async/await but I'd assume there should be some way for webpack to resolve the modules with promises and calling then
.
As far as I understand the build chain, the user-land async/await code is compiled with Babel and then provided to webpack. But for top-level await code Babel doesn't attempt to transform it, since it needs to rely on the bundler to do this. The bundler chooses to turn it into native async/await which happens to break in IE11.
So I'm wondering if this is really a webpack issue, as I guess you wouldn't want to run babel again on the bundle code that webpack has produced.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've created a minimal reproduction only with webpack now and opened an issue in the webpack repository to discuss this: webpack/webpack#11874.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fyi, I also included these changes in #18589
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, thanks!
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
buildDuration | 12.7s | 12.8s | |
nodeModulesSize | 91.3 MB | 91.3 MB | ✓ |
Page Load Tests Overall increase ✓
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.398 | 2.4 | 0 |
/ avg req/sec | 1042.53 | 1041.58 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.285 | 1.255 | -0.03 |
/error-in-render avg req/sec | 1945.05 | 1992.77 | +47.72 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..3aa9.js gzip | 11.3 kB | 11.3 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-7f1864f..ae19.js gzip | 7.35 kB | 7.35 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.3 kB | 58.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 7.03 kB | 7.03 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-6865226..dule.js gzip | 6.33 kB | 6.33 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.1 kB | 53.1 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-41ceea0..6b62.js gzip | 1.35 kB | 1.35 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.75 kB | 7.75 kB | ✓ |
Client Pages Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-2d41a89..dule.js gzip | 1.31 kB | 1.31 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.4 kB | 5.4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
index.html gzip | 1 kB | 1 kB | ✓ |
link.html gzip | 1.01 kB | 1.01 kB | ✓ |
withRouter.html gzip | 996 B | 996 B | ✓ |
Overall change | 3.01 kB | 3.01 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
buildDuration | 14.7s | 14.7s | |
nodeModulesSize | 91.3 MB | 91.3 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..3aa9.js gzip | 11.3 kB | 11.3 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-7f1864f..ae19.js gzip | 7.35 kB | 7.35 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.3 kB | 58.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 7.03 kB | 7.03 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-6865226..dule.js gzip | 6.33 kB | 6.33 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.1 kB | 53.1 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-41ceea0..6b62.js gzip | 1.35 kB | 1.35 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.75 kB | 7.75 kB | ✓ |
Client Pages Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-2d41a89..dule.js gzip | 1.31 kB | 1.31 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.4 kB | 5.4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Serverless bundles
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_error.js | 1.06 MB | 1.06 MB | ✓ |
404.html | 4.73 kB | 4.73 kB | ✓ |
hooks.html | 3.92 kB | 3.92 kB | ✓ |
index.js | 1.06 MB | 1.06 MB | ✓ |
link.js | 1.11 MB | 1.11 MB | ✓ |
routerDirect.js | 1.1 MB | 1.1 MB | ✓ |
withRouter.js | 1.1 MB | 1.1 MB | ✓ |
Overall change | 5.43 MB | 5.43 MB | ✓ |
Stats from current PRDefault Server Mode (Decrease detected ✓)General
Page Load Tests Overall decrease
|
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.456 | 2.413 | -0.04 |
/ avg req/sec | 1018.1 | 1035.85 | +17.75 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.293 | 1.342 | |
/error-in-render avg req/sec | 1932.81 | 1862.94 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..3aa9.js gzip | 11.3 kB | 11.3 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-7f1864f..ae19.js gzip | 7.35 kB | 7.35 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.3 kB | 58.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 7.03 kB | 7.03 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-6865226..dule.js gzip | 6.33 kB | 6.33 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.1 kB | 53.1 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-41ceea0..6b62.js gzip | 1.35 kB | 1.35 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.75 kB | 7.75 kB | ✓ |
Client Pages Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-2d41a89..dule.js gzip | 1.31 kB | 1.31 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.4 kB | 5.4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
index.html gzip | 1 kB | 1 kB | ✓ |
link.html gzip | 1.01 kB | 1.01 kB | ✓ |
withRouter.html gzip | 996 B | 996 B | ✓ |
Overall change | 3.01 kB | 3.01 kB | ✓ |
Serverless Mode
General
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
buildDuration | 14.5s | 14.7s | |
nodeModulesSize | 91.3 MB | 91.3 MB | ✓ |
Client Bundles (main, webpack, commons)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..3aa9.js gzip | 11.3 kB | 11.3 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-7f1864f..ae19.js gzip | 7.35 kB | 7.35 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.3 kB | 58.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 7.03 kB | 7.03 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-6865226..dule.js gzip | 6.33 kB | 6.33 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.1 kB | 53.1 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-9a0b9e1..b37e.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-ed1b0..8fbd.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-89731c..c609.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-41ceea0..6b62.js gzip | 1.35 kB | 1.35 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.75 kB | 7.75 kB | ✓ |
Client Pages Modern
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-4469a..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-2d41a89..dule.js gzip | 1.31 kB | 1.31 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.4 kB | 5.4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_buildManifest.js gzip | 323 B | 323 B | ✓ |
_buildManife..dule.js gzip | 329 B | 329 B | ✓ |
Overall change | 652 B | 652 B | ✓ |
Serverless bundles
vercel/next.js canary | amannn/next.js top-level-await-ie11 | Change | |
---|---|---|---|
_error.js | 1.06 MB | 1.06 MB | ✓ |
404.html | 4.73 kB | 4.73 kB | ✓ |
hooks.html | 3.92 kB | 3.92 kB | ✓ |
index.js | 1.06 MB | 1.06 MB | ✓ |
link.js | 1.11 MB | 1.11 MB | ✓ |
routerDirect.js | 1.1 MB | 1.1 MB | ✓ |
withRouter.js | 1.1 MB | 1.1 MB | ✓ |
Overall change | 5.43 MB | 5.43 MB | ✓ |
|
||
const appScriptMatch = html.match( | ||
/\/_next\/static\/chunks\/pages\/_app-.+?\.js/ | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if there's a way to avoid hardcoding this path or to generally rewrite this test. For now I only tried to get a failing test that demonstrates the issue.
|
||
const appScript = appScriptMatch[0] | ||
const appScriptContent = await renderViaHTTP(appPort, appScript) | ||
expect(appScriptContent).not.toMatch(/async\(\)=>/) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This fails currently.
Going to close this as it's stale, could you open a new PR as the webpack 5 tests run correctly now. Thanks! |
@timneutkens I don't think there's a way to get this to work from the webpack side currently. I was working on a fix in webpack/webpack#11881, but it seems quite complex to solve. |
I noticed that when the top-level await feature is used, the compiled output contains async/await and will therefore throw in IE11.
Do you have an idea what's causing this?
Update: I think this has to be solved on the webpack side. I've created an issue here: webpack/webpack#11874.
Related to #17590
/cc @Janpot