Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
В Chrome Canary под флагом добавлено кэширование скомпилированных #WebAssembly модулей. Включение фичи позволяет избежать повторной компиляции и сразу инициировать модуль с горячим стартом.
Интересная серия статей “Проблемы #WebAssembly” в четырех частях:
- WebAssembly Is Not a Stack Machine
- Why Do We Need the Relooper Algorithm, Again?
- What About Alloca?
- Microwasm
В Firefox Nightly 67 добавили защиту от криптовалютных майнеров и фингерпринтинга.
https://bugzilla.mozilla.org/show_bug.cgi?id=1527917
Вышла новая версия Safari Technology Preview под номером 76 с незначительными исправлениями темного режима, WebRTC, CSS, рендерера.

https://webkit.org/blog/8607/release-notes-for-safari-technology-preview-76/
Опубликованы записи с 68й встречи #TC39, проходившей 29-31 января.

https://github.com/tc39/tc39-notes/tree/master/es9/2019-01
Сегодня в багтрекере Firefox была закрыт и помечен как решённый тикет про публичные и приватные поля классов, хотя я не смог найти как включить их в свежайшем Nightly (но есть понятный эксепшн SyntaxError: fields are not currently supported).
https://bugzilla.mozilla.org/show_bug.cgi?id=1499448
Новость не совсем по теме канала, но довольно интересная и важная:
В стандарт C++20 добавили модули и корутины!
https://twitter.com/jfbastien/status/1099420319847145473
Рабочая группа Web Performance опубликовала спецификацию User Timing Level 2 как W3C Recommendation. Эта спецификация описывает возмозможности для измерения производительности приложений с помощью высокоточных таймеров и поглощает выпущенную в декабре 2013 года спецификацию User Timing.
Сегодня ночью приватные поля были добавлены в Chrome Canary 74 без флагов. Выпуск стабильной версии Chrome 74 планируется 23 апреля (кстати, в один день с Node 12.0.0).
Работа над добавлением полей классов также активно идёт в Firefox и Safari.
С сегодняшнего дня мастер ветка репозитория спецификации содержит версию ES2020, а ES2019 выделен в отдельную ветку. Напомню, что следуя документу процесса TC39, feature freeze ES2019 происходит после январской встречи, а все последующие предложения в спецификацию, которые достигнут stage 4, попадут уже в ES2020. Официальный релиз ES2019 произойдет в июле.

https://twitter.com/bterlson/status/1101226568985174016
Hashbang Grammar добавили в SpiderMonkey. В Firefox Nightly изменение пока не доехало, но скоро выкатится (а в Chrome Canary 74 уже есть). Такой синтаксис нужен для запуска скриптов в unix-системах интерпретатором (в случае с js это в основном, конечно, NodeJS). Поддержка на уровне языка позволит считать такую строку комментарием и соответственно игнорировать её. Так можно переиспользовать скрипты как из CLI окружений, так и в движках JavaScript.

https://bugzilla.mozilla.org/show_bug.cgi?id=1519097
В Firefox собираются сделать String.prototype.matchAll доступным без каких-либо флагов во всех сборках. На данный момент эта фича доступна только в Nightly.

https://bugzilla.mozilla.org/show_bug.cgi?id=1531830
Бенедикт Мойрер (команда Google V8) опубликовал свои исследования производительности конкатенации строк в JavaScript и конкретно в V8.
bit.ly/fast-string-concatenation-in-javascript
Рабочая группа W3C Web Authentication опубликовала W3C Recommendation спецификации Web Authentication: An API for accessing Public Key Credentials Level 1 (WebAuthn). Этот API позволяет веб-приложениям использовать простую и надежную аутентификацию и уже поддерживатся в Windows 10, Android, а также браузерах Chrome, Firefox, Edge и Safari. Подробнее в пресс-релизе от W3C и FIDO Alliance:
https://www.w3.org/2019/03/pressrelease-webauthn-rec.html
Совсем забыл написать вчера огненную новость 🔥 (но возможно Вы уже в курсе).
В Chrome 73, который выйдет уже через неделю (12 марта) убрали поддержку Web Components v0, что привело к поломке некоторых сайтов, например… YouTube. Этот видеосервис от Google использует JavaScript библиотеку Polymer 1.0, основанную на устаревшей версии веб-компонентов и добавляет полифиллы для всех браузеров, кроме основанных на Chromium. Проверки на версию Chromium на YouTube до сих пор нет, поэтому в Canary он выглядит как на скриншоте. Представители команды Polymer прокомментировали это под твитом от Веса Боса.
Данный факт стал причиной появления множества шуток с использованием слогана от команды Polymer “Use the platform”.
Пока разработчики JavaScript движков занимаются имплементацией приватных полей классов (а разработчики V8 уже реализовали их и добавили без флага в Chrome 74), споры вокруг этого предложения в спецификацию не угасают. Одна из свежих issue: “private fields will break vue/mobx”. Также можно почитать последние комментарии из “Private members break proxies”.
На только что завершившейся встрече #WebAssembly Community Group был достигнут консенсус по переносу предложения Bulk memory operations с phase 2 на phase 3 (фаза имплементации). В настоящее время это предложение уже реализовано в SpiderMonkey и V8.
Релиз Safari TP 77 с изменениями в WebRTC, обновлениями CSS Grid, исправлениями доступности, улучшениями Web inspector и пр.
https://webkit.org/blog/8658/release-notes-for-safari-technology-preview-77/