TGViewer
Представляешь, Представляешь, @your_tech · 8.72K subscribers
Post #10634 764
в Safari годами ломался top-level await, потому что загрузчик модулей писали по черновику 2016 года

WebKit сегодня рассказал, откуда брались ошибки «Cannot access ... before initialization» в модулях с await на верхнем уровне. Загрузчик модулей Safari был написан по предложению WHATWG Loader, последний раз обновлённому в январе 2016 года, когда async/await в JavaScript ещё не существовало. Top-level await из ES2022 реализовали поверх этой основы, и точечные правки не помогали.

В январе 2026 года команда удалила старый загрузчик и переписала его на C++ по алгоритмам стандарта ECMAScript. Тесты присылала в том числе команда Bun: их рантайм работает на том же JavaScriptCore и унаследовал те же баги. Исправление уже доступно в Safari Technology Preview 251 и бете Safari 27, в стабильную версию попадёт с выходом Safari 27, дата которого не названа.

Для фронтендеров это значит, что один из последних поводов избегать top-level await в продакшене скоро исчезнет, но обходные пути для старых Safari пока придётся держать. Пример падающего кода и детали переписывания разобрали на сайте.
  • 🤣 5
  • 🤔 3
More from @your_tech
  1. Sep 21, 2026Tailcat 0.7.0 научил exit-узлы передавать UDP-трафик Вышел Tailcat 0.7.0: CLI-инструмент и…
  2. Sep 21, 2026В SourceGit 2026.21 добавили cherry-pick merge-коммитов Вышел SourceGit 2026.21, бесплатны…
  3. Sep 21, 2026Connect-Go 1.17 поддержала Protobuf Editions Connect-Go, библиотека для Go-разработчиков б…
  4. Sep 21, 2026rust-analyzer 0.3.3057 научился дополнять выражения внутри cfg!() В языковом сервере rust-…
  5. Sep 21, 2026Pi 0.86.1 добавил поддержку Meta Muse и ускорил повторный запуск Вышла версия Pi 0.86.1, р…
  6. Sep 21, 2026Shopify выпустила RC API 2026-10 с несовместимыми изменениями Предварительная версия API S…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →