Telegram Web Link
Статические публичные поля классов (stage 3) только что были добавлены в JavaScriptCore (JS движок, используемый в Safari/WebKit)

https://bugs.webkit.org/show_bug.cgi?id=194095
Третий день 79й встречи #TC39

Отчёт по первому дню встречи можно почитать тут. По второму — тут.

———

JSON modules (stage 2 -> stage 3)
(слайды)
Там какие-то вопросы надо дообсудить. Я проспал, пока не разобрался в чём дело. Пока нет консенсуса.

Temporal (stage 2 обновление)
(слайды)
Всё классно, API стабилен. Идут кое-какие обсуждения с другуми организациями, работающими со стандартами. Пропозал возможно будет представлен к stage 3 уже в январе.

Intl Enumiration (stage 2 обновление)
(слайды)
Всё хорошо. Будет двигаться, был запрос на пообщаться с авторами Temporal.

JS Module Blocks (-> stage 1)
(слайды)
Консенсус и stage 1.

Обновления процесса (обсуждение)
(слайды)
Некоторуе уточнения в документ TC39 процесса. Консенсус достигнут.

Adopting Unicode behavior for set notation in regular expressions (новый пропозал, обсуждение)
(слайды)
Пропозал был добавлен слишком поздно, поэтому чемпионы не могут запросить продвижение на stage 1.
Четвёртый день 79й встречи #TC39

Продолжаем лайв. Сегодня заключительны день ноябрьской встречи TC39.

Отчёт по первому дню встречи можно почитать тут. По второму — тут. Третий — здесь.

———

Extensions (-> stage 1)
(слайды)
Много сомневались, но stage 1 взят.

Dealing with TC39 Data (обсуждение)
(слайды)
Очередная итерация попыток лучше организовать данные по пропозалам. Супер круто.

JSON modules (stage 2 -> stage 3)
(слайды)
Продолжение с третьего дня. Консенсус так и не был достигнут. Нет решения должны ли JSON модули быть мутабельными. Переносится на последующие встречи TC39.

Supporting MDN's documentation about in TC39's output (продолжение обсуждения с первого дня)
(слайды)

Grouped Accessors and Auto-Accessors (-> stage 1)
(слайды)
Продолжение обсуждения со второго дня. Консенсус и stage 1.

Error Cause (stage 1 -> stage 2)
(слайды)
Единогласный консенсус и stage 2.

Batch preloading (обсуждение)
(слайды)
Ради этого доклада подключился сам создатель JavaScript Brendan Eich. Обсуждались идеи для оптимизации предзагрузки скриптов.
79я встреча #TC39 окончена

Полный отчёт со всеми изменениям в привычном формате выложу позже, а пока можно почитать отчёт по дням:
День 1
День 2
День 3
День 4

Следующая встреча пройдёт 25-28 января 2021.
Симуляция особенностей зрения в Blink Renderer

Mathias Bynens написал статью о том, как с помощью Chrome DevTools можно улучшить доступность сайта для людей с особенностями зрения.

https://developers.google.com/web/updates/2020/11/cvd
Видео и слайды с BlinkOn 13

BlinkOn — это конференция разработчиков Chromium. На YouTube канале конференции, которая в этом году проходила онлайн, выложили видео докладов.

https://www.youtube.com/playlist?list=PL9ioqAuyl6UJ_1hPrSWD1LpaIAeF9aaJi

Также выложены слайды для некоторых докладов, ссылки на них можно найти в расписании. Некоторые из них не доступны публично.

Интересно, что в это же время проходил WebKit contributors meetup. Я успел частично побывать на обоих этих закрытых событиях. О WebKit встрече расскажу отдельно.
Вышел Safari Technology Preview 116

В нём добавились исправления Web Extensions, улучшения и исправления Web Inspector, улучшения Web Audio (включен AudioWorklet!) и MediaRecorder, исправления и улучшения CSS и другие правки и улучшения.
Приватные поля экземпляров классов и приватные статические поля классов (stage 3) включены по умолчанию в JSC

https://bugs.webkit.org/show_bug.cgi?id=219179
Вебня
Вышел Safari Technology Preview 116 В нём добавились исправления Web Extensions, улучшения и исправления Web Inspector, улучшения Web Audio (включен AudioWorklet!) и MediaRecorder, исправления и улучшения CSS и другие правки и улучшения.
Ну офигеть. Как всегда со списками изменений у них всё плохо. Только что проверил сам что там есть из JS фич, и оказалось что там также включили WeakRefs (которые уже влиты в спецификацию и попадут в ES2021)!
API isInputPending() от Facebook добавлен в Chrome 87

В апреле 2019 я уже писал об этом API, которое позволяет улучшить usabilty за счёт возможности обнаружения пользовательского ввода. Теперь он добавлен по умолчанию в Chrome 87. Другие браузеры пока не высказали свой интерес в поддержке этой фичи.
Статья: Постепенная миграция на Next.js

