| Summary: | Modules with top-level await should not block execution of sibling modules | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | nicolo.ribaudo |
| Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW --- | ||
| Severity: | Normal | CC: | mark.lam, nicolo.ribaudo, webkit-bug-importer, ysuzuki |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Safari 17 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Consider the following module: import "a" import "b" and assume that "a" uses top-level await. The expected execution order is: 1. "a" starts executing, and then pauses at the await 2. "b" gets executed 3. at some point, "a" finishes executing However, this is what is currently happening in Safari: 1. "a" starts executing, and then pauses at the await 2. at some point, "a" finishes executing 3. then "b" gets executed I submitted a WPT test for this at https://github.com/web-platform-tests/wpt/pull/42944