Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Вышел Firefox 91

Помимо прочего, эта версия станет новым релизом с расширенной поддержкой (ESR). Поддержка предыдущей версии Firefox 78 ESR прекратится в октябре 2021.

Новое:
- HTTPS-First Policy
- Windows SSO
- Visual Viewport API на всех платформах
- Intl.DateTimeFormat.prototype.formatRange() и Intl.DateTimeFormat.prototype.formatRangeToParts() (ECMA402 2021)
- Error cause (stage 3)
- Gampad API теперь требует защищённого контекста
- улучшения поддержки WebDriver

Изменения для конечного пользователя
Изменения для разработчиков
Forwarded from Deno Fanatic
⚡️ Вышел Deno 1.13

Из крутых фич которых я совсем не ожидал в ближайшее время:
- FFI сразу на следующий релиз после удаления Deno Plugins. Теперь можно выполнять функции либ, Пример
- Deno Http и Deno.core websocket теперь в stable

Теперь удобно читать коммиты по группам extensions (web api, tls, crypto), и в этом релизе это:
- WebSocketStream API
- Web API - structuredClone, только пару дней назад Сережа писал об этом в вебне , а оно уже вот в этом релизе =)
- crypto - add verify(), implement importKey and exportKey for HMAC

В REPL завезли еще немного фич: поддержка exports + eval

Подробнее про Deno.core: tag/1.13

⚡️ Deno/std 0.104.0

- Добавили модуль collections, для удобной работы с коллекциями. Всего 17 API методов (distinct, zip, deepMerge, groupBy и тд)
- wrapper для WebCrypto
- Больше к совместимости к пакетам из node

Подробнее про Deno.std: tag/0.104.0
Вышел Safari Technology Preview 130

https://webkit.org/blog/11958/release-notes-for-safari-technology-preview-130/

В нём:
- Array.prototype.findLast и Array.prototype.findLastIndex под флагом (stage 3)
- улучшения CSS
- исправления и улучшения разных Web API и медиа
Вышел Samsung Internet 15

Он основан на Chromium 90 и добавляет поддержку Stream API, import maps, несколько CSS фич, а также новые фичи, касающиеся приватности пользователей (почитать можно тут).
В Chromium 93 появится поддержка импорта CSS-модулей в JavaScript

https://web.dev/css-module-scripts/

Это станет возможным благодаря поддержке import assertions (stage 3).
Доступна альфа-версия React 18

https://medium.com/stackanatomy/react-18-is-out-this-is-what-you-need-to-know-3a64f443daed

Новое:
- batch update состояний везде (не только в DOM)
- улучшения Strict Mode (Strict Effects + поддержка Offscreen API)
- новое Root API как замена React.render
- Concurrent Mode
- startTransition и useTransition для продвинутого управления приоритетом изменения состояния
- хук useDeferredValue для отложенных значений
- SuspenseList
- Suspense теперь является стабильным API
- потоковый Server-Side Rendering

Стабильная версия React 18 выйдет в конце 2021 - первой половине 2022.
Forwarded from Deno Fanatic
⚡️Deno появился на страницах MDN

Недавно Deno начал проходить большинство тестов WPT, и теперь можно смело обновлять browser-compat-data

https://deno.com/blog/deno-on-mdn
До ближайшей встречи #TC39 ещё неделя, а тем для обсуждения уже набралось на 12 часов (из восьми доступных), так что агенда достаточно плотная. В ней присутствуют как новые пропозалы, так и некоторые долгожданные для многих.
React render tracker

Новый инструмент React render tracker помогает обнаруживать в React приложениях непреднамеренные (лишние) ререндеры и отмонтирование компонент, что может быть причиной багов и проблем с производительностью. Проект в стадии MVP/proof of concept, но кое-что уже умеет. В будущем ождается возможность записывать логи рендеров на CI для анализа, получать отчеты для прикладывая в задачи/PR и технические документы, и др. (туду лист)
Forwarded from Wild Wild Web
🎉 Релиз TypeScript 4.4 🎉

Вы можете подумать, а чего я тут фейерверки устраиваю? А потому что они таки улучшили то, с чем я уже довольно долго воюю. Надеюсь, они и дальше будут улучшать эти моменты. А какие именно, давайте обсудим в комментариях позже 🙂

Вчера команда TypeScript выпустила новую версию компилятора, в которой есть несколько интересных мест. Давайте подчеркнём самые интересные, по моему мнению:

- Улучшили Control Flow Analysis. Теперь, так называемые type guards, можно выносить в отдельные переменные и TypeScript не потеряет эту информацию по пути. Например, вы хотите проверить что что-то строка const isString = typeof someParam === 'string' и дальше вы можете писать просто if(isString) {}, TypeScript такое скушает (раньше это было ошибкой компиляции). И таких примеров побольше, можете почитать у них в посте.

- Все catch блоки по умолчанию приводятся к unknown типу (за флагом strict). Unknown тип это более безопасный вариант неизвестного типа, по сравнению с any. Я об этих типах, как раз, недавно писал. С этим релизом, TypeScript будет ошибки в catch блоках неявно приводить к unknown. И вам, собственно, нужно будет проверить что ошибка это та ошибка, которую вы ожидаете или нет.

- С этим релизом добавилась возможность иметь "inlay hints". Я с таким часто встречаюсь при разработке на Rust и, если честно, меня это немного бесит. Но, знаю людей, которым это очень даже заходит. Речь идёт о том, что в IDE у вас будут добавляться имена параметров к вашим аргументам или выведенный тип возврата функции будет добавлен как "inlay hint" возле вашей функции и так далее. Насколько я знаю, такое есть давно в Intelliji и им активно пользуются. А в этом релизе они добавили это на уровне компилятора.

Все остальные моменты, по моему мнению, не такие уж и большие, но, безусловно, интересные и для кого-то могут оказаться нововведением "вовремя". Вы можете почитать более подробно об изменениях в этой версии в их блог посте.
👍1
React Native 0.65 и Hermes 0.8.1

17 августа вышел React Native 0.65, в котором JavaScript движок Hermes обновлён до версии 0.8.1. Новая версия движка поддерживаем процессоры Apple M1, добавляет улучшенную компрессию SMI и новый конкурентный сборщик мусора Hades, а также добавляет поддержку ECMAScript Internationalization API прямо в движок, что позволяет избавиться от локальных полифиллов.
Новое в Chrome 94 Beta

Главные изменения:
- WebCodecs
- WebGPU (под origin trail), о котором также появилась статья на web.dev; планируется, что в Chrome 97 (релиз намечен на 4 января 2022) новый API будет включен по умолчанию
- scheduler.postTask() — метод для управления приоритезацией (с режимами user-blocking, user-visible и background)

Остальные изменения можно посмотреть вот тут. Релиз ожидается 21 сентября.
⚡️ Первая новость с 85й встречи #TC39 (идёт прямо сейчас): метод .at() отправляется на stage 4
⚡️ Object.hasOwn() также отправляется на stage 4!
⚡️ Class static initiallization blocks тоже отправляется на stage 4!
⚡️ Пропозал Change Array by copy переходит на stage 2
⚡️ Pipeline operator отправляется на stage 2! 🎉
⚡️ String is USV String берёт stage 1
⚡️ Array.asyncFrom также берёт stage 1