Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Опубликованы записи с 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/
В Firefox 67 собираются убрать флаг для динамических импортов и включить их подефолту.
https://bugzilla.mozilla.org/show_bug.cgi?id=1517546
А вот это интересно. Некоторые члены #TC39 отказываются принять динамические импорты в стандарт из-за проблем безопасности. При этом они уже заимплеменчены во всех браузерах (относительно Firefox см. новость выше).
https://twitter.com/_gsathya/status/1103430437920104448
String.prototype.matchAll теперь доступен в Firefox 67 Nightly без флага
https://bugzilla.mozilla.org/show_bug.cgi?id=1531830
Вышел Chrome 73.

Из изменений в JavaScript:
- Object.fromEntries()
- String.prototype.matchAll()
- Atomics.wake() переименован в Atomics.notify() в соответствии с изменениями в спецификации

Другие изменения:
- добавлена поддержка PWA на всех платформах, и теперь они доступны везде
- Signed HTTP Exchanges
- Constructable style sheets
- тёмный режим теперь доступен на macOS

https://developers.google.com/web/updates/2019/03/nic73