Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Google продолжают выпускать статьи о метриках Web Vitals. В этот раз они написали об инструментах для измерения метрик. Среди таких: Lighthouse, PageSpeed Insights, Chrome DevTools, Search Console, собственный сервис от web.dev, расширение Web Vitals для Chrome, а также новый Chrome UX Report API.
Вышел Chrome 84 Beta. В нём появился Web OTP API, добавлены улучшения Web Animations. Новые origin trails: Cookie Store API, Idle Detection, Origin Isolation, #WebAssembly SIMD. Content Indexing API и Wake Lock API вышли из origin trial и теперь будут доступны по умолчанию. V8 8.4 поддерживает stage 3 пропозалы WeakReferences и недостающие фичи класса — приватные методы и аксессоры (геттеры и сеттеры).

Более полный список изменений:
https://blog.chromium.org/2020/05/chrome-84-beta-web-otp-web-animations.html
В Chromium 84 также будут возобновлены изменения SameSite Cookies, которые откатили в апреле из-за пандемии COVID-19.

Также разработчики Chrome продолжают бороться с неблагонадёжными уведомлениями.
#W3C провёл встречу Advisory Committee, которая стала первой онлайновой за 25 лет. Судя по позитивном отзывам, W3C также как и TC39 будет будет уходить в онлайн.

Результаты этой встречи можно посмотреть в довольно подробных документах:
- W3C Strategic Highlights May 2020
- W3C Fact Sheet May 2020
Вебня pinned «#W3C провёл встречу Advisory Committee, которая стала первой онлайновой за 25 лет. Судя по позитивном отзывам, W3C также как и TC39 будет будет уходить в онлайн. Результаты этой встречи можно посмотреть в довольно подробных документах: - W3C Strategic Highlights…»
Каким бы стал JavaScript, если бы ECMAScript 4 вышел? Интерфейсы, новые типы, аннотации типов, дженерики, номинальная типизация.

https://evertpot.com/ecmascript-4-the-missing-version/
Вебня pinned «Каким бы стал JavaScript, если бы ECMAScript 4 вышел? Интерфейсы, новые типы, аннотации типов, дженерики, номинальная типизация. https://evertpot.com/ecmascript-4-the-missing-version/»
Bocoup выпустили Web Platform Contribution Guide, руководство для желающих погрузиться в спецификации и недры браузеров.

Анонс руководства: https://bocoup.com/blog/introducing-the-web-platform-contribution-guide

Отличное чтиво, советую сохранить в закладки сразу после того, как досмотрите запуск SpaceX Crew Dragon 😉
Для создания тачскрин интерфейсов в SpaceX Crew Dragon используются Chromium и JavaScript.

https://twitter.com/alteredq/status/1266853705632145409
Я Серёжа Рубанов, приглашённый эксперт #TC39 (комитета, занимающегося разработкой ECMAScript) и основатель канала @juliarderity.

Сегодня начигается 76я встреча TC39, которая станет второй полностью удалённой. В этот раз встреча будет длиться 4 дня по 5 часов вместо 2 дней по 7 часов и заключительного 6-часового.
Повестка очень интересная! Я уже писал обо всех пропозалах, которые готовятся к продвижению на следующий стейдж. С этой публикацией можно ознакомиться вот тут.
Как всегда буду рассказывать всё самое интересное в этом канале. Если что-то невероятно интересное или важное то сразу же лайвом, а также буду публиковать результаты каждого дня ближе к ночи или утром следующего дня.
Время проведения встреч — 15:00 - 20:00 UTC, для большинства читателей это будет 18:00 - 23:00 (по Москве, Киеву, Минску).

Мне будет приятно если Вы поделитесь этой записью в своих каналах или в сообществах, участникам которых это может быть интересно. Ещё можно поддержать на Patreon.
Вебня pinned «Я Серёжа Рубанов, приглашённый эксперт #TC39 (комитета, занимающегося разработкой ECMAScript) и основатель канала @juliarderity. Сегодня начигается 76я встреча TC39, которая станет второй полностью удалённой. В этот раз встреча будет длиться 4 дня по 5 часов…»
Сегодня Генеральная Ассамблея Ecma Interantional должна одобрить спецификации ECMA262 — ECMAScript® 2020 Language Specification и ECMA402 — ECMAScript® 2020 Internationalization API Specification.

Это чисто бюрократический нюанс, но всё же достаточно важное событие, после которого можно считать версии 2020 года этих стандартов официальными.

Напомню что нового в них добавилось.

ES2020:
- import() для динамической подгрузки модулей во время исполнения
- новый тип BigInt для целых чисел произвольной точности
- Promise.allSettled — возвращает промис с массивом удачных и неудачных завершений после того, как все оригинальные промисы исполнятся
- globalThis — глобальное значение this, доступное из скриптов, модулей, воркеров
- стандартизированная очерёдность циклов for-in
- optional chaining aka ?.
- nullish coalescing aka ??
- import.meta

