Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Статья из блога WebKit о поддержке цветовой палитры P3, которая шире распространённой в текущей момент sRGB примерно на 35%.
У меня тут накопилось несколько новостей про #WebAssembly, которые я забыл или не успел опубликовать.

Adobe рассказали о том, как они портировали Acrobat в Web с помощью WebAssembly. Главной метрикой для инженеров была timeTillFirstRender. Инженеры Adobe смогли добиться, чтобы время рендера не превышало 900 миллисекунд за счет подгрузки изначально меньшего wasm-модуля, динамического связывания и динамической подгрузки шрифтов.

https://medium.com/adobetech/acrobat-on-the-web-powered-by-webassembly-782385e4947e


В Mozilla начали использовать проект RLBox, который позволяет запускать сторонние библиотеки в WebAssembly-песочнице. Разработчики Firefox решили использовать AOT-компилятор и рантайм Lucet, который разработан компанией Fastly для эдж-вычислений и высокого уровня безопасности. Lucet под капотом использует разработанный в Mozilla кодогенератор Cranelift. Оба проекта разрабатываются под эгидой Bytecode Alliance.

https://hacks.mozilla.org/2020/02/securing-firefox-with-webassembly/


А на сегодняшней встрече Wasm CG планируется обсудить новый потенциальный пропозал — 64-битную адресацию, которая может надолго отодвинуть необходимость имплементации wasm64.
В феврале вышел JerryScript 2.2 — очередная версия легковесного JS-движка для устройств с ограниченными ресурсами. Он может запускаться на устройствах с менее чем 64 KB оперативной памяти и 200 KB твердотельной памяти. В новой версии поддержка ES2015 улучшена с 34 до 81% согласно таблице совместимости от Kangax. Среди добавленных фич:
- Спред синтаксис для итерируемых объектов
- Деструктуризация массивов и объектов
- Блочная область видимости
- Генераторы
- Well-known symbols
Также значительно улучшены скорость регулярных выражений и методов строк, сборка мусора, поиск по прототипу, оптимизирована работа с массивами.

https://github.com/jerryscript-project/jerryscript/releases/tag/v2.2.0
Опубликован план на TypeScript 3.9 и даты выпусков Beta (24 марта), RC (28 апреля) и финальной (12 мая) версий.
Основные направления развития:
- повышение стабильности работы
- улучшения производительности
- инфраструктура
- улучшения компилятора
- улучшения Language Service и интеграции с редакторами
Очередная статья от Axel Rauschmayer — Class definitions in TypeScript.
Рабочая группа CSS W3C выпустила целых 4 документа в статусе First Public Working Draft:
- CSS Color Module Level 5 — добавляет функции модификации цвета
- Media Queries Level 5 — добавляет новые медиа запросы, в том числе @custom-media, которые являются алаисами для более длинных запросов
- CSS Transforms Module Level 2 — добавляет новые функции и свойства для трёхмерных преобразований
- CSS Conditional Rules Module Level 4
В предверии выпуска Chrome 81 (выйдет 17 марта) опубликован список деприкейшнов и убранных в этой версии фич (в целом ничего интересного).

https://developers.google.com/web/updates/2020/02/chrome-81-deps-rems
Снова накопилось новостей на дайджест.

Вышел Safari Technology Preview 102.

Дебаггер в Firefox улучшили подняв производительность, добавив более продвинутую поддержку сорсмапов, увеличив недёжность шагов, улучшив вывод кода и добавив новые типы точек останова.

Zack Bloom опубликовал длиннющую статью об истории URL в блоге Cloudflare. Всё очень подробно и хорошо описано.

В блоге web.dev от Google опубликованы 2 статьи:
- How Google improved ads performance with stale-while-revalidate
- Scroll snapping after layout changes
Консорциум Unicode выпустил Unicode 13.0.0. В нём
- 5930 новых символов (из них 55 символа emoji, символы лицензий Creative Commons)
- улучшена поддержка некоторых редко используемых языков и написаний

https://blog.emojipedia.org/whats-new-in-unicode-13-0/
Разработчики Flow опубликовали свои планы на 2020. Среди них:
- улучшение возможностей и отзывчивости в VSCode
- собираются сделать систему типов более простой, выразительной и корректной
- улучшения производительности
Вышел Firefox 74.

Из главного:
- появилась поддержка ES2020 фичи optional chaining
- улучшения подчеркиваний и обводов в CSS
- убраны нестандартные Object.toSource() и uneval()
- теперь можно отследить смену пользователем языка через languagechange_event
- улучшена поддержка текста в Canvas и WebGL
- улучшения безопасности
- убрана поддержка небезопасных TLS 1.0/1.1
- поддержка эмуляции устройств в Responsive Design Mode
- различные новые инструменты для CSS в DevTools
- улучшения поддержки веб воркеров в дебаггере
- в результате совместной работы с командой React, улучшена интеграция React DevTools
- эксперементальные фичи в DevTools

Изменения для разработчиков
Изменения для пользователей
Изменения совместимости
3 обновления спецификаций W3C для голосовых модулей:
- CSS Speech Module выпущена в сатусе Candidate Recommendation
- Explainer: Improving Spoken Presentation on the Web выпущена в статусе First Public Working Draft
- Pronunciation Gap Analysis and Use Cases также выпущена в статусе First Public Working Draft
Поддержку предложения Promise.any (stage 3), соавтором которого я являюсь, влили в TypeScript! Также ранее я писал о том, что Promise.any оказался не веб-совместимым. Случай оказался единичным. Инженерам Mozilla удалось связаться с разработчиками сайта, после чего код, используемый на сайте, был исправлен. Не знаю точно когда мы будем предлагать продвижение фичи на stage 4, пока еще есть несколько точек зрения на то, должен ли errors являться геттером прототипа или же свойством инстанса.
А ещё стало известно, что следующая встреча #TC39, которая должна была пройти с 31 марта по 2 апреля в офисе Apple в Купертино, станет полностью удалённой. Да, из-за коронавируса COVID-19 🦠