В Node 11, которая, напомню, выйдет через 10 дней, вероятно будет V8 версии 7.0. А значит добавится поддержка следующих фич ECMAScript:
- асинхронные генераторы
-
- глобальный объект станет также доступен под идентификатором
-
-
- optional catch binding
-
-
-
-
- обновленный
- асинхронные генераторы
-
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
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, я смотрю на тебя).Справедливости ради, у реализации на викмапах тоже есть проблемы.
Смотреть пункт 2
https://github.com/tc39/proposal-class-fields/blob/master/PRIVATE_SYNTAX_FAQ.md#why-is-encapsulation-a-goal-of-this-proposal
Смотреть пункт 2
https://github.com/tc39/proposal-class-fields/blob/master/PRIVATE_SYNTAX_FAQ.md#why-is-encapsulation-a-goal-of-this-proposal
GitHub
proposal-class-fields/PRIVATE_SYNTAX_FAQ.md at main · tc39/proposal-class-fields
Orthogonally-informed combination of public and private fields proposals - proposal-class-fields/PRIVATE_SYNTAX_FAQ.md at main · tc39/proposal-class-fields
Google зарелизили V8 7.0 beta, в которой появилось превью потоков в WebAssembly под флагом.
https://v8.dev/blog/v8-release-70
https://v8.dev/blog/v8-release-70
v8.dev
V8 release v7.0 · V8
V8 v7.0 includes WebAssembly threads, Symbol.prototype.description, and embedded built-ins on more platforms!
Спецификация Pointer Events Level 2 получила статус Proposed Recommendation и 13 ноября собирается стать Candidate Recommendation. Часто новые версии спек от W3C включают раздел об изменениях по сравнению с предыдущей версией, но в данном документе я ее не нашел. Если кто-то из читателей все-таки выяснит какие изменения принесет Level 2, то обязательно напишите мне.
https://www.w3.org/TR/2018/PR-pointerevents2-20181016/
https://www.w3.org/TR/2018/PR-pointerevents2-20181016/
www.w3.org
Pointer Events
The features in this specification extend or modify those found in Pointer Events, a W3C Recommendation that describes events and related interfaces for handling hardware agnostic pointer input from devices including a mouse, pen, touchscreen, etc. For compatibility…
Хорошо, что есть 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 уже найти
Там почти и нет изменений, кроме всяких уточнений (типа 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 уже найти
www.w3.org
Pointer Events
The features in this specification extend or modify those found in Pointer Events, a W3C Recommendation that describes events and related interfaces for handling hardware agnostic pointer input from devices including a mouse, pen, touchscreen, etc. For compatibility…
Интересный проект от 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
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
GitHub
GoogleChrome/OriginTrials
Enabling safe experimentation with web APIs. Contribute to GoogleChrome/OriginTrials development by creating an account on GitHub.
В трекере Firefox начинают имплементить class fields. Соответствующий тикет завели и заассайнили Bugzilla
https://bugzilla.mozilla.org/show_bug.cgi?id=1499448
https://bugzilla.mozilla.org/show_bug.cgi?id=1499448
bugzilla.mozilla.org
1499448 - Implement public and private instance fields proposal
RESOLVED (khyperia) in Core - JavaScript Engine. Last updated 2019-02-22.
Вышел Chrome 70. Из нового:
- десктопные PWA
- Credential Management API: Public Key Credentials
- имена для WebWorkers
https://developers.google.com/web/updates/2018/10/nic70?linkId=58284450#named-workers
- десктопные PWA
- Credential Management API: Public Key Credentials
- имена для WebWorkers
https://developers.google.com/web/updates/2018/10/nic70?linkId=58284450#named-workers
Google Developers
New in Chrome 70 | Web
| Google Developers
| Google Developers
What's new in Chrome 70 for developers?
Мой репозиторий с предложениями в #WebAssembly перенесли в организацию WebAssembly на GitHub https://github.com/WebAssembly/proposals. Мейнтейнить репозиторий по прежнему буду я.
GitHub
GitHub - WebAssembly/proposals: Tracking WebAssembly proposals
Tracking WebAssembly proposals. Contribute to WebAssembly/proposals development by creating an account on GitHub.
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/
Ишью-саммари с контраргументами пропозалу class fields (и конкретно private fields) удобно, в одном сообщении.
https://github.com/tc39/proposal-class-fields/issues/150
https://github.com/tc39/proposal-class-fields/issues/150
GitHub
Summary: Objections to fields (as opposed to alternatives), especially the private field syntax · Issue #150 · tc39/proposal-class…
Continuing from #100 and other threads, here's a summary of key objections to this proposal raised by the community: @hax's top 3 concerns: TC39 underated the risk of community brea...
Вебня
А тем временем 15 минут назад в V8 приземлился коммит с названием “[class] Ship instance and static public class fields”. Публичные статические и поля инстансов классов действительно стали доступны подефолту в мастере (см diff). Ждем публичные поля в обновлении…
Теперь это в V8 v7.2.44. В Chrome Canary пока не приехало (хотя вижу, что сегодня обновилась версия для Windows, там может быть уже есть)