Вебня
4.7K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Спустя примерно год разработки, вышел Preact X. Среди новых фич:
- Фрагменты
- componentDidCatch
- preact/hooks addon
- preact/test-utils addon
- createContext API
- полная совместимость с React из коробки (ранее требовался слой совместимости в виде preact/compat)
При этом размер библиотеки остался так же 3кб.
Итоги второго дня октябрьской встречи #TC39:

- предложение Promise.any пока остаётся на stage 2 (сегодня будет дополнительное обсуждение)
- консенсус по нормативному изменению Reduce the amount of implementation-defined behavior in Array.prototype.sort достигнут
- 🚀 String.prototype.replaceAll переходит со stage 2 на stage 3
- апдейт sequence property escapes in Unicode regular expressions (stage 2) — есть прогресс, нужно решить еще некоторые вопросы
- 📌 Proposal Disclosure Policy — не очень понятно как это сделать и кто именно должен этим заниматься (явно не сам TC39, возможно ExeCom или GA)
- Revisit ECMA-402 casing conventions — документ заапрувлен
- 🚀 Map.prototype.upsert переходит со stage 2 на stage 3
- 📌 апдейт Temporal (stage 2) — всё идёт по плану
- 🚀 Declarations in Conditionals переходит на stage 1
- 🚀 Intl.DisplayNames переходит со stage 2 на stage 3
- 📌 RegExp Match Indices в декабре будет пытаться взять stage 4, ожидает имплементации в JavaScriptCore (движке WebKit/Safari) или SpiderMonkey (движке Firefox)
- Unifying private field errors — имена, начинающиеся с решётки будут всплывать (hoist), чтобы не было TDZ и ReferenceError.

Итоги первого дня можно найти тут.
Вышел Safari Technology Preview 93. Включает в основном правки багов. Ознакомиться со списком изменений можно тут:
https://webkit.org/blog/9600/release-notes-for-safari-technology-preview-93/
Итоги третьего дня октябрьской встречи #TC39:

- UUID не смог взять stage 1
- 🚀 Readonly Collections переходит на stage 1
- 🚀 Eventual-Send: Support for distributed promise pipelining переходит на stage 1
- 🚀 Wavy Dot syntax for promise pipelining переходит на stage 1
- 🚀 OOM Fails Fast переходит на stage 1

Итоги первого дня можно найти тут.
Итоги второго дня можно найти там.
Джейк Арчибальд о результатах встречи #W3C на TPAC в Фукуоке относительно Service workers. В посте он рассказывает про новые добавленные, а также убранные из стандарта фичи.
https://jakearchibald.com/2019/service-workers-tpac/
Опубликованы 4 видео с прошедшей встречи #TC39 с докладами-презентациями новых предложений в ECMAScript от Марка Миллера из компании Agoric. Все эти предложения перешли на stage 1:
- Readonly Collections
- Eventual Send
- Wavy Dot syntax
- OOM Fails Fast
Instance Class Fields (stage 3) проходят очередное ревью в JavaScriptCore.

https://bugs.webkit.org/show_bug.cgi?id=174212#c140

Напомню, что Public Instance Class Fields поддерживаются в Firefox 69+ и Chrome 72+, а Private Instance Class Fields в только в Chrome 74+.
Майлс Боринс рассказывает о своём пропозале Top-level await (stage 3), который уже поддерживается в REPL Chrome, Node.js и Safari:
https://v8.dev/features/top-level-await
Совсем забыл рассказать. Несколько дней назад был открыт репозиторий с исходным кодом грядущего Vue 3.

https://github.com/vuejs/vue-next
Unicode Consortium создали страницу с частотой использования различных emoji. Анализ частоты использования текущих emoji позволяет принять решение о включении новых предложений в стандарт.

https://home.unicode.org/emoji/emoji-frequency/
Как известно, Mozilla собирается добавить в Firefox встроенный VPN. В данный момент он доступен только пользователям США. Сервис предоставляется в партнерстве с Cloudflare. Как выяснилось, согласно private police, Cloudflare собирает IP пользователя и сайта, время запроса и уникальный идентификатор пользователя, который хранится 24 часа или более в случае необходимости. Помимо этого, Mozilla также собирает информацию об устройстве, операционной системе, а также уникальный идентификатор пользователя и другую информацию. Всё это ставит под некоторое сомнение гарантии приватности при использовании Firefox Private Network. В любом случае, это неплохая альтернатива другим бесплатным VPN, у которых с приватность зачастую ещё хуже.

https://restoreprivacy.com/firefox-vpn-private-network/
Вышла новая бета версия браузера Samsung Internet 10.2 Beta. Под капотом теперь Chromium 71 (был 67), а значит добавились такие JS фичи, как:
- разделяемая память
- Array.prototype.flat
- Array.prototype.flatMap
- globalThis
- Symbol.prototype.description
#W3C Immersive Web Working Group опубликовала два новых черновика спецификаций WebXR Augmented Reality Module – Level 1 и WebXR Gamepads Module – Level 1 в статусе First Public Working Draft. Вообще надо заметить, что группа очень активна, и развитие VR и AR в вебе идёт очень быстро.
Интереснейший документ из рассылки V8 прислал @bmsdave (респект). Команда Chrome DevTools предлагает внедрить DevTools Language Servers для анализа и отладки кода. В данный момент для этого везде используются source maps, но они не всегда являются достаточно удобным инструментом (и не очень активно развиваются как стандарт), а также плохо подходят для отладки #WebAssembly. В документе описаны два возможных пути реализации идеи Language Servers.

https://docs.google.com/document/d/1o_oGolGKkcrQP3RcXvU8lxM71OcosK49Wz4E9HVc-Pk/edit#
Ещё один документ с планами развития DevTools Protocol V8 в отношении #WebAssembly — WebAssembly Inspector Interface. Он описывает планы по упрощению этого интерфейса и переноса разных захардкоженных в V8 частей в DevTools Frontend.

https://docs.google.com/document/d/1zi5LLKwWMRdIIWN4Vgyy7RgcM0f4Xi3Ffn27QO1iMGU/edit?ts=5da06e9e#heading=h.gzqdatwcjvhg
Вышла первая бета webpack 5 (а точнее 5.0.0-beta.0). В ней:
- персистентное кэширование
- упрощённое и улучшенное долгосрочное кэширование
- улучшенный tree-shaking
- уменьшенный рантайм
- top-level await (stage 3)
- WebAssembly как асинхронный модуль
- аутпут в модуль
- новый тип модулей - asset

Если решились попробовать, то свой фидбэк можно оставлять здесь:
https://github.com/webpack/webpack/issues/9802
Для тех, кто следит за тем, что творится вокруг — вышел Python 3.8 с кучей новых фич и улучшений:
https://docs.python.org/3.8/whatsnew/3.8.html