ECMA402 2020:
- Intl.RelativeFormat
- Intl.NumberFormat Unified API
- Intl.Locale
Некоторые обновления из разных презентаций по работе комитета, и общим темам:
- я немного перепутал даты встречи Генеральной Ассамблеи, это произойдёт 16-17 июня.
- 77я встреча (21-24 июля) также будет удалённой (сентябрьская и ноябрьская встречи скорее всего тоже)
- в 2021 году планируется кардинально поменять календарь и форматы проведения встреч: будет 4 ежеквартальных трёхдневных оффлайновых встречи (с фоллбеком на 4-дневные онлайновые), а также ежемесячные двухдневные трехчасовые встречи (в двух разных таймзонах)

Сейчас идут презентации с нормативными и редакционными обновлениями спецификаций. Слайды я потом обязательно приложу.
⚡️ Do expressions не переходят на stage 2. После обсуждения презентации чемпион решил проработать нерешённые вопросы и пока оставить пропозал на stage 1.
Первый день июньской встречи #TC39 окончен. Ниже представлен список презентаций во временном порядке с ссылкой на слайды (если есть) и комментариями.


Планирование встреч TC39
Слайды: https://docs.google.com/presentation/d/1NyD7mS7qFXUPVWtUhCsR7gPGEZJKCRwznx4a6efz9yU

До конца этого года встречи скорее всего будут удаленными, в те же даты, что и были запланированы оффлайновые встречи, но 4 дня по 5 часов вместо 2 дней по 7 часов + заключительного дня 6 часов. На 2021 год планируется совсем новый график:
- 4 оффлайновые встречи в традиционном трёхдневном формате (с фоллбеком на четырёхдневный удалённый)
- 8 ежемесячных удалённых встреч по 2 дня и 3 часа в течение дня (кроме месяцев, когда проходят квартальные встречи)


Отчёт секретариата Ecma International
Слайды: https://github.com/tc39/agendas/blob/master/2020/06.tc39-2020-06-slides_Istvan.pdf

Встреча Генеральной Ассамблеи, на которой должны официально одобрить ES2020 и ECMA402 2020, пройдёт 16-17 июня. Стандарты TC39 по-прежнему самые скачиваемые с сайта Ecma (около половины загрузок, при том, что теперь есть tc39.es, куда рекомендуется ходить за свежайшей версией спецификации).


Обновления ECMA262 (JavaScript)
Слайды: https://docs.google.com/presentation/d/1PxrkXXrtgnTgE14k8WnuKtjjyNDJ9ce15ZL_uvl-P9U

В слайдах много ссылок на редакционные и нормативные изменения.


Обновление ECMA402 (Intl API)
Слайды: https://docs.google.com/presentation/d/1leorSs4oYKFh7WYxoR5H2YtYANM8YgYpGQuEW1jMFBc

В слайдах ссылки на PR в спеку и на активные пропозалы от 3 до 0 стейджей.


Обновление Test262
Слайды: <отсутствуют>

Всё хорошо, работа кипит.


Нормативное изменение: Promise.{all,allSettled,race} should check "resolve" before iterating
Слайды: <отсутствуют>

Достигнут консенсус.


Пропозал Ergonomic brand checks for Private Fields (stage 1 -> stage 2)
Слайды: <не опубликованы>

Переходит на stage 2


Пропозал Logical Assignment (stage 3 обновление)
Слайды: <не опубликованы>

Работает в V8 8.5 (Chromium 85 Canary) и JavaScriptCore (Safari Technology Preview) без флага, в SpiderMonkey (Firefox 77 Beta) под флагом. Решается последний корнер кейс и если всё хорошо, то в июле пропозал будет запрашивать stage 4


Пропозал: Iterator Helpers (stage 2 обновление)
Слайды: https://docs.google.com/presentation/d/1QVW_d4lpiFQ5X5czGWq0VMRN9cMLIGpt888TQoyFWpg

Было предложено три варианта реализации, из которых ни один не получил консенсуса. Как только какой-то из вариантов будет выбран, пропозал будет пытаться брать stage 3.

Пропозал: Do Expressions (stage 1 -> stage 2)
Слайды: https://docs.google.com/presentation/d/14UYf30NeOd5TFZ4QJFigwBLZVotOwuQq3E-BCMIhGgk

Было представлено несколько сложных кейсов, по которым мнения разошлись. Остаётся на stage 1.


Пропозал: Records & Tuples (stage 1 обновление)
Слайды: https://button.dev/talks/record-and-tuple-tc39-june-2020.pdf

Основные вопросы по синтаксису решены, у делегатов возникли разногласия по семантике сравнения. Пропозал собирался подавать на stage 2 на июльской встрече, но пока не понятно сможет ли. Кажется из-за этого может затянуться.
Вебня pinned «Первый день июньской встречи #TC39 окончен. Ниже представлен список презентаций во временном порядке с ссылкой на слайды (если есть) и комментариями. Планирование встреч TC39 Слайды: https://docs.google.com/presentation/d/1NyD7mS7qFXUPVWtUhCsR7gPGEZJKCRwznx4a6efz9yU…»