В текущем выпуске ClojureScript добавлена поддержка ECMAScript 2016, что позволило внедрить важные улучшения взаимодействия с JavaScript. С этого момента использование мета-обозначения ^:async для объявления функции заставляет компилятор генерировать стандартную асинхронную функцию JavaScript. Это означает, что разработчики могут теперь использовать глобальные объекты Promise без необходимости добавлять лишние зависимости. Например, при объявлении функции foo с флагом ^:async код автоматически превращается в вариант с ключевым словом async, где внутри разрешается использовать оператор await. Это позволяет удобно работать с Promise и современными браузерами. Механизм работает не только в реальном коде, но и в тестовых случаях. В тестовом примере функция defn-test помечена тем же флагом, а внутри теста оператор await корректно обрабатывает вызовы, передавая результат проверки is. Такой подход стал ответом на запросы сообщества, так как в прошлой переписке опросов поддержка асинхронных функций занимала лидирующие позиции в списке желаемых нововведений. Теперь этот функционал встроён по умолчанию. Благодаря этой доработке устранена необходимость подключать дополнительные пакеты для типичных сценариев взаимодействия с популярными библиотеками и нативными API браузера. Для получения полного списка всех исправлений и изменений стоит посетить официальную страницу обновлений.
ClojureScript получил нативные Promise и ES2016
08.05.2026 07:04 · hackernews