Вебня
4.66K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Вышел Babel 7.8.0. Тоже классный релиз, в котором:
- поддержка ES2020 фич по умолчанию (nullish coalescing и optional chaining)
- поддержка разных форматов файлов конфигурации
- новые параметры CLI для конфигурации вывода

Также в статье новости о будущем релизе Babel 8, о котором можно почитать подробнее вот тут.
Оказывается команда SpiderMonkey (JavaScript движок, используемый в Firefox) недавно завела блог, в котором публикует новости об изменениях в движке. В последней новостной рассылке есть много всего интересного:
- обновление Intl.DateTimeFormat.prototype.formatToParts до актуальной версии, соответствующей последним изменениям в спецификаци
- Project Visage — новый фронтенд (парсер и эмиттер байткода) для JavaScript, написанный на языке Rust
- улучшения парсера
- Project Stencil — новый формат данных, генерируемых парсером
- движок для регулярных выражений будет заменён на тот, что используется в V8
- упрощение байткода
- устаревшие toSource и uneval убраны из движка
- улучшения дебаггера
- улучшения производительности Array.prototype.reverse и BigInt
- в Nightly появился флаг, включающий поддержку JS BigInt <-> wasm I64 conversion
- продолжается работа над уже добавленными #WebAssembly пропозалами Reference types и bulk memory
- много улучшений Cranelift — кодогенератора, который в будущем будет использоваться для оптимизирующего компилятора WebAssembly
- ведётся работа на WebAssembly пропозалом multi-value
- ведётся работа над включением SharedArrayBuffer по умолчанию
- начата работа по добавлению WebAssembly пропозала exception handling
Завтра, 14 января, завершается период расширенной поддержки Windows 7. После этого техническая поддержка и обновления перестанут предоставляться. Windows 7 до сих пор является второй по популярности операционной системой из семейства Windows (по StatCounter) с 25% пользователей. Internet Explorer 11 всё ещё будет поддерживаться на Windows 8.1 до 10 января 2023 (примерно 5% пользователей ОС семейства Windows) и Windows 10 (на которой браузером по умолчанию является Edge).

А уже 15 января состоится релиз новой версии браузера Edge на основе Chromium.
Если Вам очень надо по какой-либо причине заблокировать автоматическое обновление старой версии Edge (которая, к слову, получила официальное название — Edge Legacy) до новой (основанной на Chromium), то есть официальная инструкция от Microsoft. Если Вам нужно тестировать свои веб приложения на обеих версиях Edge, то есть инструкция и для этого.
Разработчики Chromium собираются заморозить и унифицировать строку User Agent. Safari уже сделали это в Safari Technolgy Preview 46, Firefox и Edge собираются в сделать то же самое. Взамен предлагается использовать спецификацию User-Agent Client Hints, которая в данный момент развивается от лица компании Google в икубаторе W3C WICG.
Поддержка публичных полей классов добавлена в JavaScriptCore (JS движок, используемый в WebKit)! Ждём в Safari Technology Preview.

https://trac.webkit.org/changeset/254653/webkit
Chromium постепенно сворачивает поддержку Chrome Apps. План выглядит вот так:
- март 2020 — перестанут принимать новые приложения в Chrome App Store (старые ещё можно будет обновлять)
- июнь 2020 — конец поддержки для всех юзеров кроме тех, у кого есть Chrome Enterprise или Education Upgrade
- декабрь 2020 — конец поддержки для всех
- июнь 2021 — конец поддержки NaCl, PNaCl и PPAPI
- июнь 2021 — конец поддержки для всех юзеров Chrome OS кроме тех, у кого есть Chrome Enterprise или Education Upgrade
- июнь 2022 — конец поддержки для всех юзеров Chrome OS
Команда Chromium надеется, что PWA должны полностью заменить Chrome Apps.
Инженеры Mozilla, работающие над Firefox написали большую статью о режиме Picture-in-Picture, о том, какие дальнейшие изменения планируются и о том, как эта фича реализована в Safari и Chrome.

https://hacks.mozilla.org/2020/01/how-we-built-picture-in-picture-in-firefox-desktop/
В IDE от JetBrains наконец-то собираются добавить воркспейсы! А также ускорить индексацию, вынести разные блокирующие запись части из основного UI потока, добавить коллаборативное редактирование и облачное выполнение.

https://blog.jetbrains.com/idea/2019/12/intellij-platform-roadmap-for-2020/
Статья от Surma о том, что такое streams и observables и о том, почему это не одно и то же.

https://dassur.ma/things/streams-for-reactive-programming/
На этой неделе вышла новая версия Google Closure Compiler (v20200112). Среди прочих нововведений числятся поддержка вычисляемых имен геттеров и сеттеров в классах (эта фича ES2015 ранее не поддерживалась компилятором) и поддержка компиляции для браузеров, вышедших в 2020. Полный список изменений тут:
https://github.com/google/closure-compiler/wiki/Releases#january-12-2020-v20200112
В репозитории MSEdge есть ишью, которая называется “Make EdgeHTML open source”. Сама по себе она особой ценности не несёт, зато там появились интересные сообщенияя о том, почему EdgeHTML вряд ли когда-то станет свободным ПО. Я расскажу вам немного более полную историю. 🙂

Код рендер движка из Edge legacy основан на кодовой базе движка Trident, который использовался в Internet Explorer. Trident в свою очередь основан на исходниках Mosaic, которые компания Microsoft приобрела у компании Spyglass Inc., созданной Университетом Иллиноиса для того, чтобы релецензировать код другим вендорам и зарабатывать деньги с продаж. Microsoft выкупила лицензию на использование кода Mosaic в 1995 году за 2 миллиона долларов, и Spyglass рассчитывали заработать ещё больше за ежеквартальные платежи и проценты с продаж браузера Internet Explorer, но их планам не суждено было сбыться. Microsoft решили сделать браузер бесплатным, чтобы бороться за рынок с Netscape. Впоследствии Microsoft заплатит Spyglass ещё 8 миллионов роялти за период до конца 1998 (в сумме Microsoft выплатит Spyglass 13.1 миллиона долларов) и добьётся прекращения юридического конфлекта с ними. Внутренний аудит кода Internet Explorer 7 позже покажет, что в нём не осталось кода Mosaic. На данный момент трудно сказать, сможет ли Microsoft при необходимости доказать в суде, что в EdgeHTML не используется код Mosaic, а значит возможно это в том числе является препятствием для перелицензирования своего рендер движка. В любом случае, наверняка есть и другие проблемы, не позволяющие сделать EdgeHTML свободным ПО.
Экспериментальная поддержка WeakRefs (stage 3) добавлена в Firefox Nightly 74. Включить можно в about:config флагом javascript.options.experimental.weakref.

https://bugzilla.mozilla.org/show_bug.cgi?id=1593698
В блоге браузера Brave вышла статья Brave 1.0 Performance: Methodology and Results со сравнением производительности Brave, Chrome, Firefox и Opera на платформах Windows, MacOS и Android. Сравниваются такие метрики как скорость загрузки страницы, потребление памяти, потребления энергии, утилизация процессора, пропускная способность (bandwidth). Также прилагаются результаты синтетических тестов Kraken 1.1, Speedometer 2.0, JetStream 2 и BaseMark Web 3.
Вышел Jest 25. Эта версия примечательна началом работы над поддержкой ESM модулей для Node 13. Из других нововведений можно выделить экспериментальную поддержку инструментария для проверки покрытия тестами из V8. Полный спосок изменений можно найти на официальном сайте:
https://jestjs.io/blog/2020/01/21/jest-25