Вышел TypeScript 4.2 Beta
Из нового:
- Остаточные элементы теперь могут находиться в любом месте кортежей, а не только в середине
- Сохранение псевдонимов типов в случаях, когда они раньше раскладывались на базовые
- Шаблонные выражения теперь имеют шаблонные литеральные типы
- Более строгие проверки для оператора
- новый флаг компилятора
- модификатор
- флаг компилятора
- улучшения взаимодействия опциональных свойств и строковых сигнатур ключа объекта
Также представлены несколько ломающих изменений, которые могут затронуть некоторых пользователей.
https://devblogs.microsoft.com/typescript/announcing-typescript-4-2-beta/
Из нового:
- Остаточные элементы теперь могут находиться в любом месте кортежей, а не только в середине
- Сохранение псевдонимов типов в случаях, когда они раньше раскладывались на базовые
- Шаблонные выражения теперь имеют шаблонные литеральные типы
- Более строгие проверки для оператора
in- новый флаг компилятора
--noPropertyAccessFromIndexSignature- модификатор
abstract для сигнатур конструкторов- флаг компилятора
--explainFiles- улучшения взаимодействия опциональных свойств и строковых сигнатур ключа объекта
Также представлены несколько ломающих изменений, которые могут затронуть некоторых пользователей.
https://devblogs.microsoft.com/typescript/announcing-typescript-4-2-beta/
Microsoft News
Announcing TypeScript 4.2 Beta
Today we’re excited to announce the availability of TypeScript 4.2 Beta! To get started using the beta, you can get it through NuGet, or use npm with the following command: npm install typescript@beta You can also get editor support by Downloading for Visual…
В V8 появился дополнительный движок для обработки некоторых сложных случаев регулярных выражений
Новый движок пока что является экспериментальным и включается отдельным флагом. Он появился в дополнение к старому движку Irregexp (на который в прошлом году также перешёл Firefox).
Новый движок пока что является экспериментальным и включается отдельным флагом. Он появился в дополнение к старому движку Irregexp (на который в прошлом году также перешёл Firefox).
v8.dev
An additional non-backtracking RegExp engine · V8
V8 now has an additional RegExp engine that serves as a fallback and prevents many instances of catastrophic backtracking.
Вышел отчёт State of JS 2020
Версия на анлийском: https://2020.stateofjs.com/en-US/
Версия на русском: https://2020.stateofjs.com/ru-RU/
Версия на украинском (переведена частично): https://2020.stateofjs.com/ua-UA/
Версия на анлийском: https://2020.stateofjs.com/en-US/
Версия на русском: https://2020.stateofjs.com/ru-RU/
Версия на украинском (переведена частично): https://2020.stateofjs.com/ua-UA/
Stateofjs
State of JS 2020
The annual survey about the latest trends in the JavaScript ecosystem.
Микрофронтенды на Blazor
Wael Kdouh из Microsoft делится советами о том, как построить микрофронтенд архитектуру, используя Blazor и #WebAssembly.
https://medium.com/@waelkdouh/microfrontends-with-blazor-webassembly-b25e4ba3f325
Wael Kdouh из Microsoft делится советами о том, как построить микрофронтенд архитектуру, используя Blazor и #WebAssembly.
https://medium.com/@waelkdouh/microfrontends-with-blazor-webassembly-b25e4ba3f325
Medium
MicroFrontends With Blazor WebAssembly
I recently embarked on a mission to uncover the details behind the implementation of MicroFrontends under Blazor WebAssembly applications…
7 способов протестировать доступность с помощью DevTools Chromium
Christian Heilmann написал статью об инструментах DevTools в таких браузерах как Edge и Chrome, которые позволяют определить проблемы доступности на сайте.
https://christianheilmann.com/2021/01/11/seven-ways-to-test-for-accessibility-of-your-web-site-with-browser-developer-tools/
Christian Heilmann написал статью об инструментах DevTools в таких браузерах как Edge и Chrome, которые позволяют определить проблемы доступности на сайте.
https://christianheilmann.com/2021/01/11/seven-ways-to-test-for-accessibility-of-your-web-site-with-browser-developer-tools/
Создание игры с дополненной реальностью
Ada Rose Cannon из команды Samsung Internet о создании игры с использованием WebXR DOM Overlay API и WebXR Hit Test API.
https://medium.com/samsung-internet-dev/making-an-ar-game-with-aframe-529e03ae90cb
Ada Rose Cannon из команды Samsung Internet о создании игры с использованием WebXR DOM Overlay API и WebXR Hit Test API.
https://medium.com/samsung-internet-dev/making-an-ar-game-with-aframe-529e03ae90cb
Medium
Making an AR Game
AFRAME, THREE.js and WebXR let me build a game during a 4.5hr live stream.
PWA в 2021 году
Maximiliano Firtman написал статью о том, что изменилось в мире PWA к 2021 году, совместимости, новых возможностях, убранных возможностях и о том, чего ждать в этом году.
https://firt.dev/pwa-2021/
Maximiliano Firtman написал статью о том, что изменилось в мире PWA к 2021 году, совместимости, новых возможностях, убранных возможностях и о том, чего ждать в этом году.
https://firt.dev/pwa-2021/
firt.dev
Progressive Web Apps in 2021-firt.dev
The current status of the PWA platform, abilities, compatibility, app store distribution, PWA market share and more insights about the state of the platform
Обновился веб-сайт Ecma International
Ассоциация Ecma International получила обновлённый веб-сайт. Казалось бы новость не очень важная, но вы просто вспомните какой сайт у них был раньше — табличная верстка, адрес и пункты меню картинками gif.
Ассоциация Ecma International получила обновлённый веб-сайт. Казалось бы новость не очень важная, но вы просто вспомните какой сайт у них был раньше — табличная верстка, адрес и пункты меню картинками gif.
Список TC39 пропозалов, которые запрашивают продвежения на следующий стейдж
25-28 января пройдёт первое в этом году заседание #TC39, для которого уже финализирован список пропозалов, которые могут попасть на следующий стейдж (дедлайн был в пятницу 15 января). Список очень большой, поэтому вероятно, что не все предложения из него комитет успеет обсудить.
Stage 3 -> Stage 4
- Intl.DateTimeFormat.prototype.formatRange
Stage 2 -> Stage 3
- JSON modules
- Array.isTemplateObject
- Class static Initialization Blocks
- Ergonomic brand checks for private fields
Stage 1 -> Stage 2
- Intl Locale Info
- Intl DisplayNames v2
- Dynamic code brand checks
- JS Module Blocks
- do expressions
Новые пропозалы (-> Stage 1)
- Array find from last
- Extend TimeZoneName Option Proposal
- eraDisplay option for Intl.DateTimeFormat
- Intl LocaleMatcher
- async do expressions
- index from end syntax
- class brand check
- defer module import eval
25-28 января пройдёт первое в этом году заседание #TC39, для которого уже финализирован список пропозалов, которые могут попасть на следующий стейдж (дедлайн был в пятницу 15 января). Список очень большой, поэтому вероятно, что не все предложения из него комитет успеет обсудить.
Stage 3 -> Stage 4
- Intl.DateTimeFormat.prototype.formatRange
Stage 2 -> Stage 3
- JSON modules
- Array.isTemplateObject
- Class static Initialization Blocks
- Ergonomic brand checks for private fields
Stage 1 -> Stage 2
- Intl Locale Info
- Intl DisplayNames v2
- Dynamic code brand checks
- JS Module Blocks
- do expressions
Новые пропозалы (-> Stage 1)
- Array find from last
- Extend TimeZoneName Option Proposal
- eraDisplay option for Intl.DateTimeFormat
- Intl LocaleMatcher
- async do expressions
- index from end syntax
- class brand check
- defer module import eval
GitHub
agendas/2021/01.md at main · tc39/agendas
TC39 meeting agendas. Contribute to tc39/agendas development by creating an account on GitHub.
Вебня
Интересный факт. Количество страниц в печатных версиях разных редакций спецификации ECMAScript: ES1 (1997) — 110 ES2 (1998) — 117 ES3 (1999) — 188 ES5 (2009) — 252 ES5.1 (2011) — 258 ES2015 (2015) — 566 ES2016 (2016) — 586 ES2017 (2017) — 885 ES2018 (2018)…
Количество страниц в печатных версиях разных редакций спецификации ECMAScript:
ES1 (1997) — 110
ES2 (1998) — 117
ES3 (1999) — 188
ES5 (2009) — 252
ES5.1 (2011) — 258
ES2015 (2015) — 566
ES2016 (2016) — 586
ES2017 (2017) — 885
ES2018 (2018) — 805
ES2019 (2019) — 764
ES2020 (2020) — 860
ES1 (1997) — 110
ES2 (1998) — 117
ES3 (1999) — 188
ES5 (2009) — 252
ES5.1 (2011) — 258
ES2015 (2015) — 566
ES2016 (2016) — 586
ES2017 (2017) — 885
ES2018 (2018) — 805
ES2019 (2019) — 764
ES2020 (2020) — 860
Вышел Chrome 88
В новой версии:
- Manifest v3 для расширений, который должен улучшить производительность, безопасность и приватность (не нашел нигде дату, когда v2 перестанут публиковать и начнут убирать из Chrome Web Store, если вы обладаете такой информацией — поделитесь, пожалуйста)
- поддержка CSS-свойства aspect-ratio
- точность таймеров будет уменьшена для повторяющихся вызовов
- биллинг Google Play для Trusted Web Activities доступен под origin trial на Android
- в соответствии с изменениями в стандарте HTML,
- Pointer Lock API
-
Видео о новых фичах Chrome 88.
Об изменениях DevTools можно почитать тут.
О деприкейтах и убранных фичах тут.
В новой версии:
- Manifest v3 для расширений, который должен улучшить производительность, безопасность и приватность (не нашел нигде дату, когда v2 перестанут публиковать и начнут убирать из Chrome Web Store, если вы обладаете такой информацией — поделитесь, пожалуйста)
- поддержка CSS-свойства aspect-ratio
- точность таймеров будет уменьшена для повторяющихся вызовов
- биллинг Google Play для Trusted Web Activities доступен под origin trial на Android
- в соответствии с изменениями в стандарте HTML,
target="_blank" теперь по умолчанию имеет также поведение rel="no-opener"- Pointer Lock API
-
addEventListener теперь может принимать AbortSignalВидео о новых фичах Chrome 88.
Об изменениях DevTools можно почитать тут.
О деприкейтах и убранных фичах тут.
Chrome for Developers
New in Chrome 88 | Blog | Chrome for Developers
Chrome 88 is rolling out now! You can now upload extensions using manifest v3 to the Chrome Web Store. The aspect-ratio CSS property makes it easy to set the aspect ratio on any element. You can now use Play Billing in your Trusted Web Activity, and there's…
Изменения в поддержке SharedArrayBuffer в Chrome
Поддержка SharedArrayBuffer уже доступна в десктопной версии Chrome, но начиная с версии 91 для его работы потребуется настройка cross-origin isolation. Начиная с версии 88 для Android, поддержка также включается для страниц с cross-origin изоляцией.
https://developer.chrome.com/blog/enabling-shared-array-buffer/
Поддержка SharedArrayBuffer уже доступна в десктопной версии Chrome, но начиная с версии 91 для его работы потребуется настройка cross-origin isolation. Начиная с версии 88 для Android, поддержка также включается для страниц с cross-origin изоляцией.
https://developer.chrome.com/blog/enabling-shared-array-buffer/
Chrome for Developers
SharedArrayBuffer updates in Android Chrome 88 and Desktop Chrome 92 | Blog | Chrome for Developers
SharedArrayBuffer will arrive in Android Chrome 88. It will only be available to pages that are cross-origin isolated. Starting in Desktop Chrome 92 it will also only be available to cross-origin isolated pages. You can register for an origin trial to retain…
Портирование Firefox на Apple Silicon
Большая статья о том, с какими трудностями пришлось столкнуться инженерам Mozilla для портирования Firefox на новые процессоры Apple.
https://hacks.mozilla.org/2021/01/porting-firefox-to-apple-silicon/
Большая статья о том, с какими трудностями пришлось столкнуться инженерам Mozilla для портирования Firefox на новые процессоры Apple.
https://hacks.mozilla.org/2021/01/porting-firefox-to-apple-silicon/
Mozilla Hacks – the Web developer blog
Porting Firefox to Apple Silicon
The release of Apple Silicon based Macs at the end of last year generated a flurry of news and some surprises at the machine’s performance.
Вышел GraalVM 21.0.0
В JS версии добавлены поля классов (stage 3), Promise.any (ES2021), String.prototype.replaceAll (ES2021), Logical Assignment Operators (ES2021), а также Relative Indexing Method (aka
Кроме того, в GraalVM 21 много других классных изменений.
https://medium.com/graalvm/graalvm-21-0-introducing-a-new-way-to-run-java-df894256de28
Поддержка GraalVM относительно JavaScript уже обновлена в таблице совместимости.
В JS версии добавлены поля классов (stage 3), Promise.any (ES2021), String.prototype.replaceAll (ES2021), Logical Assignment Operators (ES2021), а также Relative Indexing Method (aka
.at(), stage 3) под флагом.Кроме того, в GraalVM 21 много других классных изменений.
https://medium.com/graalvm/graalvm-21-0-introducing-a-new-way-to-run-java-df894256de28
Поддержка GraalVM относительно JavaScript уже обновлена в таблице совместимости.
Medium
GraalVM 21.0: Introducing a New Way to Run Java
Today we’re happy to announce the GraalVM 21.0 release.
Puppeteer мигрирует на TypeScript
Команда Chrome DevTools собирается использовать TypeScript не только в самих DevTools, но и в инструменте автоматизации браузера Puppeteer.
https://developers.google.com/web/updates/2021/01/puppeteer-typescript
Команда Chrome DevTools собирается использовать TypeScript не только в самих DevTools, но и в инструменте автоматизации браузера Puppeteer.
https://developers.google.com/web/updates/2021/01/puppeteer-typescript
Chrome for Developers
Migrating Puppeteer to TypeScript | Blog | Chrome for Developers
How we migrate Puppeteer to TypeScript.
Проблемы совместимости Relative Indexing Method
У этого stage 3 пропозала очередные проблемы совместимости. Они были обнаружены разработчиками из Apple после включения метода
У этого stage 3 пропозала очередные проблемы совместимости. Они были обнаружены разработчиками из Apple после включения метода
.at() у массивов. Надо сказать, что код, который используется на проблемном сайте очень сомнительный. Напомню, что ранее метод назывался .item(), и проблема совместимости при использовании этого имени была обнаружена разработчиками из Mozilla. В этот раз проблема не такая серьёзная, как в прошлый, т.к., судя по всему, пока обнаружена лишь на одном сайте и в кастомном коде, так что #TC39 может попробовать связаться с владельцами сайта и попросить изменить код. посмотрим, что из этого выйдет.GitHub
GitHub - tc39/proposal-relative-indexing-method: A TC39 proposal to add an .at() method to all the basic indexable classes (Array…
A TC39 proposal to add an .at() method to all the basic indexable classes (Array, String, TypedArray) - tc39/proposal-relative-indexing-method
У WebAssembly в JavaScriptCore появится JIT-less режим
Режим без JIT позволит исполнять #WebAssembly в JavaScriptCore (движке, используемом в WebKit/Safari) на платформах, которые не поддерживают B3 и Air оптимизаторы. В таких случаях будет использоваться только интерпретатор LLInt.
https://bugs.webkit.org/show_bug.cgi?id=220365
Режим без JIT позволит исполнять #WebAssembly в JavaScriptCore (движке, используемом в WebKit/Safari) на платформах, которые не поддерживают B3 и Air оптимизаторы. В таких случаях будет использоваться только интерпретатор LLInt.
https://bugs.webkit.org/show_bug.cgi?id=220365
Мы тут делаем второй MoscowJS Online, заглядывайте.
Telegram
MoscowJS
Всем привет 🙋♂️ 🙋♀️
⠀
В ближайший четверг, 28.01.2021, в 19:00 пройдёт наша вторая онлайн-встреча:
MoscowJS Online, Круглый стол: собеседования глазами компаний.
⠀
Кто и как решает, кого звать на собеседование, а кого нет? Как определить уровень кандидата…
⠀
В ближайший четверг, 28.01.2021, в 19:00 пройдёт наша вторая онлайн-встреча:
MoscowJS Online, Круглый стол: собеседования глазами компаний.
⠀
Кто и как решает, кого звать на собеседование, а кого нет? Как определить уровень кандидата…
Сегодня начинается первое в этом году заседание #TC39
Я как всегда буду рассказывать об итогах каждого дня, о каких-либо важных событиях сразу же онлайн, и напишу общие итоги январской встречи одним большим постом. Честно говоря, я не ожидал такого количества тем для обсуждения. Казалось, что какие-то основные изменения в плане синтаксиса уже пришли в язык, но в повестке можно найти много нового (и хорошо забытого старого), что может значительно поменять синтаксис. Будем следить вместе вечерами с понедельника по четверг, присоединяйтесь!
Я как всегда буду рассказывать об итогах каждого дня, о каких-либо важных событиях сразу же онлайн, и напишу общие итоги январской встречи одним большим постом. Честно говоря, я не ожидал такого количества тем для обсуждения. Казалось, что какие-то основные изменения в плане синтаксиса уже пришли в язык, но в повестке можно найти много нового (и хорошо забытого старого), что может значительно поменять синтаксис. Будем следить вместе вечерами с понедельника по четверг, присоединяйтесь!
GitHub
agendas/2021/01.md at main · tc39/agendas
TC39 meeting agendas. Contribute to tc39/agendas development by creating an account on GitHub.
В Chromium перестанет работать синхронизация через API от Google
Google собирается ограничить доступ к своим API для сторонних браузеров на базе Chromium 15 марта 2021. Ранее пользователи таких браузеров могли синхронизировать свои данные с аккаунтом Google. В результате авторы дистрибутивов Arch Linux, Fedora, Debian, Slackware и openSUSE подняли вопрос о том, чтобы убрать Chromium из поставки в своих дистрибутивах. Разработчики браузеров на основе Chromium пока никак не прокомментировали грядущие изменения, но очевидно, что такой шаг может перевести их пользователей в ряды пользователей Google Chrome.
Google собирается ограничить доступ к своим API для сторонних браузеров на базе Chromium 15 марта 2021. Ранее пользователи таких браузеров могли синхронизировать свои данные с аккаунтом Google. В результате авторы дистрибутивов Arch Linux, Fedora, Debian, Slackware и openSUSE подняли вопрос о том, чтобы убрать Chromium из поставки в своих дистрибутивах. Разработчики браузеров на основе Chromium пока никак не прокомментировали грядущие изменения, но очевидно, что такой шаг может перевести их пользователей в ряды пользователей Google Chrome.
Chromium Blog
Limiting Private API availability in Chromium
During a recent audit, we discovered that some third-party Chromium based browsers were able to integrate Google features, such as Chrome sy...
Важные новости CSS с прошлой недели
Опубликованы W3C Accessibility Guidelines (WCAG 3) в статусе First Public Working Draft. Новая версия документа имеет переработанную структуру, соответствие гайдлайнам теперь применяется не к страницам, а к сайтам или продуктам, 100% соответствие теперь не обязательно (достаточно отсутствие критических ошибок).
Опубликованы CSS Cascading and Inheritance Level 5 также в статусе First Public Working Draft. В новой версии добавлен концепт слоёв каскадности.
Опубликованы W3C Accessibility Guidelines (WCAG 3) в статусе First Public Working Draft. Новая версия документа имеет переработанную структуру, соответствие гайдлайнам теперь применяется не к страницам, а к сайтам или продуктам, 100% соответствие теперь не обязательно (достаточно отсутствие критических ошибок).
Опубликованы CSS Cascading and Inheritance Level 5 также в статусе First Public Working Draft. В новой версии добавлен концепт слоёв каскадности.