В движке JavaScriptCore реализованы приватные методы и аксессоры
Это последняя оставшаяся фича из текущих stage 3 пропозалов-долгостроев про классы.
https://bugs.webkit.org/show_bug.cgi?id=219181
https://bugs.webkit.org/show_bug.cgi?id=194435
Осталось ждать только включения всех приватных фич классов в SpiderMonkey, там они всё ещё под флагом. Думаю, что скоро все три пропозала про поля и методы классов можно уже ждать на stage 4 и в будущем стандарте ES2022.
Это последняя оставшаяся фича из текущих stage 3 пропозалов-долгостроев про классы.
https://bugs.webkit.org/show_bug.cgi?id=219181
https://bugs.webkit.org/show_bug.cgi?id=194435
Осталось ждать только включения всех приватных фич классов в SpiderMonkey, там они всё ещё под флагом. Думаю, что скоро все три пропозала про поля и методы классов можно уже ждать на stage 4 и в будущем стандарте ES2022.
Подкастер Лекс Фридман выпустил большое интервью с создателем JavaScript Бренданом Айком
Интервью длится почти три часа, и в нём затрагивается очень много интересных тем, таких как история языков программирования, физика (Брендан по образованию физик), история JavaScript, Netscape vs Microsoft, развитие и стандартизация языка JavaScript, TypeScript, экосистема JavaScript, появление JIT-компиляторов JS-движков, asm.js, WebAssembly, браузерные войны, Firefox, Brave, приватность пользователей, роль Safari в авангарде борьбы за неё и Chrome, которому приходится выкручиваться по-своему.
https://www.youtube.com/watch?v=krB0enBeSiE
Интервью длится почти три часа, и в нём затрагивается очень много интересных тем, таких как история языков программирования, физика (Брендан по образованию физик), история JavaScript, Netscape vs Microsoft, развитие и стандартизация языка JavaScript, TypeScript, экосистема JavaScript, появление JIT-компиляторов JS-движков, asm.js, WebAssembly, браузерные войны, Firefox, Brave, приватность пользователей, роль Safari в авангарде борьбы за неё и Chrome, которому приходится выкручиваться по-своему.
https://www.youtube.com/watch?v=krB0enBeSiE
YouTube
Brendan Eich: JavaScript, Firefox, Mozilla, and Brave | Lex Fridman Podcast #160
Brendan Eich is the creator of JavaScript and co-founder of Mozilla and Brave. Please support this podcast by checking out our sponsors:
- The Jordan Harbinger Show: https://jordanharbinger.com/lex/
- Sun Basket: https://sunbasket.com/lex and use code LEX…
- The Jordan Harbinger Show: https://jordanharbinger.com/lex/
- Sun Basket: https://sunbasket.com/lex and use code LEX…
Результаты сегодняшней встречи #WebAssembly CG
Только что закончилась очередная встреча WebAssembly Community Group. Результаты:
- Branch Hinting остается на phase 1
- Fixed-width SIMD переходит на phase 4
- Web Security Content Policy переходит на phase 1
- Memory64 переходит на phase 3
Только что закончилась очередная встреча WebAssembly Community Group. Результаты:
- Branch Hinting остается на phase 1
- Fixed-width SIMD переходит на phase 4
- Web Security Content Policy переходит на phase 1
- Memory64 переходит на phase 3
⚡️ #WebAssembly пропозал non-trapping float-to-int conversions реализован в JavaScriptCore, движке WebKit/Safari
https://github.com/WebKit/WebKit/commit/c60cbacb4b8746e281a03d94e2473b1aa0f620ee
https://github.com/WebKit/WebKit/commit/c60cbacb4b8746e281a03d94e2473b1aa0f620ee
Вышла новая бета языка Dart с поддержкой null safety
Эта фича поможет не только сделать код более надёжным, но и позволит компилятору лучше его соптимизировать, а также собрать более лёгкие бинарники. В данный момент разработчики языка обновляют основные пакеты и Flutter для поддержки фичи.
Новость в блоге на медиуме: https://medium.com/dartlang/preparing-the-dart-and-flutter-ecosystem-for-null-safety-e550ce72c010
Документация: https://dart.dev/null-safety
GitHub issue: https://github.com/dart-lang/language/issues/110#issuecomment-780318393
Эта фича поможет не только сделать код более надёжным, но и позволит компилятору лучше его соптимизировать, а также собрать более лёгкие бинарники. В данный момент разработчики языка обновляют основные пакеты и Flutter для поддержки фичи.
Новость в блоге на медиуме: https://medium.com/dartlang/preparing-the-dart-and-flutter-ecosystem-for-null-safety-e550ce72c010
Документация: https://dart.dev/null-safety
GitHub issue: https://github.com/dart-lang/language/issues/110#issuecomment-780318393
Medium
Preparing the Dart and Flutter ecosystem for null safety
Null safety is now API stable. Publish your stable packages now!
Вышел ReScript 9.0
ReScript — это новое название для Reason в использовании совместно с BuckleScript. В новой версии некоторые улучшения компилятора и синтаксиса.
https://rescript-lang.org/blog/release-9-0
Подробнее о ребрендинге проектов: https://rescript-lang.org/bucklescript-rebranding
ReScript — это новое название для Reason в использовании совместно с BuckleScript. В новой версии некоторые улучшения компилятора и синтаксиса.
https://rescript-lang.org/blog/release-9-0
Подробнее о ребрендинге проектов: https://rescript-lang.org/bucklescript-rebranding
ReScript Blog
ReScript 9.0 | ReScript Blog
Featuring a new external stdlib configuration, some syntax improvements and a small breaking change for nested records.
В V8 v9.0 добавится использование инлайн кэша для доступа к полям объекта-родителя
В данный момент для обращений вида
https://v8.dev/blog/fast-super
В данный момент для обращений вида
super.x используется рантайм вызов. В статье рассказываются технические подробности о том, как работает super и как получилось переиспользовать инлайн кэш для его ускорения.https://v8.dev/blog/fast-super
v8.dev
Super fast super property access · V8
Faster super property access in V8 v9.0
Руководство по использованию стримов
На web.dev опубликована хорошая статья о том, как работать со Streams API, подробно и с примерами использоваения.
https://web.dev/streams/
На web.dev опубликована хорошая статья о том, как работать со Streams API, подробно и с примерами использоваения.
https://web.dev/streams/
Релиз инструмента сборки Vite 2.0
Vite (читается как «Вит») представляет собой преднастроенный сервер для разработки и бандлер. Он использует нативные ES модули, Rollup и esbuild, позволяет работать с Vue, React, Preact, Lit Element. В нём также предусмотрены поддержка CSS и экспериментальная поддержка SSR.
https://dev.to/yyx990803/announcing-vite-2-0-2f0a
Vite (читается как «Вит») представляет собой преднастроенный сервер для разработки и бандлер. Он использует нативные ES модули, Rollup и esbuild, позволяет работать с Vue, React, Preact, Lit Element. В нём также предусмотрены поддержка CSS и экспериментальная поддержка SSR.
https://dev.to/yyx990803/announcing-vite-2-0-2f0a
DEV Community
Announcing Vite 2.0
Today I'm excited to announce the official release of Vite 2.0! Vite (French word for "fast", pron...
На этой неделе я веду коллективный твиттер-аккаунт jsunderhood
https://twitter.com/jsunderhood/status/1363813539748667396
https://twitter.com/jsunderhood/status/1363813539748667396
Twitter
jsunderhood
Привет. Я Серёжа @chicoxyzzy. Я помогаю @TC39 в качестве приглашённого эксперта, помогаю организовывать @moscowjs и @beerjs_moscow, веду телеграм канал https://t.co/LKDrtrIkDa вместе с @rdvornov и контрибьючу в разный опенсорс от React до JavaScriptCore.…
⚡️Поддержка Top-level await (stage 3) добавлена в JavaScriptCore, движок, используемый в Safari/WebKit
https://bugs.webkit.org/show_bug.cgi?id=202484
https://bugs.webkit.org/show_bug.cgi?id=202484
GitHub
GitHub - tc39/proposal-top-level-await: top-level `await` proposal for ECMAScript (stage 4)
top-level `await` proposal for ECMAScript (stage 4) - tc39/proposal-top-level-await
Вышел Babel 7.13.0
Из нового:
- опцию
- новая опция
- поддержка пропозала Records and Tuples (stage 2) (потребуется также полифилл)
- улучшение поддержки Flow и поддержка TypeScript 4.2
- опция useESModules задепрекейчена, и теперь Babel сам может автоматически определить какой формат модулей нужен, опция будет окончательно убрана в Babel 8
https://babeljs.io/blog/2021/02/22/7.13.0.html
Из нового:
- опцию
target теперь можно указать один раз на верхнем уровне конфига- новая опция
assumptions, в которой можно указать насколько разработчик готов пожертвовать соответствием спецификации в пользу производительности, аналогично опции loose, но гранулярно- поддержка пропозала Records and Tuples (stage 2) (потребуется также полифилл)
- улучшение поддержки Flow и поддержка TypeScript 4.2
- опция useESModules задепрекейчена, и теперь Babel сам может автоматически определить какой формат модулей нужен, опция будет окончательно убрана в Babel 8
https://babeljs.io/blog/2021/02/22/7.13.0.html
babeljs.io
7.13.0 Released: Records and Tuples, granular compiler assumptions, and top-level targets · Babel
We just published Babel 7.13.0, the first minor release of 2021!
Вышел Firefox 86
В нём:
- некоторые улучшения DevTools
- lighter оператор для
- псевдокласс :autofill
- Intl.DisplayNames (ECMA402 2021)
- поддержка нескольких видео при воспроизведении Picture-in-Picture
- Total Cookie Protection
- AVIF изображения
- CSS-функций image-set()
Изменения для разработчиков
Изменения для пользователей
Изменения в API расширений
В нём:
- некоторые улучшения DevTools
- lighter оператор для
<feComposite> в SVG- псевдокласс :autofill
- Intl.DisplayNames (ECMA402 2021)
- поддержка нескольких видео при воспроизведении Picture-in-Picture
- Total Cookie Protection
- AVIF изображения
- CSS-функций image-set()
Изменения для разработчиков
Изменения для пользователей
Изменения в API расширений
Mozilla Hacks – the Web developer blog
A Fabulous February Firefox — 86!
Looking into the near distance, we can see the end of February. To keep you engaged until then, we’d like to introduce you to Firefox 86.
State Partitioning и Total Cookie Protection Firefox 86
Firefox вслед за Safari (с их Intelligent Tracking Prevention) и Brave продолжает бороться с отслеживанием пользователя, и реализует систему, изолирующую хранение состояния при использовании айфремов.
https://hacks.mozilla.org/2021/02/introducing-state-partitioning/
https://blog.mozilla.org/security/2021/02/23/total-cookie-protection/
И ещё анонс с видео и про множественные PiP бонусом: https://blog.mozilla.org/blog/2021/02/23/latest-firefox-release-includes-multiple-picture-in-picture-and-total-cookie-protection/
Firefox вслед за Safari (с их Intelligent Tracking Prevention) и Brave продолжает бороться с отслеживанием пользователя, и реализует систему, изолирующую хранение состояния при использовании айфремов.
https://hacks.mozilla.org/2021/02/introducing-state-partitioning/
https://blog.mozilla.org/security/2021/02/23/total-cookie-protection/
И ещё анонс с видео и про множественные PiP бонусом: https://blog.mozilla.org/blog/2021/02/23/latest-firefox-release-includes-multiple-picture-in-picture-and-total-cookie-protection/
Mozilla Hacks – the Web developer blog
Introducing State Partitioning
State Partitioning is the new privacy feature called Total Cookie Protection, which will be available in ETP Strict Mode in Firefox 86.
Вышел TypeScript 4.2
Из нового:
- Сохранение псевдонимов типов в случаях, когда они раньше раскладывались на базовые
- Остаточные элементы теперь могут находиться в любом месте кортежей, а не только в середине
- Более строгие проверки для оператора
- Новый флаг компилятора
- Модификатор
- Флаг компилятора
- Проверка на использование функции без вызова в выражениях с
- Переменные, полученные в результате деструктуризации теперь могут быть специально помечены как неиспользуемы с помощью префикса
- Улучшения взаимодействия опциональных свойств и строковых сигнатур ключа объекта
- Создание отсутствующей реализации функции на основе её вызова
https://devblogs.microsoft.com/typescript/announcing-typescript-4-2/
Из нового:
- Сохранение псевдонимов типов в случаях, когда они раньше раскладывались на базовые
- Остаточные элементы теперь могут находиться в любом месте кортежей, а не только в середине
- Более строгие проверки для оператора
in- Новый флаг компилятора
--noPropertyAccessFromIndexSignature- Модификатор
abstract для сигнатур конструкторов- Флаг компилятора
--explainFiles- Проверка на использование функции без вызова в выражениях с
|| и &&- Переменные, полученные в результате деструктуризации теперь могут быть специально помечены как неиспользуемы с помощью префикса
_- Улучшения взаимодействия опциональных свойств и строковых сигнатур ключа объекта
- Создание отсутствующей реализации функции на основе её вызова
https://devblogs.microsoft.com/typescript/announcing-typescript-4-2/
Microsoft News
Announcing TypeScript 4.2
Today we’re excited to announce the release of TypeScript 4.2! For those who aren’t familiar with TypeScript, it’s an extension to JavaScript that adds static types and type-checking. With types, you can state exactly what your functions take, and what they’ll…
Трансляция с Justin Fagnani из команды Polymer о релизах LitElement 3.0 и lit-html 2.0 (live)
Начало трансляции через 10 минут.
https://www.youtube.com/watch?v=F3y5E9YVtsk
Начало трансляции через 10 минут.
https://www.youtube.com/watch?v=F3y5E9YVtsk
YouTube
LitElement 3.0 & lit-html 2.0, what's new and exciting?
Justin Fagnani from the Polymer team is joining us to discuss the next major releases of LitElement and lit-html. The new releases are smaller, faster, and support server-side rendering (SSR). The brand new ReactiveController feature allows developers to…
⚡️ Спецификаци Web Authentication: An API for accessing Public Key Credentials Level 2 получила статус Proposed Recommendation
Онлайн конференция Я люблю фронтенд
В эту субботу, 27 февраля, пройдет онлайн конференция Я люблю фронтенд. В программе 6 докладов, 3 воркшопа, а так же подведение итогов турнира Capture the flag (занятное упражнение).
Я (Рома) выступлю с докладом про проблемы большого JSON, по мотивам работы над поточным пасером JSON, о чем писал в своем канале пару месяцев назад.
Для участия нужно зарегистрироваться.
В эту субботу, 27 февраля, пройдет онлайн конференция Я люблю фронтенд. В программе 6 докладов, 3 воркшопа, а так же подведение итогов турнира Capture the flag (занятное упражнение).
Я (Рома) выступлю с докладом про проблемы большого JSON, по мотивам работы над поточным пасером JSON, о чем писал в своем канале пару месяцев назад.
Для участия нужно зарегистрироваться.
Вышел Safari Technology Preview 121
В нём много улучшений и исправлений CSS свойств
https://webkit.org/blog/11555/release-notes-for-safari-technology-preview-121/
В нём много улучшений и исправлений CSS свойств
aspect-ratio и scroll-*, гридов, много работы над GPU process (основной фокус разработчиков из Apple сейчас), различные исправления медиа, BigInt Typed Arrays, ускоренный JSON.parse, приватные методы за флагом. В #WebAssembly добавлены потоковые компиляция и инстанциирование, Bulk-memory operations и Reference Types включены по умолчанию.https://webkit.org/blog/11555/release-notes-for-safari-technology-preview-121/
WebKit
Release Notes for Safari Technology Preview 121
Safari Technology Preview Release 121 is now available for download for macOS Big Sur and macOS Catalina.
Документация для разработчиков браузеров
Недавно команда WebKit представила обновлённый документ, который описывает с чего начать, если вы хотите сделать свой вклад в разработку браузера — https://github.com/WebKit/WebKit/blob/main/Introduction.md
Оказывается, разработчики Firefox также занимаются новой документацией, и она уже достаточно полная — https://firefox-source-docs.mozilla.org/index.html
Недавно команда WebKit представила обновлённый документ, который описывает с чего начать, если вы хотите сделать свой вклад в разработку браузера — https://github.com/WebKit/WebKit/blob/main/Introduction.md
Оказывается, разработчики Firefox также занимаются новой документацией, и она уже достаточно полная — https://firefox-source-docs.mozilla.org/index.html
Возможное будущее бандлинга JavaScript и других ресурсов
Daniel Ehrenberg из Igalia проводит исследования, которые могут улучшить бандлинг ресурсов в веб.
Первый является stage 0 TC39 пропозалом и называется JavaScript Module Fragments. Он добавляет синтаксис для добавления инлайн модулей внутри JS модуля. Это позволяет убрать лишний оверхед, добавляемый бандлерами.
Второй предложен в рамках WICG и называется Resource bundles. В нём предлагается новый формат бандла, который сможет содержать HTML, CSS, JS, WebAssembly, изображения или другие ассеты одновременно. Такие бандлы помогут убрать оверхед от префетчинга всех ресурсов.
Daniel Ehrenberg из Igalia проводит исследования, которые могут улучшить бандлинг ресурсов в веб.
Первый является stage 0 TC39 пропозалом и называется JavaScript Module Fragments. Он добавляет синтаксис для добавления инлайн модулей внутри JS модуля. Это позволяет убрать лишний оверхед, добавляемый бандлерами.
Второй предложен в рамках WICG и называется Resource bundles. В нём предлагается новый формат бандла, который сможет содержать HTML, CSS, JS, WebAssembly, изображения или другие ассеты одновременно. Такие бандлы помогут убрать оверхед от префетчинга всех ресурсов.