Node.js 11 выйдет 23 октября. Планируемые изменения можно почитать вот тут:
https://github.com/nodejs/node/blob/4f809c007c6fc23b73b696d945b694d7eba5cba4/doc/changelogs/CHANGELOG_V11.md
https://github.com/nodejs/node/blob/4f809c007c6fc23b73b696d945b694d7eba5cba4/doc/changelogs/CHANGELOG_V11.md
GitHub
nodejs/node
Node.js JavaScript runtime :sparkles::turtle::rocket::sparkles: - nodejs/node
Custom Elements и Shadow DOM получили статус “в разработке” на вебсайте Platform Status MS Edge
https://developer.microsoft.com/en-us/microsoft-edge/platform/status/customelements/
https://developer.microsoft.com/en-us/microsoft-edge/platform/status/shadowdom/
https://developer.microsoft.com/en-us/microsoft-edge/platform/status/customelements/
https://developer.microsoft.com/en-us/microsoft-edge/platform/status/shadowdom/
В свежем Safari Technology Preview 67 среди прочего добавились Pointer Events (под флагом). Браузеры на основе WebKit — единственные среди популярнейших, в которых Pointer Events не было. Также в релизе очередная пачка улучшений WebRTC и медиа, фиксы CSS, Houdini CSS Custom Properties and Values API (под флагом), незначительные улучшения и оптимизации JS, исправления нескольких Web API, Shadow DOM, Web Animations, Web Inspector, Web Driver и WebSQL.
https://webkit.org/blog/8419/release-notes-for-safari-technology-preview-67/
https://webkit.org/blog/8419/release-notes-for-safari-technology-preview-67/
WebKit
Release Notes for Safari Technology Preview 67
Safari Technology Preview Release 67 is now available for download for macOS Mojave and macOS High Sierra.
Class fields вышли на стадию ревью в JavaScriptCore (JS движке, используемом в браузерах WebKit)
https://bugs.webkit.org/show_bug.cgi?id=174212#c52
https://bugs.webkit.org/show_bug.cgi?id=174212#c52
https://github.com/tc39/proposal-class-fields/pull/140#issuecomment-428878848
У одно представителя китайского JS-коммьюнити и спикера из Шанхая бомбануло от процесса принятия решений комитетом TC39. А один из членов TC39 якобы нашептал ему, что часто многие члены комитета не согласны с различными предложениями в ECMAScript, но не хотят “раскачивать лодку”. No comments. Кстати, он в отличие от многих других негодующих осилил прочитать в FAQ о том, почему не
У одно представителя китайского JS-коммьюнити и спикера из Шанхая бомбануло от процесса принятия решений комитетом TC39. А один из членов TC39 якобы нашептал ему, что часто многие члены комитета не согласны с различными предложениями в ECMAScript, но не хотят “раскачивать лодку”. No comments. Кстати, он в отличие от многих других негодующих осилил прочитать в FAQ о том, почему не
private, а # (сам FAQ здесь, если еще не читали).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
А вы как считаете, приватные свойства в JavaScript нужны?
anonymous poll
Нужны – 220
👍👍👍👍👍👍👍 69%
Не нужны – 73
👍👍 23%
Не могу определиться – 27
👍 8%
👥 320 people voted so far. Poll closed.
anonymous poll
Нужны – 220
👍👍👍👍👍👍👍 69%
Не нужны – 73
👍👍 23%
Не могу определиться – 27
👍 8%
👥 320 people voted so far. Poll closed.
JavaScript движок Nashorn впервые попал в JDK 8 версии как замена движку Rhino. Релиз состоялся в декабре 2012. В свежем JDK 11 Nashorn все еще входит в поставку, но помечен как deprecated. Инженеры Oracle решили, что ECMAScript развивается слишком быстро и поддержка собственного JS движка отнимает слишком много времени. В JDK 12 Nashorn возможно уже не будет.
https://bugs.java.com/view_bug.do?bug_id=JDK-8202786
https://bugs.java.com/view_bug.do?bug_id=JDK-8202786
Java
Bug ID: JDK-8202786 JEP 335: Deprecate the Nashorn JavaScript Engine
Component: core-libs | Sub-Component: jdk.nashorn
Замена движку Nashorn уже разрабатывается Oracle, и это GraalVM — расширение виртуальной машины JVM, созданное для поддержки разных языков. Graal (основная часть GraalVM) может быть использован и как ahead-of-time, и как just-in-time компилятор. Одной из ключевых возможностей проекта является одновременная поддержка различных языков программирования. Как вы уже догадались, GraalVM умеет в том числе JavaScript (а также умеет работать с npm и поддерживает все API Node.js). Кроме того, GraalVM имеет отличную поддержку ECMAScript, вплоть до текущей версии ES2018, а также кое-что из будущего ES2019, в чем вы можете убедиться, заглянув в таблицу совместимости. В данный момент GraalVM находится статусе Release Candidade. Свежайшая на данный момент версия 1.0 RC7 выпущена 2 октября, бинарники доступны для операционных систем Windows, macOS, Linux.
Исходники проекта GraalVM и сборки Graal.js можно найти на GitHub:
https://github.com/oracle/graal
https://github.com/graalvm/graaljs
Исходники проекта GraalVM и сборки Graal.js можно найти на GitHub:
https://github.com/oracle/graal
https://github.com/graalvm/graaljs
GitHub
GitHub - oracle/graal: GraalVM compiles applications into native executables that start instantly, scale fast, and use fewer compute…
GraalVM compiles applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀 - oracle/graal
Вебня
https://github.com/tc39/proposal-class-fields/pull/140#issuecomment-428878848 У одно представителя китайского JS-коммьюнити и спикера из Шанхая бомбануло от процесса принятия решений комитетом TC39. А один из членов TC39 якобы нашептал ему, что часто многие…
@StGeass поделился своей статьей про Private Fields для тех, кому было лень читать и переводить FAQ из сообщения выше.
https://medium.com/@StGeass/esnext-private-fields-5b4b3b7a7047
https://medium.com/@StGeass/esnext-private-fields-5b4b3b7a7047
Medium
ESNext: Private Fields
Начиная с ES5 мы видим движение языка (в основном сахаризацию синтаксиса) в сторону ООП.
Помните пропозал
https://github.com/tc39/proposals/pull/157/files
А чуть ранее я обновил тесты и результаты для таблицы совместимости.
Вангую, что
global, который оказался несовместим с вебом? Освежить память можно, например, тут. Проблема в YUI от Yahoo, который неправильно юзает moment.js. Его (`global`) не так давно переименовали в globalThis и он уже без флага будет доступен в доступен в Chrome 70, который выйдет 16 октября. Его вот уже переименовали даже в репке предложенийhttps://github.com/tc39/proposals/pull/157/files
А чуть ранее я обновил тесты и результаты для таблицы совместимости.
Вангую, что
globalThis попадет в ES2019.Если вы интересуетесь Web Audio API, то срочно подписывайтесь в твиттере на Ruth John, она замечательная. А недавно она обновила документацию по Web Audio API на MDN. Посмотрите как здорово стало!
https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API
https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API
Вебня
В свежем Safari Technology Preview 67 среди прочего добавились Pointer Events (под флагом). Браузеры на основе WebKit — единственные среди популярнейших, в которых Pointer Events не было. Также в релизе очередная пачка улучшений WebRTC и медиа, фиксы CSS,…
Вот так теперь выглядит таблица поддержки Houdini браузерами. Может быть скоро сможем анимировать кастом пропертис. Edge, поднажми.
В 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…