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

Пропозал: Ergonomic brand checks for private fields (stage 2 -> stage 3)

Консенсус на продвижение не был достигнут. Некоторые делегаты высказались за то, чтобы приватные поля сначала попали на стейдж 4.


Пропозал: Upsert (stage 2 обновление)
Слайды: https://docs.google.com/presentation/d/16PtTpuvkTFycaaqkk5XGZRPLNwzUrzBuN9y7VSrGX9k/edit#slide=id.p

Изначально чемпион собирался запрашивать у комитета продвижене на stage 3, но отказался от этого до презентации. Также выявлены новые проблемы. Консенсус не был достигнут.


Пропозал: Number.range (stage 1 -> stage 2)
Слайды: https://docs.google.com/presentation/d/116FDDK2klJoEL8s2Q7UXiDApC681N-Q9SwpC0toAzTU/edit#slide=id.p

Обсуждения не вложились в отведённое время, консенсус не достигнут.


Пропозал: await operations (-> stage 1)
Слайды: https://docs.google.com/presentation/d/116FDDK2klJoEL8s2Q7UXiDApC681N-Q9SwpC0toAzTU/edit#slide=id.g89f56b0333_1_40

Переходит на stage 1.


Пропозал: Array.prototype.unique() (-> stage 1)
Слайды: https://docs.google.com/presentation/d/116FDDK2klJoEL8s2Q7UXiDApC681N-Q9SwpC0toAzTU/edit#slide=id.g89f56b0333_1_150

Переходит на stage 1, но, кажется, имя метода придётся поменять из-за mootools.


Пропозал: Record and Tuple (stage 1 -> stage 2)
Слайды: https://button.dev/talks/record-and-tuple-tc39-july-2020.pdf

Переходит на stage 2! Выбраны ревьюеры для stage 3.


Пропозал: Symbols as WeakMap keys (stage 1 -> stage 2)
Слайды: https://docs.google.com/presentation/d/1AofgrikRJp4vTc_tqlchDk4DU9p4eqZdyxnlrFEYsvc/edit#slide=id.p

Обсуждения не вложились в отведённое время, а также было решено проработать мотивационную часть пропозала.


Пропозал: JSON.parse source text access (stage 1 -> stage 2)
Слайды: https://docs.google.com/presentation/d/1MGJhUvrWl4dE4otjUm8jXDrhaZLh9g7dnasnfK-VyZg/edit?usp=sharing

Stage 2 взят! Выбраны ревьюеры для stage 3.


Пропозал: Arbitrary Module Namespace Identifiers (stage 0 -> stage 1)

Было решено сделать нормативное изменение вместо пропозала на следующих встречах комитета.


Нормативное изменение: Host hooks for Job callbacks
Слайды: https://docs.google.com/presentation/d/19S97ZqhibJABqzeP5ZU6Flk6TVgWzXuvJWFbNTTfpWs/edit?usp=sharing

Продолжение обсуждений с первого дня. Консенсус достигнут.


Нормативное изменение: Function toString for builtins

Продолжение обсуждений с первого дня. Консенсус достигнут.
Вебня pinned «Итоги третьего дня июльской встречи #TC39. Смотрите также результаты первого и второго дня. Пропозал: Ergonomic brand checks for private fields (stage 2 -> stage 3) Консенсус на продвижение не был достигнут. Некоторые делегаты высказались за то, чтобы приватные…»
requestVideoFrameCallback — аналог requestAnimationFrame, но для видео. Пока что добавлен только в браузеры на основе Chromium 83+.

https://web.dev/requestvideoframecallback-rvfc/

С черновиком спецификации Web Platform Incubation Community Group можно ознакомиться вот тут: https://wicg.github.io/video-rvfc/
В Chrome 85 (выйдет 25 августа) помимо прочего появятся две новых фичи под origin trial:
- WebHID API — позволяет использовать различные устройства управления вроде геймпадов через драйвера операционной системы
- потоковые Fetch запросы — возможность отправить запрос еще до того, как будет полностью доступно тело запроса, что полезно, например, для отправки данных, постепенно генерируемых на клиенте (аудио, видео, вводимые данные)
Ох, было много дел и за это время накопилось много новостей.

Во-первых, сегодня вышел Firefox 79. Из главного:
- в нём снова включили SharedArrayBuffer (ES2017)
- добавлена поддержка Promise.any() (ES2021)
- поддержка WeakRef (ES2021)
- Logical assignment operators (ES2021)
- атомарные операции (ES2017) теперь работают не только с разделяемой памятью
- конструктор Intl.DateTimeFormat теперь поддерживает dateStyle и timeStyle (ECMA402 2021)
- #WebAssembly Bulk memory operations (phase 4)
- #WebAssembly Reference types (phase 4)
- #WebAssembly Threads (phase 2)

Изменения для разработчиков: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/79#JavaScript
Изменения совместимости: https://www.fxsitecompat.dev/en-CA/releases/79/
Кроме того, в Firefox 80 Beta (стабильная версия выйдет 25 августа) появился флаг для включения приватных полей классов (stage 3). Флаг называется javanoscript.options.experimental.private_fields и находится в about:config.

https://hg.mozilla.org/integration/autoland/rev/f19dcd04e137
WasmBoxC — способ завернуть код на языке C в песочницу через промежуточную компиляцию в #WebAssembly.

https://kripken.github.io/blog/wasm/2020/07/27/wasmboxc.html
Разработчики Chromium поделились информацией о том, что нового появилось в Chrome 85 Beta (стабильная версия выйдет 25 августа, в один день с Firefox 80). Кроме потоковых Fetch запросов и WebHID, а также поддержки Houdini Properties and Values API в CSS, там появятся (под origin trail) декларативное Shadow DOM API, адаптивная частота пакетов в WebRTC, а также порталы. В JavaScript появится поддержка ES2021 фич Logical Assignment Operators, Promise.any(), String.prototype.replaceAll(), в #WebAssembly появится поддержка интеропа i64 <-> BigInt. Также там достаточно много обновлений разных Web API и CSS, а ещё декодирование формата AVIF.

https://blog.chromium.org/2020/07/chrome-85-upload-streaming-human.html

Бонус: депрекейты в Chrome 85
Не смотря на то, что релиз Unicode 14 был отложен из-за COVID-19 🦠, мы всё равно получим новые emoji в промежуточном релизе 🥳

https://blog.emojipedia.org/there-will-be-new-emojis-in-2021-after-all/
Воркеры от CloudFlare теперь поддерживают новые языки — Python, Scala, Kotlin, Reason и Dart.

https://blog.cloudflare.com/cloudflare-workers-announces-broad-language-support/
Вчера исполнилось ровно 10 лет с релиза First Public Working Draft спецификации Web Open Font Format. С того времени количество сайтов, использующих Web Fonts достигло более чем 75%.
Опубликован список breaking changes, которые будут реализованы в Firefox 80 и более поздних версиях.

https://www.fxsitecompat.dev/en-CA/blog/2020/firefox-80-beta-and-developer-edition-are-out-breaking-changes-are-on-the-way/
В Chrome 85 при сохранении в PDF будет добавляться метаинформация, улучшающая доступность сохранённого документа.

https://blog.chromium.org/2020/07/using-chrome-to-generate-more.html
Eric Lawrence из Microsoft написал о том, как отключить встроенную фичу для просмотра введённого текста в поле пароля с помощью css в случае, если Вы хотите реализовать такую фичу самостоятельно.

https://textslashplain.com/2020/07/29/revealing-passwords/
В Chrome, начиная с версии 79, появилась поддержка экспериментального Keyboard Lock API, которое позволяет отлавливать нажатия системных горячих клавиш для переопределения их в приложении. Это API в данный момент не поддерживается другими вендорами и находится в стадии черновика в Web Platform Incubator Community Group, поэтому сильно завязываться на него не рекомендуется.

https://web.dev/keyboard-lock/