Вебня
4.66K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
У пропозала Async Initialization, попавшего на недавней встрече #TC39 на stage 1, появился репозиторий.
Ещё несколько новостей с #WebAssemby F2F встречи:
- Multiple memories переходит на phase 3
- Custom Annotation Syntax in the Text Format переходит на phase 2
- Type Reflection for WebAssembly JavaScript API переходит на phase 2
Сергей Мелюков завёл канал, в котором планирует рассказывать о разработке webpack 5 и своём вкладе в эту разработку. Там уже опубликована статья об Asset Modules в webpack 5, доступная на русском и английском языках.
В блоге web.dev, который ведут сотрудники Google, появилось несколько новых статей о Web NFC и WebXR:
- Interact with NFC devices on Chrome for Android
- Augmented reality: You may already know it
- Virtual reality comes to the web, part II
- Positioning virtual objects in real-world views
И еще одна статья от разработчиков Chromium обо всех новинках и изменениях в Chromium 81 (выйдет 17 марта).
https://blog.chromium.org/2020/02/chrome-81-near-field-communications.html
Вышел Relay 9.0.0, в котором особенно хочется выделить поддержку чистых ECMAScript модулей (без примесей CommonJS), добавленную моим коллегой Богданом Чадкиным. Новая опция eagerESModules в конфигурации позволяет заменить опциональные require на обычные статические импорты. Это позволит, например, использовать Relay совместно с Rollup без кастомных трансформаций кода.
ECMAScript пропозал Promise.any (stage 3), соавтором которого я являюсь, оказался не web-compatible из-за того, что некий сайт prosieben.de добавляет свой полифилл, который несовместим со спецификацией. Так как случай единичный и пакета с таким полифиллом обнаржено небло, скорее всего имплементоры и комитет смогут пренебречь этой несовместимостью.

Мораль: не будьте как разработчики этого сайта — не используйте глобальные переменные и не пытайтесь дополнить стандартную библиотеку кастомными методами.
Вышел Node.js 13.9.0. Значительных изменений в нём я не обнаружил.

https://nodejs.org/en/blog/release/v13.9.0/
Вышел GraalVM 20.0.0. Что касается JavaScript, то Node.js в нём обновлён до версии 12.5.0, добавлена поддержка String.prototype.replaceAll и экспериментальная поддержка приватных и публичных полей класса.

Полный список изменений: https://www.graalvm.org/docs/release-notes/20_0/
Презентации с недавней F2F встречи #WebAssembly Community Group:
- Reference Types (Andreas Rossberg)
- Stack and continuations (Andreas Rossberg)
- Multi-value (Andreas Rossberg)
- Garbage Collection (Andreas Rossberg)
- Structural vs Nominal typing (Andreas Rossberg)
- Conditional Segments (Thomas Lively)
- Custom Annotation Syntax in the Text Format (Andreas Rossberg)
- Interface Types (Francis McCabe)
- Spec Editing Woes (Andreas Rossberg)
- WASI Embedding API, Interface Types and WASI (Peter Huene)
- Type Reflection for Wasm JavaScript API (Clemens Backes)
- Multiple Memories (Andreas Rossberg)
Новый релиз Safari Technology Preview 101 включает новые фичи Web Inspector, улучшения Web Animations, исправления для Media, обновления различных Web API.
Вышел TypeScript 3.8. Хороший релиз. Основные фичи:
- Type-Only Imports and Exports
- ECMAScript Private Fields
- export * as ns Syntax
- Top-Level await
- JSDoc Property Modifiers
- “Fast and Loose” Incremental Checking

https://devblogs.microsoft.com/typescript/announcing-typescript-3-8/
Также опубликованы записи с февральской F2F встречи #WebAssembly Community Group.

https://github.com/WebAssembly/meetings/blob/master/2020/CG-02.md
YouTube плейлист Chrome University от разработчиков Google Chrome:

https://www.youtube.com/playlist?list=PLNYkxOF6rcICgS7eFJrGDhMBwWtdTgzpx

В нём содержатся видео о том как работает Chrome под капотом.
Статья от делегата #TC39 от компании Mozilla Zibi Braniecki о грядущих фичах JavaScript, которые помогут с интернационализацией:
- Intl.RelativeTimeFormat (stage 4)
- Intl.Locale (stage 4)
- Intl.NumberFormat rev. 2 (stage 4)
- Intl.ListFormat (stage 3)
- Intl.DateTimeFormat dateStyle/timeStyle (stage 3)
- Intl.DisplayNames (stage 3)
- Intl.DateTimeFormat.formatRage (stage 3)

https://diary.braniecki.net/2020/02/14/js-intl-in-2020/
Совсем скоро выйдет ESLint 7.0.0. Основные изменения:
- прекращается поддержка Node.js 8
- интеграции для ESLint смогут использовать асинхронные операции, что позволит, например, производить параллельный линтинг файлов
- Node.js- и CommonJS-специфичные правила будут перенесены из ядра в eslint-plugin-node
- в комментариях-директивах можно будет оставлять описания
- различные изменения в конфигурациях