Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Неплохой доклад от Сигурда Шнайдера из команды V8 о том как работает сборщик мусора в V8 с WeakMap, WeakRef (stage 3) и когда стоит предпочесть приватные поля классов (stage 3, но уже доступны в Chrome 74+ и Node.js 12+) WeakMap’ам для увеличения производительности приложения.

https://www.youtube.com/watch?v=MQsUiqVCJMc&list=PLB17qI-lepyi5DeCsXSj5m1BWKsqU2DSP&index=5
В Firefox Nightly добавили поддержку HTTP/3, который использует QUIC в качестве транспортного протокола. Пока что HTTP/3 выключен по умолчанию и включается флагом.

https://bugzilla.mozilla.org/show_bug.cgi?id=1581637
На этой неделе очень плотный график в связи с грядущим HolyJS, поэтому могут быть перерывы с новостями. Ещё я принял непростое решение — заканчивать отдыхать и начинать искать что бы такого интересного поделать за деньги. Можете помочь мне ретвитом, если нравится контент тут. 🙂

https://twitter.com/chicoxyzzy/status/1191650977553752073
Пару дней назад команда Edge опубликовала статью про то, как подготовиться к стабильному релизу нового браузера на движке Chromium — "Getting your sites ready for the new Microsoft Edge".

Четвёртого ноября был опубликован релиз кандидат Edge. Официальной стабильный релиз запланирован на 15 января 2020 года. Разработчики рекомендуют добавить прогон тестов в свежем браузере. Edge полностью совместим с Selenium-тестами, которые были написаны для Chromium-based браузеров. Можно использовать Puppeteer для автоматизации тестирования. Также можно запустить браузер в режиме совместимости с IE11, для прогона тестов в этом режиме нужно использовать Selenium-драйвер IEDriverServer. Ещё разработчики призывают отправлять фидбеки, если возникают проблемы. Пишут, что на данный момент получили более 230 тысяч сообщений о проблемах.

#announcement #edge

https://blogs.windows.com/msedgedev/2019/11/04/edge-chromium-release-candidate-get-ready/
👍 упустил это. От себя добавлю, что релиз назначен на следующий день после Widows 7 End of Extended Support. Согласно statcounter, Windows 7 — это практически 28% от всех версий Windows, а значит главный поставщик Internet Explorer 11. Конец расширенной поддержки Windows 7 означает, что Microsoft больше не будет выпускать обновления безопасности для этой операционной системы, и её использование небезопасно. Единственной из поддерживаемых операционных систем семейства Windows с предустановленным и используемым по умолчанию браузером Internet Explorer 11 останется Windows 8.1. У этой версии ОС 5% по statcounter, основная поддержка её закончилась в январе 2018 года, а расширенная закончится в 2023 году.
Сейчас по интернету гуляет вот эта ссылка с планами WebKit на 2020 год. Список интересный, но вызывает некоторые вопросы. Например, в списке присутствует WebGL 2, но фактически никакая работа над WebGL 2 давно не ведется (и вообще Apple планомерно выпиливает OpenGL из macOS), зато ведётся работа над WebGPU, о котором я тут часто пишу. Как-то не очень верится в то, что WebGL 2 в WebKit будут доделывать. Также некоторые фичи уже реалтзованы, например, Resize Observer или Unicode 12 (и вообще в марте 2020 выйдет Unicode 13).
В блоге WebKit опубликовано видео и некоторая другая информация о поддержке WebGPU и WSL в веб инспекторе.

https://webkit.org/blog/9624/webgpu-and-wsl-in-web-inspector/
А доктор Аксель Раушмайер выпустил очередную статью о стримах в ноде и о том, как использовать асинхронную итерацию для работы с ними.

https://2ality.com/2019/11/nodejs-streams-async-iteration.html
#WebAssembly пропозал Multiple result values (phase 3) реализован в V8.

https://bugs.chromium.org/p/v8/issues/detail?id=6672#c14
Через полтора часа начнётся Chrome Dev Summit. Следить за ним можно будет в прямом эфире на YouTube: https://www.youtube.com/watch?v=gUteNZ0IvrE
В V8 8.0 появилась поддержка String.prototype.replaceAll (stage 3) под флагом. Исчерпывающая статья об этой фиче под авторством Mathias Bynens появилась в блоге V8.

https://v8.dev/features/string-replaceall
Ввязался в добавление Promise.any (stage 3) в движок JavaScriptCore. Тикет уже заассайнили на меня. Обратной дороги нет :)

Намечается интересный опыт разработки JS фичи от написания текста спецификации до самой имплементации в моём любимом JavaScript движке!
Node.js 13.2.0 с поддержкой ESM без флага должна выйти уже 19 ноября. Для этого уже всё готово, не хватает только документации!

https://github.com/nodejs/node/pull/29866
Mozilla, Fastly, Intel и Red Hat объединились чтобы создать Bytecode Alliance для совместной работы над стандартами, относящимся к #WebAssembly вне браузера. Члены альянса собираются много вкладывать в безопасность и совместимость. Также был представлен новый паттерн — WebAssembly nanoprocess, который требует меньше накладных расходов и предоставляет более быструю коммунакацию, чем между обычными процессами. Предполагается также, что такой подход позволит разработчикам не опасаться уязвимостей в зависимостях. Подробнее в статье Lin Clark.

https://hacks.mozilla.org/2019/11/announcing-the-bytecode-alliance/
Результаты сегодняшней онлайн встречи #WebAssembly CG:
- предложение Multiple memories переходит с phase 0 на phase 2
- предложение WebAssembly BigInt<->i64 conversion in JS API переходит с phase 2 на phase 3