Вебня – Telegram
Вебня
4.68K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Фича --experimental-resolve-self, добавленная в Node.js 13.1.0 больше не является экспериментальной, и, вероятнее всего, появится в следующей версии Node.js (13.6.0). Эта фича избавляет от необходимости использовать префиксы вида ‘../../dir/file.js’ в импортах и позволяет указывать вместо этого путь относительно самого пакета. Поддерживаются оба варианта — ESM и CommonJS.
В TypeScript влили PR Type-only imports and exports, который добавляет Flow-подобный синтаксис для этой задачи и решает многие проблемы различных тулчейнов.
Новая версия Google Closure Compiler (вышла 1 января) теперь поддерживает ES2020 фичи globalThis и String.prototype.matchAll.

Полный список изменений:
https://github.com/google/closure-compiler/wiki/Releases#january-1-2020-v20200101
Firefox 73 принесёт некоторые изменения для cros-origin <iframe>. Геолокация, полноэкранный режим, запись экрана, доступ к камере и микрофону теперь выключены по умолчанию для айфреймов для сохранения приватности и безопасности пользователя. Если Вы хотите разрешить третьей стороне что-то из этих API, Вам необходимо добавить allow атрибут с указанием нужных API.
Вышел Firefox 72 с различными улучшениями DevTools, CSS, Web API. Из новых фич JS появилась поддержка Nullish Coalescing (ES2020).


Дополнительный материал
Релизные записи для разработчиков: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/72
Совместимость: https://www.fxsitecompat.com/en-CA/versions/72/
Релизные записи для конечного пользователя: https://www.mozilla.org/en-US/firefox/72.0/releasenotes/
Chromium борется с навязчивым использованием Notifications API. В следующей версии Chromium (и соответственно в Chrome 80) UI запроса разрешения от пользователя для нотификаций будет переработан.

https://blog.chromium.org/2020/01/introducing-quieter-permission-ui-for.html
10 декабря состоялась 118я встреча Генеральной Ассамблеи Ecma International. Теперь членами этой организации также являются Alibaba, Dell Technologies, Huawei Technologies, Sony Interactive Entertainment, MetaMask, Sujitech. Как видим, большой интерес к участию в работе над стандартами Ecma проявляют китайские компании, и в первую очередь это, конечно, работа в составе технического комитета 39. Также на этой встрече co-chair #TC39 от компании Mozilla Юлия Старцев получила награду Ecma recognition award.
Вышел Safari Technology Preview 98. В нём:
- улучшения и исправления Web Inspector
- Web Animations CSS integration включена по умолчанию
- Generic Text Track Cue API
- OffscreenCanvas.convertToBlob
- различные улучшения и исправления некоторых Web API, CSS, Web RTC,
- TLS 1.0 и 1.1 выключены по умолчанию
- валидация и генерация WebAssembly байткода за один проход

https://webkit.org/blog/9689/release-notes-for-safari-technology-preview-98/
Также TLS 1.0 и 1.1 будут отключены по умолчанию для всех версий, начиная с Firefox 74 (до этого они были отключены только в Firefox Nightly, начиная с версии 71).

https://www.fxsitecompat.dev/en-CA/docs/2020/tls-1-0-1-1-support-has-been-removed/
С конца июля TypeScript опережает Babel по количеству скачиваний в npm и эта разница стремительно растёт

https://www.npmtrends.com/typenoscript-vs-babel-core
Как справедливо заметил @pterolex, на графике в предыдущем сообщении учитывается Babel 6. Совсем забыл, что мы давно перешли под неймспейс 😅🤦‍♂️.

Правильный график вот тут и Babel всё ещё лидирует.
@maxgraey предлагает вычесть из скачиваний @babel/core скачивания @babel/preset-typenoscript, и в этом случае TS и Babel практически сравниваются. На этом про TS vs Babel на сегодня всё :)

https://www.npmtrends.com/typenoscript-vs-@babel/core-vs-@babel/preset-typenoscript
Создана новая Unicode Working Group — Message Formatting. Рабочая группа представлена сотрудниками Amazon, Dropbox, Facebook, Google, IBM, Mozilla, OpenJSF и Paypal и будет заниматься разработкой нового стандарта для форматирования текста. Текущая версия ICU Message Format сложна для различных форм слова (таких как род, число и др), поэтому было решено создать новую с учётом всех проблем ICU.

https://github.com/unicode-org/message-format-wg
Статья о том, как команда 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