А тем временем продолжают кипеть страсти вокруг приватных свойств. Помимо альтернативного предложения о приватных символах (о котором я уже рассказывал), появилось дополнение к основным предложениям о приватных полях и приватных методах — 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
Все эти три новых пропозала будут представлены уже менее чем через 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.
Вебня
Январская встреча #TC39 пройдет в офисе GoDaddy с 29 по 31 января 2019. Это последний шанс для stage 3 предложений попасть в спецификацию ES2019. На данный момент в повестке указаны 3 пропозала, которые будут пытаться попасть на stage 4: - Object.fromEntries…
Теперь к ним добавился также Array.prototype.{flat,flatMap}, который тоже будет пытаться взять stage 4.
Как-то совершенно незаметно в декабре вышел браузер 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
https://docs.google.com/document/d/1X6zO5F_Zojizn2dmo_ftaOWsY8NltPHUhudBbUzMxnc/preview
Google Docs
Fast frozen & sealed elements in V8
Fast frozen & sealed elements in V8 Attention: Shared Google-externally Authors: bmeurer@, leszeks@, verwaest@, jarin@, duongn@microsoft.com Last Updated: 2019-04-09 TL;DR This document describes the issue of Object.freeze(), Object.seal(), and Object.p…
Вышел Safari TP 74 с обновлениями Web Authentication, поддержкой WebRTC MDNS ICE, visual viewport API. В релизных записях также вспомнили по отменяемый фетч, который на самом деле был добавлен в 73 версии.
https://webkit.org/blog/8566/release-notes-for-safari-technology-preview-74/
https://webkit.org/blog/8566/release-notes-for-safari-technology-preview-74/
Короткая, но важная для некоторых новость — хуки влили в мастер ветку реакта.
https://github.com/facebook/react/pull/14679
https://github.com/facebook/react/pull/14679
GitHub
Enable hooks! by bvaughn · Pull Request #14679 · facebook/react
Turn hooks on everywhere in preparation for the upcoming release.
Commits are atomic to simplify the review:
7c54bff: Turn hooks on everywhere
021844a: Remove test overrides (and promote internal ...
Commits are atomic to simplify the review:
7c54bff: Turn hooks on everywhere
021844a: Remove test overrides (and promote internal ...
Динамические импорты (которые были добавлены в Firefox 66) теперь будут включены по умолчанию в ночных сборках Firefox начиная с версии 67.
https://bugzilla.mozilla.org/show_bug.cgi?id=1522491
https://bugzilla.mozilla.org/show_bug.cgi?id=1522491
Если вдруг кто-то все ещё не верит в победу тайпскрипта даже после новости о миграции jest с flow на тайпскрипт, есть ещё новости. И будут ещё.
https://github.com/yarnpkg/yarn/issues/6953
За хайлайт спасибо @denysdovhan!
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
https://github.com/facebook/relay/releases/tag/v2.0.0
GitHub
Release v2.0.0 · facebook/relay
2.0.0
Commits: v1.7.0...v2.0.0
Breaking
Relay now uses new Context API instead of Legacy Context API. Any consumers of Relay context using the Legacy context API will break.
Removed experimental ...
Commits: v1.7.0...v2.0.0
Breaking
Relay now uses new Context API instead of Legacy Context API. Any consumers of Relay context using the Legacy context API will break.
Removed experimental ...
Сегодня произойдет несколько интересных событий:
- релиз Chrome 72
- релиз Firefox 65
- начнется встреча комитета TC39, которая пройдет с 29 по 31 января, и после которой произойдет feature freeze спецификации ES2019
Обо всех этих событиях я еще расскажу подробнее.
- релиз Chrome 72
- релиз Firefox 65
- начнется встреча комитета TC39, которая пройдет с 29 по 31 января, и после которой произойдет feature freeze спецификации ES2019
Обо всех этих событиях я еще расскажу подробнее.
Релиз Chrome 72 в большей степени интересен добавлением (stage 3) синтаксиса для публичных полей класса (инстанса и статических), которые уже давно используются многими пользователями Babel и TypeScript.
Еще одно интересное нововведение — User Activation API, который позволит предотвратить назойливое поведение веб страниц (автозапуск звука или видео,
Других фичи релиза:
- Intl.ListFormat
- различные улучшения ServiceWorker
- улучшения WebRTC
- stage 3 пропозал Well-formed JSON.stringify
Полный список изменений можно посмотреть здесь.
Еще одно интересное нововведение — User Activation API, который позволит предотвратить назойливое поведение веб страниц (автозапуск звука или видео,
window.open(), requestFullScreen() и т.д.).Других фичи релиза:
- Intl.ListFormat
- различные улучшения ServiceWorker
- улучшения WebRTC
- stage 3 пропозал Well-formed JSON.stringify
Полный список изменений можно посмотреть здесь.
Кстати, менее 5 минут назад обновился патч с поддержкой class fields в JavaScriptCore (JS движке в составе Webkit)
https://bugs.webkit.org/show_bug.cgi?id=174212#c69
https://bugs.webkit.org/show_bug.cgi?id=174212#c69
В Firefox 65 добавятся:
- поддержка stage 3 предложения globalThis
- поддержка env() в CSS
- поддержка формата изображений WebP
- поддержка stage 3 предложения globalThis
- поддержка env() в CSS
- поддержка формата изображений WebP
Forwarded from For Web — фронтенд, дизайн, программирование
Почему разработчики Flow игнорировали опенсорс-сообщество и чем они занимались весь прошлый год: официальное объяснение и позиция касательно перехода части проектов Facebook на TypeScript → https://medium.com/p/54239c62004f
Планы развития поддержки #WebAssembly в Rust на 2019
https://github.com/fitzgen/rfcs-1/blob/2019-roadmap/text/000-2019-roadmap.md
https://github.com/fitzgen/rfcs-1/blob/2019-roadmap/text/000-2019-roadmap.md
Firefox 65 вышел.
Релизные записи: https://www.mozilla.org/en-US/firefox/65.0/releasenotes/
Обзор новых фич: https://www.mozilla.org/en-US/firefox/65.0/whatsnew/
Релизные записи: https://www.mozilla.org/en-US/firefox/65.0/releasenotes/
Обзор новых фич: https://www.mozilla.org/en-US/firefox/65.0/whatsnew/
Первые новости с 68й встречи #TC39, которая проходит прямо сейчас в офисе GoDaddy:
- принято нормативное изменение Treat IterationStatements uniformly in Annex B.3.5
- принято нормативное изменение Add "name" property for classes as part of ClassDefinitionEvaluation (слайды)
- принято нормативное изменение %TypedArray%.prototype.sort stability
- принято нормативное изменение Treat IterationStatements uniformly in Annex B.3.5
- принято нормативное изменение Add "name" property for classes as part of ClassDefinitionEvaluation (слайды)
- принято нормативное изменение %TypedArray%.prototype.sort stability
GitHub
Normative: Treat IterationStatements uniformly in Annex B.3.5. by rkirsling · Pull Request #1393 · tc39/ecma262
Resolves #1392.