Разработчики Next.js написали статью о том, как можно мигрировать постепенно на этот фреймворк одним из трёх способов:
- конфигурация пути для открытия новых страниц с помощью Next.js
- проксирование на старые страницы через конфиг Next.js
- микрофронтенды с монорепой и субдоменами

https://nextjs.org/blog/incremental-adoption
Electron 11

17 ноября вышел Electron 11 (а потом и ещё 2 патча), в основе которого теперь Chromium 87 и Node.js 12.8.3. В новой версии, помимо всего прочего, имеется экспериментальная поддержаа Apple Silicon.
Неделя релизов продолжается. Вчера вышел TypeScript 4.1. Дениэл Розенвассер рассказал о всех изменениях в новой версии.

В TypeScript 4.1 были добавлены литеральные шаблонные типы (Template Literal Types). Благодаря им можно описывать типы, состоящие из нескольких строковых литеральных типов. Также они позволяют на уровне типов "извлекать" строковые литералы из других литералов. В рамках этой фичи были добавлены новые утилитарные типы для манипуляции строками — Uppercase, Lowercase, Capitalize , Uncapitalize.

С новой версии можно ремапить ключи в отображаемых типах (mapped types). Это можно использовать для фильтрации свойств объектных типов или создания новых объектных типов с ключами, использующими литеральные шаблонные типы.

Появилась полноценная поддержка рекурсивных условных типов. Полезно для описания типов рекурсивных структур. Разработчики советуют не злоупотреблять этой фичей, так как она может негативно повлиять на производительность проверки типов.

Добавлен флаг --noUncheckedIndexedAccess для более строгой проверки доступа к элементам массивов или свойствам объектов. Параметр paths теперь можно использовать без указания baseUrl. Теперь необязательно включать allowJs при использовании опции checkJs. Добавлена поддержка фабрик jsx и jsxs из React 17 (используются транспиляторами).

Есть несколько ломающих изменений. Условные спрэды создают опциональные свойства. Нужно обязательно указывать параметр функции resolve у промисов. Абстрактные члены больше не могут объявляться с async. Если в условном выражении falsy-позиция возвращает тип any`/`unknown, то any`/`unknown будет распространено на всё выражение.

#release #typescript

https://devblogs.microsoft.com/typescript/announcing-typescript-4-1
В описание “same-site” будет добавлена URL схема

Таким образом вебсайт теперь будет представлен как схема + регистрируемый домен, так что ссылки между HTTP и HTTPS будут представлены как cross-site запросы. Деврелы Chrome написали статью о том, как это повлияет на передачу cookie и как подготовиться.

https://web.dev/schemeful-samesite/
Имплементация for..of для 32-битной версии JavaScriptCore

Paulo Matos из Igalia написал статью, которая будет полезна тем, кто интересуется внутренностями JavaScript. Igalia занимается поддержкой JSC для 32-битных архитектур. При работе над имплементацией затрагиваются интерпретатор LLInt, baseline JIT-компилятор и JIT-компилятор DFG.

https://linki.tools/2020/11/a-tour-of-the-for-of-implementation-for-32bits-jsc.html
MediaRecorder API в Safari

В последних версиях Safari MediaRecorder API включен оп умолчанию (и будет включен также на iOS 14.3). В блоге WebKit рассказали о том, как можно его использовать.

https://webkit.org/blog/11353/mediarecorder-api/
Я (Рома Дворнов) решил попробовать вести телеграм канал, как пристанище мыслей, идей и того что случается в работе над разными проектами. Название говорит за себя, пока пишу много, как будет дальше — посмотрим. Сейчас в эфире история с написанием «поточного» парсера JSON, но будет и про другие аспекты фронтенда и около:
https://www.tg-me.com/gorshochekvarit
WebGL 2 в WebKit

В вышедшем месяц назад Safari Technology Preview 114 появилась поддержка WebGL 2. Это стало возможно благодаря коллаборации компаний Google и Apple. Google разрабатывает ANGLE — имплементацию OpenGL ES поверх других графических API. ANGLE уже использовался в Chromium и Firefox. В результате коллаборации двух компаний, ANGLE стал также поддерживать Metal бэкенд. Так WebKit (а также остальные браузеры под iOS, где используется WKWebView) получил поддержку WebGL 2, а другие браузеры (под macOS) — лучшую нативную поддержку Metal и новых чипов M1.
Результаты проекта Open Prioritization от Igalia

В июле была запущена инициатива Open Prioritization, которая по сути является сбором средств для разработки недостающих фич в браузерах. Brian Kardell подвёл итоги этого проекта, финалистом которого стала фича :focus-visible для WebKit.
2025/07/06 08:32:33
Back to Top
HTML Embed Code: