⚡️ новый пропозал Array.prototype.unique() берёт stage 1!
GitHub
GitHub - tc39/proposal-array-unique: ECMAScript proposal for Deduplicating method of Array
ECMAScript proposal for Deduplicating method of Array - GitHub - tc39/proposal-array-unique: ECMAScript proposal for Deduplicating method of Array
Итоги третьего дня июльской встречи #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
Продолжение обсуждений с первого дня. Консенсус достигнут.
Пропозал: 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
Продолжение обсуждений с первого дня. Консенсус достигнут.
requestVideoFrameCallback — аналог requestAnimationFrame, но для видео. Пока что добавлен только в браузеры на основе Chromium 83+.
https://web.dev/requestvideoframecallback-rvfc/
С черновиком спецификации Web Platform Incubation Community Group можно ознакомиться вот тут: https://wicg.github.io/video-rvfc/
https://web.dev/requestvideoframecallback-rvfc/
С черновиком спецификации Web Platform Incubation Community Group можно ознакомиться вот тут: https://wicg.github.io/video-rvfc/
web.dev
Perform efficient per-video-frame operations on video with requestVideoFrameCallback()
The requestVideoFrameCallback() method allows web authors to register a callback that runs in the rendering steps when a new video frame is sent to the compositor.
В Chrome 85 (выйдет 25 августа) помимо прочего появятся две новых фичи под origin trial:
- WebHID API — позволяет использовать различные устройства управления вроде геймпадов через драйвера операционной системы
- потоковые Fetch запросы — возможность отправить запрос еще до того, как будет полностью доступно тело запроса, что полезно, например, для отправки данных, постепенно генерируемых на клиенте (аудио, видео, вводимые данные)
- WebHID API — позволяет использовать различные устройства управления вроде геймпадов через драйвера операционной системы
- потоковые Fetch запросы — возможность отправить запрос еще до того, как будет полностью доступно тело запроса, что полезно, например, для отправки данных, постепенно генерируемых на клиенте (аудио, видео, вводимые данные)
Ох, было много дел и за это время накопилось много новостей.
Во-первых, сегодня вышел Firefox 79. Из главного:
- в нём снова включили SharedArrayBuffer (ES2017)
- добавлена поддержка Promise.any() (ES2021)
- поддержка WeakRef (ES2021)
- Logical assignment operators (ES2021)
- атомарные операции (ES2017) теперь работают не только с разделяемой памятью
- конструктор Intl.DateTimeFormat теперь поддерживает
- #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 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). Флаг называется
https://hg.mozilla.org/integration/autoland/rev/f19dcd04e137
javanoscript.options.experimental.private_fields и находится в about:config.https://hg.mozilla.org/integration/autoland/rev/f19dcd04e137
hg.mozilla.org
autoland @ f19dcd04e137
Bug 1652744 - Add browser pref for private fields support r=jorendorff
WasmBoxC — способ завернуть код на языке C в песочницу через промежуточную компиляцию в #WebAssembly.
https://kripken.github.io/blog/wasm/2020/07/27/wasmboxc.html
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
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/
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/
https://blog.cloudflare.com/cloudflare-workers-announces-broad-language-support/
Вчера исполнилось ровно 10 лет с релиза First Public Working Draft спецификации Web Open Font Format. С того времени количество сайтов, использующих Web Fonts достигло более чем 75%.
А вот и статья на Mozilla Hacks по случаю релиза Firefox 79 подъехала.
https://hacks.mozilla.org/2020/07/firefox-79/
https://hacks.mozilla.org/2020/07/firefox-79/
Mozilla Hacks – the Web developer blog
Firefox 79: The safe return of shared memory, new tooling, and platform updates
Firefox 79 offers a new Promise method, more secure target=_blank links, logical assignment operators, tooling improvements for better JavaScript debugging, and many other updates of interest to web developers. In ...
Слайды доклада Wasm GC and JS Interaction со вчерашнего доклада встречи подгруппы #WebAssembly GC.
https://docs.google.com/presentation/d/1BqRlDrQIYdkRHHtoZ7F8a2tpFwYoumCCbqQ4SpULajI/edit#slide=id.p
https://docs.google.com/presentation/d/1BqRlDrQIYdkRHHtoZ7F8a2tpFwYoumCCbqQ4SpULajI/edit#slide=id.p
Google Docs
Wasm GC and JS Interaction
Wasm GC and JS Interaction Tobias Tebbi, tebbi@chromium.org Jakob Kummerow, jkummerow@chromium.org V8 Team, Chrome
Опубликован список 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/
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
https://blog.chromium.org/2020/07/using-chrome-to-generate-more.html
Chromium Blog
Using Chrome to generate more accessible PDFs
Starting in Chrome 85 (scheduled to go to stable in late August), Chrome will automatically generate a tagged PDF when you print a web page ...
Вышел Safari Technology Preview 111, в котором добавлены различные исправления.
https://webkit.org/blog/10967/release-notes-for-safari-technology-preview-111/
https://webkit.org/blog/10967/release-notes-for-safari-technology-preview-111/
WebKit
Release Notes for Safari Technology Preview 111
Safari Technology Preview Release 111 is now available for download for macOS Big Sur and macOS Catalina.
Eric Lawrence из Microsoft написал о том, как отключить встроенную фичу для просмотра введённого текста в поле пароля с помощью css в случае, если Вы хотите реализовать такую фичу самостоятельно.
https://textslashplain.com/2020/07/29/revealing-passwords/
https://textslashplain.com/2020/07/29/revealing-passwords/
В Chrome, начиная с версии 79, появилась поддержка экспериментального Keyboard Lock API, которое позволяет отлавливать нажатия системных горячих клавиш для переопределения их в приложении. Это API в данный момент не поддерживается другими вендорами и находится в стадии черновика в Web Platform Incubator Community Group, поэтому сильно завязываться на него не рекомендуется.
https://web.dev/keyboard-lock/
https://web.dev/keyboard-lock/
Chrome Developers
Capture Keys with the Keyboard Lock API - Chrome Developers
The Keyboard Lock API allows websites to capture keys that are normally reserved by the underlying operating system. It is intended for web applications that provide a full screen immersive experience (like games or remote access apps).