Вебня
4.67K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
В Node 11, которая, напомню, выйдет через 10 дней, вероятно будет V8 версии 7.0. А значит добавится поддержка следующих фич ECMAScript:
- асинхронные генераторы
- BigInt
- глобальный объект станет также доступен под идентификатором globalThis
- Array.prototype.flat и Array.prototype.flatMap
- Promise.prototype.finally
- optional catch binding
- RegExp named capture groups
- RegExp Unicode Property Escapes
- String.prototype.trimStart и String.prototype.trimEnd
- Symbol.prototype.description
- обновленный Function.prototype.toString
Недовольство JS коммьюнити по поводу class fields (и конкретно private fields) не утихает. Старые issues закрываются, открываются новые. Просто взгляните на список ишью в репке пропозала
https://github.com/tc39/proposal-class-fields/issues?q=is%3Aissue
В одном из тредов появлялся Allen Wirfs-Brock (один из самых важных людей в истории развития ECMAScript), которого там заменшнили. Аллен сказал, что также не поддерживает текущую версию предложения. Кажется я об этом еще не говорил, но среди тех, кто также недолюбливает эту версию есть Brendan Eich (создатель JavaScript) и Kevin Smith (активный член комитета, чемпион нескольких предложений в ES, в том числе альтернативного https://github.com/zenparsing/js-classes-1.1).
Многие приходят к выводу, что из class fields нужно оставить только class properties (приватные поля по сути не являются свойствами класса или его прототипа, поэтому и был введен новый термин “fields”). И вот тут, судя по всему, будут разворачиваться дальнейшие события https://github.com/tc39/proposal-class-fields/issues/144
Вебня via @vote
А вы как считаете, приватные свойства в JavaScript нужны? anonymous poll Нужны – 220 👍👍👍👍👍👍👍 69% Не нужны – 73 👍👍 23% Не могу определиться – 27 👍 8% 👥 320 people voted so far. Poll closed.
Специально не писал свою точку зрения на этот счет, чтобы не повлиять на результаты. На самом деле я также считаю, что можно обойтись без private class fields, а авторы библиотек могут использовать WeakMap или другие ухищрения, чтобы скрыть что-то от юзеров своих библиотек (React.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, я смотрю на тебя).
This media is not supported in your browser
VIEW IN TELEGRAM
Google зарелизили V8 7.0 beta, в которой появилось превью потоков в WebAssembly под флагом.
https://v8.dev/blog/v8-release-70
Спецификация Pointer Events Level 2 получила статус Proposed Recommendation и 13 ноября собирается стать Candidate Recommendation. Часто новые версии спек от W3C включают раздел об изменениях по сравнению с предыдущей версией, но в данном документе я ее не нашел. Если кто-то из читателей все-таки выяснит какие изменения принесет Level 2, то обязательно напишите мне.
https://www.w3.org/TR/2018/PR-pointerevents2-20181016/
Хорошо, что есть https://t.me/webstandards_ru, у которых можно прочитать про то, что как-то случайно упустил ❤️
Forwarded from Веб-стандарты (Веб-стандарты)
Планы разработчиков WebKit на 2018–2019 годы: Pointer Events, прототип JS-движка для Node.js, новые контролы форм, поддержка @​page для печати, CSP 3, развитие сервис-воркеров, полировка веб-компонентов, и многое другое, всего около 200 новых возможностей https://trac.webkit.org/wiki/WebKitFeatureFocus2018-2019
Вебня
Спецификация Pointer Events Level 2 получила статус Proposed Recommendation и 13 ноября собирается стать Candidate Recommendation. Часто новые версии спек от W3C включают раздел об изменениях по сравнению с предыдущей версией, но в данном документе я ее не…
Саша @StGeass потрудился и нашел эту информацию, за что ему огромное спасибо 👍. Цитирую:

Там почти и нет изменений, кроме всяких уточнений (типа devices теперь hardware and platforms) и расширения референсов, есть только следующие сколько-либо заметные изменения:

Раньше DOMException при передаче несуществующего pointerId в любом из методов порождал ошибку с именем NotFoundError, а теперь InvalidPointerId

5.1.3.1 Attributes and Default Actions

Раньше для всех перечисляемых событий в таблице, composed должен был быть выставлен в true, а detail (https://www.w3.org/TR/2018/CR-pointerevents2-20180522/#bib-UIEVENTS) выставлен в 0

Теперь всё тоже самое, но composed true не выставляется для pointerenter и pointerleave

10.4 Implicit Release of Pointer Capture

Поменяли формулировку, с "When the pointer capture target override is removed from its ownerDocument's tree" на "When the pointer capture target override is no longer connected ([DOM4])"

Подробности по этим изменениям можно в https://github.com/w3c/pointerevents//issues уже найти
Интересный проект от Google
https://github.com/GoogleChrome/OriginTrials

Тут можно зааплаить свой проект на включение эксперементальных фич для всех пользователей. То есть если у юзера не включены флаги, то хром включит их для вашего веб сайта автоматически.

Доступные фичи:
- Cookie Store API
- EME Extension - Policy Check
- EventTiming
- Experimental support for native AEC
- Feature Policy JS API
- RTCPeerConnection.id
- Shape Detection API
- Stale While Revalidate
- Web Locks
- WebAssembly Threads
- WebXR Device API (For Chrome M69+)
- WebXR Gamepad Support
Всеволод @jabher подсказывает, что на самом деле Origin Trial работает только для 0.5% пользователей. То есть экспериментальный проект написать специально для всех юзеров не получится, это только для внедрения в продакшн.
В трекере Firefox начинают имплементить class fields. Соответствующий тикет завели и заассайнили Bugzilla
https://bugzilla.mozilla.org/show_bug.cgi?id=1499448
Вышел Chrome 70. Из нового:
- десктопные PWA
- Credential Management API: Public Key Credentials
- имена для WebWorkers
https://developers.google.com/web/updates/2018/10/nic70?linkId=58284450#named-workers
Мой репозиторий с предложениями в #WebAssembly перенесли в организацию WebAssembly на GitHub https://github.com/WebAssembly/proposals. Мейнтейнить репозиторий по прежнему буду я.
Good news everyone!
Forwarded from Веб-стандарты (Веб-стандарты)
WebKit начал работу над внедрением CSS Painting API из проекта Гудини https://webkit.org/status/#specification-css-painting-api-level-1 API позволяет создавать графику в JS и использовать её в CSS, подробнее в статье https://developers.google.com/web/updates/2018/01/paintapi Статуса внедрения остальных частей проекта Гудини — https://ishoudinireadyyet.com/
А тем временем 15 минут назад в V8 приземлился коммит с названием “[class] Ship instance and static public class fields”. Публичные статические и поля инстансов классов действительно стали доступны подефолту в мастере (см diff). Ждем публичные поля в обновлении Chrome Canary?
Стрим с GraphQL Finland, на которой я сейчас
https://youtu.be/aX-BxhkFd9g
Начинается первый доклад