Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Бенедикт Мойрер (команда 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
В кодовую базу Firefox наконец-то добавили флаг для включения Class Fields. Ждем в ближайшем обновлении Firefox Nightly
https://bugzilla.mozilla.org/show_bug.cgi?id=1529758
В V8 7.4 добавился JIT-less режим, который позволяет использовать движок на платформах с запретом аллокации памяти для исполнения команд непривилигированными приложениями на таких платформах как iOS, Smart TV и игровых консолях или же запретить такие аллокации принудительно для дополнительной безопасности.
https://v8.dev/blog/jitless
В Chrome 74 (в данный момент beta) добавлен первый модуль из Layered APIsKV Storage. Он представляет собой асинхронную замену Local Storage и реализован поверх IndexedDB. На TPAC 2018 было достигнуто соглашение, согласно которому после выхода из инкубационного периода KV Storage планируется добавить в спецификацию IndexedDB.

https://developers.google.com/web/updates/2019/03/kv-storage
Предложение Function.prototype.toString переименовано в Function implementation hiding. Предлагается использовать директиву ”hide implementation”, которая как и директива ”use strict” может быть использована на уровне файла исходников или на уровне фунции.
https://github.com/tc39/proposal-function-implementation-hiding
Уже на следующей неделе состоится мартовская встреча #TC39 в Google. Дедлайн для предложений, которые собираются переходить на следующий stage уже прошёл, поэтому список таких предложений в документе можно считать окончательным.
Что интересно, Daniel Ehrenberg собирается пробовать продвигать динамические импорты на stage 4. Напомню, что некоторые члены комитета против этого продвижения, даже не смотря на то, что динамические импорты уже доступны во всех браузерах.
Среди предложений, которые будут обсуждаться, есть 3 новых:
- Private Declarations
- Promise.result
- Promise.any
Кстати, я являюсь соавтором Promise.any и пишу текст спецификации для него.