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

Новая версия переписана на TypeScript, получила поддержку Google Lighthouse через DevTools протокол (а также PWA quality support поверх лайтхауса), а также лишилась поддержки Node 10 (хотя конец поддержки у неё случится только 30 апреля 2021).

https://webdriver.io/blog/2021/02/09/webdriverio-v7-released/
⚡️Только что закончилась встреча #WebAssembly WG, на которой пропозалы Bulk Memory operations и Reference types было решено добавить в спецификацию.
Вышел Safari Technology Preview 120

По большей части релиз содержит багфиксы и улучшения для уже существующих фич.

https://webkit.org/blog/11548/release-notes-for-safari-technology-preview-120/
Safari 14.1 beta теперь доступен также для macOS Catalina и Mojave

Чтобы скачать, понадобится аккаунт разработчика на сайте Apple.

https://developer.apple.com/download/more/?=Safari
Спецификация CSS Cascading and Inheritance Level 3 получила статус W3C Recommendation

Эта спецификация находилась в разработке аж с декабря 2005 года!

https://www.w3.org/TR/2021/REC-css-cascade-3-20210211/
Pointer Events Polyfill (PEP) прекращает своё развитие

Pointer Events теперь поддерживаются в большинстве браузеров, и разработчики полифилла решили прекратить его дальнейшее развитие, к тому же ещё с Pointer Events Level 2 было сложно полифиллить нативные возможности платформы.

https://openjsf.org/blog/2021/02/10/pointer-events-polyfill-pep-enters-emeritus-status-at-the-openjs-foundation/
Webref – машиночитаемые выдержки из веб-спецификаций

В организации w3c на GitHub появился репозиторий Webref, который содержит описания CSS свойств и определений, IDL и метаданные из веб-спецификаций. Данные есть как по опубликованным спецификациям, так и по их черновикам (Editor's Drafts); из таких областей как CSS, DOM, SVG, WebGL, CSP и другие Web API. Данные извлекаются из почти 400 спецификаций, краулером Reffy, который тоже доступен на GitHub в организации w3c.
Что примечательно, обоим репозиториям более трех лет, но им удавалось оставаться в тени (меньше 50 звезд на GitHub на оба репозитория). Судя по всему, эти репозитории перенесли в w3c в районе сентября прошлого года.
Они используются в WebIDLpedia, анализе аномалий в спецификациях и в тестах веб-платформы. Вероятно этим данным скоро найдется новое применение.
Опубликованы текстовые записи с январского пленарного заседания #TC39

https://github.com/tc39/notes/tree/master/meetings/2021-01
В блоге V8 вышла статья об ускорении вызовов JavaScript функций с несовпадающим количеством аргументов

Ранее для таких вызовов использовался специальный адаптер, который не только сложен в реализации, но весьма дорог по времени вызова. В V8 v8.9 получилось избавиться от адаптера и не потерять в скорости в интерпретаторе Ignition, а в JIT-компиляторе TurboFan получить прирост скорости в 40%.
В движке 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.
Подкастер Лекс Фридман выпустил большое интервью с создателем JavaScript Бренданом Айком

Интервью длится почти три часа, и в нём затрагивается очень много интересных тем, таких как история языков программирования, физика (Брендан по образованию физик), история JavaScript, Netscape vs Microsoft, развитие и стандартизация языка JavaScript, TypeScript, экосистема JavaScript, появление JIT-компиляторов JS-движков, asm.js, WebAssembly, браузерные войны, Firefox, Brave, приватность пользователей, роль Safari в авангарде борьбы за неё и Chrome, которому приходится выкручиваться по-своему.

https://www.youtube.com/watch?v=krB0enBeSiE
Результаты сегодняшней встречи #WebAssembly CG

Только что закончилась очередная встреча 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
Вышла новая бета языка 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
Вышел ReScript 9.0

ReScript — это новое название для Reason в использовании совместно с BuckleScript. В новой версии некоторые улучшения компилятора и синтаксиса.

https://rescript-lang.org/blog/release-9-0

Подробнее о ребрендинге проектов: https://rescript-lang.org/bucklescript-rebranding
В V8 v9.0 добавится использование инлайн кэша для доступа к полям объекта-родителя

В данный момент для обращений вида super.x используется рантайм вызов. В статье рассказываются технические подробности о том, как работает super и как получилось переиспользовать инлайн кэш для его ускорения.

https://v8.dev/blog/fast-super
Руководство по использованию стримов

На 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