Вебня – Telegram
Вебня
4.68K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
На посвященной React Native конференции Chain React, проходящей сейчас в Портланде, был представлен JavaScript движок Hermes. Этот движок разработан в компании Facebook для быстрого старта приложений и экономии памяти на платформе Android, использует только AOT компиляцию и не использует JIT. Исходный код находится на GitHub.
В Chrome собираются заимплементить WebSocketStream — новый API, который добавляет поддержку стримов (низкоуровневые API, которые используются в Fetch и других местах) для веб сокетов. Когда сообщения приходят быстрее, чем страница может их обработать, процесс рендеринга заполнит память, буферизируя эти сообщения, потеряет отзывчивость из-за загрузки процессора, либо и то, и другое вместе. Поддерржка стримов позволит удобно применять backpressure для решения этих проблем.

WebSocketStream explainer
WebSocketStream design doc
Новое ECMAScript предложение Map.prototype.updateOrInsert попытается найти одобрение комитета и появиться на stage 1.
Forwarded from Веб-стандарты (Веб-стандарты)
Прямая трансляция с Web Standards Days в Петербурге при поддержке Revolut, Google и Контура начнётся уже сегодня в 11:00 (GMT+3), присоединяйтесь! Видео https://youtu.be/_0psqory6rk, подробности и программа https://wsd.events/2019/07/13/
У команды Microsoft Edge не так давно появился репозиторий MSEdgeExplainers, где добавляются explainers от команды – документы описывающие некоторую проблему и потенциальные решения. Это отправная точка для публичных обсуждений, с последующей трансформацией в стандарты и имплементацией в Chromium.
Там есть занятные документы, некоторые в процессе имплементации, например, HTML Modules (import .. from 'foo.html') или вынос скролинга из основного потока в Chromium
Два предложения от Ron Buckton из команды TypeScript RegExp Match Offsets и Explicit Resource Management будут пытаться перейти на stage 2 и stage 1 соответственно
Новое предложение Infix Bang попытается перейти на stage 1. Но что-то есть большие сомнения.
Больше предложения, которые собираются продвигаться, в адженду не принимаются, так что основная программа июльской встречи #TC39 сформирована и находится тут.
Отличная статья – Is postMessage slow?
Принцип работы, бенчмарки, цифры, графики, альтернативные решения, камео WebAssembly+Rust – все как надо: https://dassur.ma/things/is-postmessage-slow/
Никита Сковорода о недавно обнаруженной им уязвимости в yarn, в результате которой токен аутентификации отправлялся по незашифрованному HTTP соединению для некоторых scoped пакетов.

https://github.com/ChALkeR/notes/blob/master/Yarn-vuln.md
Опубликовано обновление CSS Syntax Module Level 3 (Candidate Recommendation)
Ключевые изменения:
- Идентификаторы могут начинаться с двойного тире (влияние custom properties, но подобное именование может добавиться и в прелюдиях директив, например, в @property)
- Убрали <unicode-range-token>, вместо него добавлен <urange> микросинтаксис (из-за проблем в раборе селекторов с комбинатором +, реальный баг в Firefox)
- Добавили определение производных типов <declaration-value> и <any-value>, которые можно встретить в других спеках
- @charset теперь официально не правило, хотя выглядит похоже (это деректива, которая не представлена в CSSOM отдельным объектом, как другие)
И множество других правок и дополнений.

Так совпало, что в недавнем обновлении парсера css-tree, большая часть изменений уже поддержана (тогда изменения были в черновике) – на специальном стенде можно посмотреть как разбиваются значения на токены и матчатся на синтаксисы
Статья: Font-size: An Unexpectedly Complex CSS Property
Про то как работает CSS свойтво font-size с точки зрения спецификаций и сложности его имплементации в stylo (подпроект Servo, подсистемы Firefox). Хоть статье уже два года, она не теряет своей актуальности – полезно для понимания насколько CSS непростой с точки зрения браузера.
Unicode Technical Committee (UTC) рассматривает механизм добавления цветов для emoji, что может позволить добавить, например, белое вино или чёрную кошку.
http://blog.unicode.org/2019/07/unicode-technical-committee-considers.html
Alon Zakai, создатель Emnoscripten и Binaryen о том, как сделать #WebAssembly код асинхронным в userspace с помощью новой фичи в Binaryen — Asyncify.
https://kripken.github.io/blog/wasm/2019/07/16/asyncify.html
Skia (опенсурсная библиотека для 2D графики, основа графического движка используемого в Google Chrome, Firefox, Android и др) портирована на WebAssembly. Порт получил название CanvasKit. Основное применение — использовать в вебе, в том числе для апробации новых Canvas и SVG API, что должно помочь ускорить развитие этих технологий.
Все 3 спецификации #WebAssembly 18 июля перешли на стадию Candidate Recommendation:
- WebAssembly Core Specification
- WebAssembly JavaScript Interface
- WebAssembly Web API