Вебня – Telegram
Вебня
4.68K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Статья о том, как команда Chrome сотрудничает с опенсорс фреймворками, библиотеками и инструментами.

https://web.dev/advancing-framework-ecosystem-cds-2019/
Во всех последних версиях версиях Firefox и Thunderbird найдена критическая уязвимость, позволяющая получить контроль над системой атакуемого. Уязвимость была обнаружена в оптимизирующем JIT компиляторе JavaScript IonMonkey и уже широко использовалась.
WICG предлагает добавить Compression Streams API для использования gzip и deflate (в будущем планируются и другие алгоритмы, например brotli) для прикладных задач в веб платформе. Уже сейчас можно попробовать новое API в Chrome Canary в демо, которое так же демонстрирует использование Native File System API
Вышел TypeScript 3.8 Beta. Очень класссный релиз, в котором:
- Type-Only Imports and Export
- приватные поля классов (stage 3)
- export * as ns
- top-level await (stage 3)
- поддержка @public, @private и @protected в JSDoc
- продвинутая поддержка file-watching
- дополнительная настройка для быстрого тайпчекинга
Вышел 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 свободным ПО.