Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
⚠️ Внимание! Вы можете быть согласны или не согласны с автором следующей статьи, но учтите, что его выводы иногда неоднозначны, на некоторые из них члены комитета отвечали очень даже валидными контраргументами уже много раз в разных issue на GitHub. Данная статья ни в коем случае не рекомендуется в качестве неоспоримого источника правды, а только лишь как альтернативное мнение. ⚠️

Один из самых активых разработчиков из числа несогласных с предложениям о приватных полях классов собрал все свои аргументы против в статье на медиуме.

https://medium.com/@kingmph/the-new-feature-on-the-horizon-in-es-cd0015158ceb
Surma наконец-то влил мои пулл реквесты в IsHoudiniReadyYet.com. Теперь там все up to date.
На ближайшей встрече #TC39 будет рассмотрена альтернатива текущим предложениям о приватных полях классов — приватные символы. Это предложение является компромиссом между приватными полями и старой версией пропозала о приватных символах, которая была ранее представлена комитету Кевином Смитом из Майкрософт.

https://github.com/jridgewell/proposal-private-symbols
В 2019 году Dart для web собирается добавить поддержку современного JS. На данный момент dart2js позволяет компилировать только в ES5.
https://groups.google.com/a/dartlang.org/forum/#!msg/announce/x7eDinVT6fM/37GumZNtEAAJ
Еще немного про Dart. Вячеслав Егоров из Google опубликовал статью (а точнее черновик) о том, как работает виртуальная машина Dart.
https://mrale.ph/dartvm/
Вышел Safari TP 73, в котором помимо прочего появилась отмена Fetch, хотя в релизных записях это не указано.
https://webkit.org/blog/8555/release-notes-for-safari-technology-preview-73/
А тем временем продолжают кипеть страсти вокруг приватных свойств. Помимо альтернативного предложения о приватных символах (о котором я уже рассказывал), появилось дополнение к основным предложениям о приватных полях и приватных методахnew.initialize (на самом деле решает также и проблемы модификации цепочки прототипов). Но и это еще не всё. Появилось также предложение приватные декларации (честно говоря, по имеющейся информации я пока слабо понимаю мотивацию этого предложения).

Все эти три новых пропозала будут представлены уже менее чем через 2 недели на январской встрече #TC39.
Слайды к будущим презентациям:
- Private fields and methods refresher: Why they are based on WeakMaps
- Private Symbols for stage 1
- new.initialize for stage 1
- Private Declarations
Microsoft собираются заимплементить в Chromium расширение для системы модулей в ECMAScript — HTML модули. Изначально HTML модули были представлены Google на конференции BlinkOn в 2017 году. Это предложение решает многие проблемы, которые были у HTML imports (засорение глобального объекта, блокировка основного потока при парсинге HTML import и т.д.). Microsoft также обещают имплементацию HTML модулей в Edge. Safari и Firefox заявили о своей поддержке этой идеи на TPAC 2018.
Как-то совершенно незаметно в декабре вышел браузер Samsung Internet 8.2 (при том, что на официальной странице браузера на Samsung Developers указаны версии 6.4 и 7.2 Beta). Internet 8.2 основан на Chromium 63, а значит включает такие фичи как ES-модули и WebAssembly. Кроме того, уже доступна версия 9.2 Beta, которая включает обновление до Chromium 67 (добавит поддержку Custom Elements v1, CSS Paint API, Resize Observer, BigInt, отменяемый Fetch). Эта версия Chromium вышла в мае 2018, текущая актуальная версия Chromium 71 вышла 4 декабря 2018. Chromium 72 и основанный на этой версии Chrome 72 выйдут 29 января, в один день с Firefox 65.
Новость со вчерашней встречи по WebGPU (об этой технологии я писал ранее, например, здесь). Разработчики Chromium планируют добавить поддержку WebGPU под флагом в середине этого года. Стабильный релиз планируется не раньше 2020 года. Напомню, что Safari уже имеет поддержку WebGPU под флагом. Вопрос о языке шейдеров все еще открыт. Им может стать как WHLSL (развитие HLSL из Direct3D), так и SPIR-V.
Интересная статья от Бенедикта Мойрера из команды V8 про падение производительности при использовании Object.freeze(), Object.seal() и Object.preventExtensions().
https://docs.google.com/document/d/1X6zO5F_Zojizn2dmo_ftaOWsY8NltPHUhudBbUzMxnc/preview
Вышел Safari TP 74 с обновлениями Web Authentication, поддержкой WebRTC MDNS ICE, visual viewport API. В релизных записях также вспомнили по отменяемый фетч, который на самом деле был добавлен в 73 версии.

https://webkit.org/blog/8566/release-notes-for-safari-technology-preview-74/
Динамические импорты (которые были добавлены в Firefox 66) теперь будут включены по умолчанию в ночных сборках Firefox начиная с версии 67.
https://bugzilla.mozilla.org/show_bug.cgi?id=1522491
Если вдруг кто-то все ещё не верит в победу тайпскрипта даже после новости о миграции jest с flow на тайпскрипт, есть ещё новости. И будут ещё.
https://github.com/yarnpkg/yarn/issues/6953
За хайлайт спасибо @denysdovhan!
24 января вышла операционная система macOS Mojave 10.14.4 beta 1 (сборка для разработчиков), в которой браузер Safari обновился до версии 12.1 (14607.1.22) и теперь включает все наработки из Safari Technology Preview. Со стороны JS это stage 3 предложения globalThis, Object.fromEntries, Well-formed JSON.stringify. Со стороны CSS и различных Web API — CSS Conical Gradients, IntersectionObserver, Web Animations API, Color input type, Datalist element, Web Share API, AbortController & AbortSignal.
Вышла вторая версия JavaScript фреймворка для создания data-driven приложений на React с использованием GraphQL, Relay 2.0. Странно, что об этом практически ничего не слышно, хотя релизу уже два дня. Также в релизных записях указано, что переход на новую версию контекста в React ломает серверный рендеринг. Обещают починить это в 2.0.0-rc.2 (который вообще-то вышел 6 дней назад 🤷‍♂️)
https://github.com/facebook/relay/releases/tag/v2.0.0
Сегодня произойдет несколько интересных событий:
- релиз Chrome 72
- релиз Firefox 65
- начнется встреча комитета TC39, которая пройдет с 29 по 31 января, и после которой произойдет feature freeze спецификации ES2019

Обо всех этих событиях я еще расскажу подробнее.