We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
make update-compat-table
1 parent c339f34 commit 9ddfe5fCopy full SHA for 9ddfe5f
4 files changed
compat-table/package-lock.json
compat-table/package.json
@@ -1,12 +1,12 @@
1
{
2
"githubDependencies": {
3
"kangax/compat-table": "b3427ba3a2d6fd2dc427c3dfcf191832f634eb06",
4
- "williamkapke/node-compat-table": "abc812c34335866ee4fd4e94d9208ebd310de444"
+ "williamkapke/node-compat-table": "c10606cfc85fbe3a31cfd58f23fad872ad5fa5bc"
5
},
6
"dependencies": {
7
- "@mdn/browser-compat-data": "^6.0.8",
+ "@mdn/browser-compat-data": "^6.0.15",
8
"@types/caniuse-lite": "1.0.1",
9
"@types/node": "20.3.2",
10
- "caniuse-lite": "^1.0.30001715"
+ "caniuse-lite": "^1.0.30001718"
11
}
12
compat-table/src/index.ts
@@ -511,6 +511,25 @@ import('./kangax').then(kangax => {
511
// MDN data is wrong here: https://www.chromestatus.com/feature/6482797915013120
512
js.ClassStaticBlocks.Chrome = { 91: { force: true } }
513
514
+ // WebKit has now been marked as not supporting top-level await because it
515
+ // turns out they have a pretty severe bug: Importing a module that uses
516
+ // top-level await twice causes the second import to fail. For more info see:
517
+ // https://bugs.webkit.org/show_bug.cgi?id=242740
518
+ //
519
+ // However, we're going to override this to say it's still supported because:
520
+ // - It always fails loudly when this happens (the import fails)
521
+ // - People would otherwise be blocked from using this feature at all in
522
+ // WebKit-based browsers
523
+ // - From what I understand, most use of top-level await is in the entry-point
524
+ // module, where this isn't an issue
525
+ // - When you bundle your code, nested modules become entry points so this
526
+ // issue also wouldn't come up
527
+ // - The top-level await implementation in esbuild isn't even correct for
528
+ // nested modules as they become linearized in the bundle (like Rollup, but
529
+ // not like Webpack)
530
+ js.TopLevelAwait.IOS = { 15: { force: true } }
531
+ js.TopLevelAwait.Safari = { 15: { force: true } }
532
+
533
const [jsVersionRanges, jsWhyNot] = supportMapToVersionRanges(js)
534
generateTableForJS(jsVersionRanges, jsWhyNot)
535
})
internal/compat/js_table.go
@@ -588,13 +588,14 @@ var jsTable = map[JSFeature]map[Engine][]versionRange{
588
Node: {{start: v{16, 14, 0}, end: v{22, 0, 0}}},
589
590
ImportAttributes: {
591
- Chrome: {{start: v{123, 0, 0}}},
592
- Deno: {{start: v{1, 37, 0}}},
593
- Edge: {{start: v{123, 0, 0}}},
594
- IOS: {{start: v{17, 2, 0}}},
595
- Node: {{start: v{18, 20, 0}, end: v{19, 0, 0}}, {start: v{20, 10, 0}}},
596
- Opera: {{start: v{109, 0, 0}}},
597
- Safari: {{start: v{17, 2, 0}}},
+ Chrome: {{start: v{123, 0, 0}}},
+ Deno: {{start: v{1, 37, 0}}},
+ Edge: {{start: v{123, 0, 0}}},
+ Firefox: {{start: v{138, 0, 0}}},
+ IOS: {{start: v{17, 2, 0}}},
+ Node: {{start: v{18, 20, 0}, end: v{19, 0, 0}}, {start: v{20, 10, 0}}},
+ Opera: {{start: v{109, 0, 0}}},
598
+ Safari: {{start: v{17, 2, 0}}},
599
600
ImportMeta: {
601
Chrome: {{start: v{64, 0, 0}}},
0 commit comments