Published September 2: WebKit's writeup on fixing top-level await in Safari. The post is worth your time even if you never hit the bug, because the fix itself is the story.
The shape of the fix
- iOS module code shipped inside a rewrite: Safari 27.0's notes describe a complete, standards-compliant reimplementation of the ES module loader, built in native C++ and conforming to the spec's loading algorithms directly.
- The rewrite replaced an implementation based on a 2016 proposal that predated top-level await entirely, which is how legacy design quietly constrains what a feature can do years later.
- Validation did not ship on vibes: the notes name test262, Web Platform Tests, and additional test cases as the bar.
Top-level await lets a module pause on a promise before its exports settle. Cross-browser teams knew Safari as the engine where that pattern occasionally lied. The lesson that carries everywhere: bugs like this never fix under the error message they cause; they fix one layer down, where the loader decides order. Read the source post for the genuinely engrossing detail.
