Вебня – Telegram
Вебня
4.68K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Интересный API для координации ресурсов между контекстами (табами, воркерами)
https://github.com/WICG/web-locks/blob/master/EXPLAINER.md
Там же другие ссылки и объяснение почему нельзя было зареюзать Atomics, которые используются в SharedArrayBuffer.

В данный момент Web Locks API находится на этапе Editor’s Draft в Web Platform Incubator Community Group (это инкубатор предложений для w3c). API позволяет “захватить” ресурс в одном из контекстов и запланировать доступ к ресурсу из других контекстов.

Пример использования API
async function get_lock_then_write() {
await navigator.locks.request('resource', async lock => {
await async_write_func();
});
}

async function get_lock_then_read() {
await navigator.locks.request('resource', {mode: 'shared'}, async lock => {
await async_read_func();
});
}


Интересно, что текущий пропозал Web Locks упоминает AbortSignal, который используется в данный момент для отмены fetch-запроса в современных браузерах. Explaner пропозала предостерегает о возможных дедлоках. Наконец-то дедлоки в вебе! JavaScript, ты теперь совсем взрослый 😄

За подробными примерами, юзкейсами, альтернативными пропозалами и FAQ проходите по ссылке в начале этого сообщения.
А в WebKit сегодня попал вот такой вот патч:
https://bugs.webkit.org/attachment.cgi?id=347525&action=diff

Это Web Share API, который тоже продвигается WICG (Web Platform Incubator Community Group) и описывается вот здесь https://github.com/WICG/web-share/blob/master/docs/explainer.md

Это предложение стандарта позволяет делиться контентом не только с системными сервисами операционных систем и нативными приложениями, но и с другими веб приложениями. Для того, чтобы последние могли принимать шейры, существует отдельный пропозал, спека, которого разрабатывается отдельно, а explaner лежит вот тут https://github.com/WICG/web-share-target/blob/master/docs/explainer.md

В хроме для Android этот API поддерживается с версии 61 и был анонсирован 2 года назад https://developers.google.com/web/updates/2016/09/navigator-share
Секрет про пятничный Babel 7 теперь не секрет, полчаса назад Генри анонсировал его в своем твиттере.
https://twitter.com/left_pad/status/1031700991186489344
Вебня
Интересный API для координации ресурсов между контекстами (табами, воркерами) https://github.com/WICG/web-locks/blob/master/EXPLAINER.md Там же другие ссылки и объяснение почему нельзя было зареюзать Atomics, которые используются в SharedArrayBuffer. В данный…
Ах да. Совсем забыл написать к чему я это. Этот API будет добавлен в Chrome 69, который выйдет уже 4 сентября (а днем позже, 5 сентября, выйдет еще и Firefox 62, но об этом позже).

Вот полный список фич, которые появятся в этой версии
https://www.chromestatus.com/features/5706155347148800

Вот блогпост от команды хромиума на эту тему
https://blog.chromium.org/2018/08/chrome-69-beta-av1-video-decoder-css.html

В общем, будет весьма интересный релиз. Будет несколько крутых CSS-фич (хотя лично я CSS недолюбливаю и вообще верстать не умею). Будет офигеннейшая штука — OffscreenCanvas для рендеринга в веб воркерах. Поддержка flat и flatMap для массивов добавится в v8. Будет несколько прикольных API (включая упомянутый Web Locks API), улучшения ServiceWorker, API веб аутентификации, WebRTC.
В SpiderMonkey влили Object.fromEntries. Ждем в Firefox 63 (релиз запланирован на 23 октября)
Сам пропозал https://github.com/tc39/proposal-object-from-entries
Оффтоп: мне тут в личку толпами пишут разные стремные люди, которые предлагают нагнать юзеров и просмотров за бабки. Мне конечно же это совсем не нужно, потому что коммерческой выгоды из канала извлекать не планирую. Если Вам нравится мой канал, то просто поделитесь им с коллегами или где-то еще. Если хочется, конечно. За количеством подписчиков я не гонюсь. Спасибо.
Как-то незаметно вот тут опубликовали записи с июльской встречи TC39, о результатах которой я уже рассказывал еще до публикации официальных записей.
Странный диалог у меня вышел с Джорданом Харбандом в репозитории одного из предложений в TC39. Фичу могут запаблишить во всех браузерах, а комитет может не одобрить ее для перехода на stage 4. При этом из-за принципа обратной совместимости в вебе, ее нельзя будет заанпаблишить, но и в спеке ее не будет. WAT

upd: короче там все надеются, что на самом деле такого не выйдет (ничего такого или вот такого, лол), а вот этот консенсус нужен чтобы поаплодировать чемпионам за их стойкость и вот это всё
С 10 июля случаются почти еженедельные (24 июля пропустили) митинги подгруппы TC39 по декораторам
Записи обсуждений тут: https://github.com/tc39/proposal-decorators/tree/master/meetings
Сегодняшнюю встречу еще не влили, но есть пулл рекверст https://github.com/tc39/proposal-decorators/pull/143/files
And we need to go deeper
А у меня уже есть черновик release notes для Babel 7. Не буду спойлерить весь, только небольшой фрагмент
Релиз Babel 7 переносится на понедельник. Из-за вот этого https://github.com/babel/babel/pull/8501#issuecomment-415862958. Что бы это не значило.
Прямо сейчас на YouTube начинается трансляция Browser Contributor Day.

https://www.youtube.com/watch?v=kRPYg9hzEZQ
Специально для тех, кто не осилил полный текст обсуждений с последней встречи TC39, сегодня появился summary.md со всеми итогами в удобном для чтения виде.
Кстати, записи с последней встречи WebAssemby CG тоже подъехли.
Невероятно, но кажется в Go 2 добавят генерики и обработку ошибок через что-то более удобное, чем if err != nil.
https://go.googlesource.com/proposal/+/master/design/go2draft.md
А вот откуда ноги растут. Джеймс обвинил компанию Palatnir (как видимо и остальные упомянутые компании) в расизме и сотрудничестве в каким-то там американскими отделами по департации. Таких ишью целых четыре всего в одном репозитории. Не исключено, что на самом деле их больше. А вот уже и ответочка пришла.
Ну и вот тут уже совсем драма!