Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Статья о том, как команда V8 ускоряла API интернеционализации идобавляла новые фичи.
https://v8.dev/blog/intl
На этой неделе случился релиз Svelte 3: Rethinking reactivity. Что интересно, достаточно стандартное API для реактивности заменили на... его отсустсвие. Это возможно благодаря тому, что Svelte по сути компилятор и теперь он инструментирует код так, что реактивность работает без дополнительного API. Подробности в видео от Rich Harris с деталями и сравнением с React.
У Svelte так же обновился сайт и слоган: вместо "The magical disappearing UI framework" теперь "Cybernetically enhanced web apps"
Далеко не все знают, что такое "инструментирование кода" поэтому рекомендую к просмотру доклад Matt Zeunert - Dynamic Analysis with Babel, о том как сделать нечто подобное, что сделали в Svelte с помощью Babel. Кстати, Matt автор FromJS – экспериментального инструмента показывающий как было получено любое значение в DOM.
В Google прорабатывают решение Trusted Types (вводная статья, explainer, спецификация) – API позволяющее предотвращать XSS инъекции в DOM (например, через присвоение значений Element#innerHTML или Location#href), путем маркировки значений как доверенные для определенных контекстов. Звучит мудренно, но на самом деле не так сложно: включается через CSP заголовок, после чего присваивать значение в DOM API yязвимые к XSS можно, только если это значение пропущено через специальный интерфейс (политику). Имплементация в статусе Origin Trial, доступна в Chrome за флагами с начала этого года.
Инженеры Facebook собираются заимплементить в Chromium WICG пропозал спецификации JavaScript Self-Profiling API Proposal для измерения времени исполнения JavaScript в браузерах пользователей.
Опубликована вторая версия WICG предложения Picture in Picture, которая позволит не ограничиваться HTMLVideoElement, а использовать любой произвольный контент. Это нужно в первую очередь для кастомизации UI и UX видео элемента, но кажется позволит делать и более интересные штуки. Команда Chromium выразила желание заимплементить это предложение.
https://twitter.com/mathias/status/1122839902452948993

Внезапно. CSS не имеет однострочных комментариев по спецификации, однако все браузеры всё равно поддерживают “//“ (на самом деле нет, смотрите комментарий @rdvornov)
Еще одна инициатива WICG и команды Chromium — Periodic Background Sync. Это дополнение к другому WICG предложению Background Sync (поддерживается в Chrome начиная с версии 49), которое добавляет возможность многократно повторять синхронизацию через определенный промежуток времени.
CSS WG опубликовала Candidate Recommendation спецификаций CSS Easing Functions Level 1 и CSS Containment Module Level 1. Первая определяет кривые для анимаций, вторая добавляет свойство contain, которое указавает, что элемент и его контент независимы от дерева документа настолько, насколько это возможно. Это позволяет браузеру производить необходимые изменения только для части DOM, а не всей страницы.
16 мая в Москве пройдет первый #WebAssembly митап, одним из организаторов которого я являюсь.

https://webassembly-moscow.timepad.ru/event/969924/
SQLite портировали на Webassembly путем компиляции оригинального C кода с помощью Emscripten. Проект доступен в npm под именем sql.js, начинался как asm.js проект, которому требовались C биндинги, node-gyp компиляция и прочие шаманства – теперь это все не нужно, пакет можно использовать как обычный JS модуль. Работает в node.js, браузерах и WebWorker'ах.
Под капотом обычный SQLite, который хранит базу данных в памяти (не сохраняет изменения куда либо), но умеет импортировать sqlite файлы и экпортировать БД в виде TypedArray.
Пару недель назад прошла двухдневная встреча W3C Web Platform Working Group, на которой обсудили множество интересных тем (там, например, есть JSON modules, и даже CSS Modules). Нам еще предстоит ознакомиться с результатами обсуджений, но прямо сейчас, как правильно подсветил Luca Colonnello, наибольшее внимание привлекают два предложения: декларативный Shadow DOM и декларативные Custom Elements. Эти два предложения нацелены решить проблемы Web Components связанные с серверным рендерингом (речь про SEO, performance etc)
Я тут в путешествиях пропустил новости с #msbuild, поэтому сворую у Веб-стандартов.

https://t.me/webstandards_ru/4925

А ещё Вадим поехал на Google I/O, поэтому подписываемся на канал и ждём от него новостей!
https://devblogs.microsoft.com/dotnet/introducing-net-5/

Microsoft анонсировали .NET 5, который выйдет в ноябре 2020 и будет следующим релизом после .NET Core 3.0. В нём помимо прочего добавится поддержка #WebAssembly через Mono AOT компилятор (как это уже реализовано в Blazor, который недавно перешёл в стадию preview).
Googlebot проапгрейдили до последнего Chrome 74 и пообещали регулярно это делать в будущем. Заметим, что апгрейд существенный и по заявлениям Webmaster Central Blog это более 1000 новых фич, в том числе ES6+ и Web Components v1
https://webmasters.googleblog.com/2019/05/the-new-evergreen-googlebot.html