Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Помимо subgrid в Firefox 71 (по планам релиз выйдет на 3 декабря) появится также Multi-column Layout и column-span. Об этом в новой статье Рейчел Эндрю на Mozilla Hacks.
Вышел V8 7.9 beta. В нём были улучшены производительность JavaScript, а также произведены оптимизации памяти при использовании WebAssembly. Эта версия V8 уже влита в ветку Node.js 13.2, релиз которой планировался вчера, но из-за обновления движка возникли проблемы со сборкой на некоторых платформах. Напомню, что в Node.js 13.2 также планируется поддержка ESM.
Facebook в партнёрстве с Microsoft переводит свою Nuclide IDE (open source версию которой они перестали развивать еще в 2018) с Atom на Visual Studio Code.
Новости #W3C:

Спецификация High Resolution Time Level 2 (предоставление текущего времени с высокой точностью) приобрела статус W3C Recommendation.

CSS Containment Module Level 1 (свойство contain, которое указывает, что поддерево элемента независимо от остальной страницы) приобрела статус W3C Recommendation.

Trace Context приобрела статус Proposed Recommendation.
Любопытная статья о том, как создать файл, который одновременно будет являться валидным HTML и валидным #WebAssembly бинарником.

https://webassembly-security.com/polyglot-webassembly-module-html-js-wasm/
Вчера вышел GraalVM 19.3, который является первой LTS версией GraalVM. В нём поддержка Node.js обновилась до версии 12.10.0, а также были добавлены фича ECMAScript 2020 Promise.allSettled и stage 3 предложение Nullish coalescing.
В Emscripten появилась поддержка standalone mode, что позволит использовать результирующий #WebAssembly байткод в неподдерживающих JavaScript рантаймах, либо использовать собственные JavaScript загрузчики. В этом режиме Emscripten использует WASI API.
Новость от Bytecode Alliance — #WebAssembly пропозал Multi-Value (phase 3) теперь поддерживается всеми элементами тулчейна wasmtime.
Вышел Safari Technology Preview 96. Теперь Web Animations API включён по умолчанию. Остальные изменения можно посмотреть в официальном анонсе:
https://webkit.org/blog/9658/release-notes-for-safari-technology-preview-96/
Статья Акселя Раушмайера о “гибридных” npm пакетах, которые умеют ESM и CommonJS.

https://2ality.com/2019/10/hybrid-npm-packages.html
#WebAssembly рантайм Wasmer теперь поддерживает архитектуру aarch64! Кажется это первый рантайм, который работает на ARM.

https://medium.com/wasmer/running-webassembly-on-arm-7d365ed0e50c
Предложение Promise.any (stage 3) только что было добавлено ночные сборки Firefox, начиная с версии 72.

https://bugzilla.mozilla.org/show_bug.cgi?id=1568903
Вчера был дедлайн для добавления в повестку 73 встречи #TC39 пропозалов, которые собираются переходить на следующий stage. Встреча пройдёт с 3 по 5 декабря в офисе Salesforce в Сан Фрациско. Повестка получилась очень большая и интересная. Целых 7(!) пропозалов собираются брать stage 4:
- ECMA402 пропозал Intl.Locale
- ECMA402 пропозал Intl.RelativeTimeFormat
- ECMA402 пропозал Intl.NumberFormat Unified API
- import.meta
- Optional Chaining
- Nullish Coalescing
- For-in order

Если все они попадут в ES2020 (а скорее всего так и будет), то ES2020 уже станет самой крупной по количеству добавленных фич версией стандарта, начиная с ES2016. В ES2018 и ES2019 было добавлено по 8 пропозалов, а в ES2016 и ES2017 по 2 и 5 пропозалов соответственно. Это при том, что до фича фриза ES2020 помимо декабрьской встречи, пройдут ещё две встречи в 2020 году.

Полную повестку на декабрьскую встречу можно посмотреть тут.
Внимание, повестка всё ещё может дополняться обсуждениями, которые не касаются продвижения пропозалов по стейджам.
Приведу здесь также список stage 0 пропозалов, которые будут представлены комитету в первый раз:
- Array select/reject — предлагается добавить два новых метода в прототип массива, что позволит разрешить проблему с filterфильтруем по или фильтруем от
- Async initialization — удобная асинхронная инициализация инстансов классов
- Module attributes — расширение синтаксиса импортов модулей возможностью добавить метаинформацию о модуле с помощью дополнительных атрибутов
- Operator overloading — перегрузка операторов
- BigDecimal — новый тип данных, представляющий десятичные числа с неограниченным числом знаков
- Preserve Host Virtualizability — ограничение возможностей хоста по нарушению виртуализации
Ещё одна интересная тема из повестки декабрьской встречи #TC39 — создание рабочей группы стандартной библиотеки ECMAScript. Новая рабочая группа позволит улучшить работу над встроенными в язык примитивами с помощью более частых удаленных встреч. Доступны слайды этой презентации: https://docs.google.com/presentation/d/1PJJbKdgwiSjy42jFvcODhPxJ0LEJ3_iMswdApTSyLK8/edit#slide=id.p