На посвященной React Native конференции Chain React, проходящей сейчас в Портланде, был представлен JavaScript движок Hermes. Этот движок разработан в компании Facebook для быстрого старта приложений и экономии памяти на платформе Android, использует только AOT компиляцию и не использует JIT. Исходный код находится на GitHub.
GitHub
GitHub - facebook/hermes: A JavaScript engine optimized for running React Native.
A JavaScript engine optimized for running React Native. - facebook/hermes
И ещё один JS движок для встраиваемых систем, который зарелизился пару дней назад, и про который я так и не успел написать.
https://news.1rj.ru/str/opennews/5380
https://news.1rj.ru/str/opennews/5380
Telegram
opennet news
Основатель QEMU и FFmpeg опубликовал JavaScript-движок QuickJS
Французский математик Фабрис Беллар (Fabrice Bellard), основавший в свое время проекты QEMU и FFmpeg, а также создавший самую быструю формулу вычисления числа Пи и разработавший формат изображений…
Французский математик Фабрис Беллар (Fabrice Bellard), основавший в свое время проекты QEMU и FFmpeg, а также создавший самую быструю формулу вычисления числа Пи и разработавший формат изображений…
В Chrome собираются заимплементить WebSocketStream — новый API, который добавляет поддержку стримов (низкоуровневые API, которые используются в Fetch и других местах) для веб сокетов. Когда сообщения приходят быстрее, чем страница может их обработать, процесс рендеринга заполнит память, буферизируя эти сообщения, потеряет отзывчивость из-за загрузки процессора, либо и то, и другое вместе. Поддерржка стримов позволит удобно применять backpressure для решения этих проблем.
WebSocketStream explainer
WebSocketStream design doc
WebSocketStream explainer
WebSocketStream design doc
Google
Google Groups
Google Groups allows you to create and participate in online forums and email-based groups with a rich experience for community conversations.
ECMA-402 предложение Intl.DisplayNames, перешедшее на последнем заседании #TC39 на stage 2, будет пытаться перейти на stage 3 на следующем заседании, которое пройдет 23-25 июля.
Слайды: https://docs.google.com/presentation/d/1bq9h8BvP7a4_Tn3NM-DQ0QSlSr9uGZpmNSTFRRlCsV8/edit#slide=id.p
Слайды: https://docs.google.com/presentation/d/1bq9h8BvP7a4_Tn3NM-DQ0QSlSr9uGZpmNSTFRRlCsV8/edit#slide=id.p
GitHub
GitHub - tc39/proposal-intl-displaynames: Get localized display names for languages, noscripts, regions and others. https://tc39…
Get localized display names for languages, noscripts, regions and others. https://tc39.github.io/proposal-intl-displaynames/ - tc39/proposal-intl-displaynames
Новое ECMAScript предложение Map.prototype.updateOrInsert попытается найти одобрение комитета и появиться на stage 1.
Google Docs
Map#updateOrInsert
Map#updateOrInsert Bradley Farias - GoDaddy
Nullish Coalescing (stage 2 по результатам июньской встречи) попробует перейти на stage 3.
Слайды: https://onedrive.live.com/view.aspx?resid=5D3264BDC1CB4F5B!5285&ithint=file%2cpptx&authkey=!AC0xl44ouDVFxEM
Слайды: https://onedrive.live.com/view.aspx?resid=5D3264BDC1CB4F5B!5285&ithint=file%2cpptx&authkey=!AC0xl44ouDVFxEM
GitHub
GitHub - tc39/proposal-nullish-coalescing: Nullish coalescing proposal x ?? y
Nullish coalescing proposal x ?? y. Contribute to tc39/proposal-nullish-coalescing development by creating an account on GitHub.
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
Там есть занятные документы, некоторые в процессе имплементации, например, HTML Modules (import .. from 'foo.html') или вынос скролинга из основного потока в Chromium
GitHub
GitHub - MicrosoftEdge/MSEdgeExplainers: Home for explainer documents originated by the Microsoft Edge team
Home for explainer documents originated by the Microsoft Edge team - MicrosoftEdge/MSEdgeExplainers
Предложение Built-in Modules будет вновь пытаться пройти на stage 2 на июльской встрече #TC39.
Слайды: https://github.com/tc39/proposal-javanoscript-standard-library/blob/master/slides/JSL-TC39-July-2019.pdf
Слайды: https://github.com/tc39/proposal-javanoscript-standard-library/blob/master/slides/JSL-TC39-July-2019.pdf
GitHub
GitHub - tc39/proposal-built-in-modules
Contribute to tc39/proposal-built-in-modules development by creating an account on GitHub.
Два предложения от Ron Buckton из команды TypeScript RegExp Match Offsets и Explicit Resource Management будут пытаться перейти на stage 2 и stage 1 соответственно
GitHub
GitHub - tc39/proposal-regexp-match-indices: ECMAScript RegExp Match Indices
ECMAScript RegExp Match Indices. Contribute to tc39/proposal-regexp-match-indices development by creating an account on GitHub.
Новое предложение Infix Bang попытается перейти на stage 1. Но что-то есть большие сомнения.
GitHub
GitHub - tc39/proposal-wavy-dot: TC39 Wavy Dot ("~.") Proposal
TC39 Wavy Dot ("~.") Proposal. Contribute to tc39/proposal-wavy-dot development by creating an account on GitHub.
Больше предложения, которые собираются продвигаться, в адженду не принимаются, так что основная программа июльской встречи #TC39 сформирована и находится тут.
GitHub
agendas/2019/07.md at main · tc39/agendas
TC39 meeting agendas. Contribute to tc39/agendas development by creating an account on GitHub.
Вебня
На посвященной React Native конференции Chain React, проходящей сейчас в Портланде, был представлен JavaScript движок Hermes. Этот движок разработан в компании Facebook для быстрого старта приложений и экономии памяти на платформе Android, использует только…
А вот и статья о Hermes в блоге Facebook https://code.fb.com/android/hermes/
Engineering at Meta
Hermes: An open source JavaScript engine optimized for mobile apps, starting with React Native
Mobile applications are growing larger and more complex. Larger apps using JavaScript frameworks often experience performance issues as developers add features and complexity. These issues are gene…
Отличная статья – Is postMessage slow?
Принцип работы, бенчмарки, цифры, графики, альтернативные решения, камео WebAssembly+Rust – все как надо: https://dassur.ma/things/is-postmessage-slow/
Принцип работы, бенчмарки, цифры, графики, альтернативные решения, камео WebAssembly+Rust – все как надо: https://dassur.ma/things/is-postmessage-slow/
dassur.ma
Is postMessage slow? — surma.dev
No, not really. (It depends.)
Никита Сковорода о недавно обнаруженной им уязвимости в yarn, в результате которой токен аутентификации отправлялся по незашифрованному HTTP соединению для некоторых scoped пакетов.
https://github.com/ChALkeR/notes/blob/master/Yarn-vuln.md
https://github.com/ChALkeR/notes/blob/master/Yarn-vuln.md
GitHub
notes/Yarn-vuln.md at master · ChALkeR/notes
Some public notes. Contribute to ChALkeR/notes development by creating an account on GitHub.
Опубликовано обновление CSS Syntax Module Level 3 (Candidate Recommendation)
Ключевые изменения:
- Идентификаторы могут начинаться с двойного тире (влияние custom properties, но подобное именование может добавиться и в прелюдиях директив, например, в @property)
- Убрали <unicode-range-token>, вместо него добавлен <urange> микросинтаксис (из-за проблем в раборе селекторов с комбинатором
- Добавили определение производных типов <declaration-value> и <any-value>, которые можно встретить в других спеках
- @charset теперь официально не правило, хотя выглядит похоже (это деректива, которая не представлена в CSSOM отдельным объектом, как другие)
И множество других правок и дополнений.
Так совпало, что в недавнем обновлении парсера css-tree, большая часть изменений уже поддержана (тогда изменения были в черновике) – на специальном стенде можно посмотреть как разбиваются значения на токены и матчатся на синтаксисы
Ключевые изменения:
- Идентификаторы могут начинаться с двойного тире (влияние custom properties, но подобное именование может добавиться и в прелюдиях директив, например, в @property)
- Убрали <unicode-range-token>, вместо него добавлен <urange> микросинтаксис (из-за проблем в раборе селекторов с комбинатором
+, реальный баг в Firefox)- Добавили определение производных типов <declaration-value> и <any-value>, которые можно встретить в других спеках
- @charset теперь официально не правило, хотя выглядит похоже (это деректива, которая не представлена в CSSOM отдельным объектом, как другие)
И множество других правок и дополнений.
Так совпало, что в недавнем обновлении парсера css-tree, большая часть изменений уже поддержана (тогда изменения были в черновике) – на специальном стенде можно посмотреть как разбиваются значения на токены и матчатся на синтаксисы
GitHub
[css-properties-values-api] Add @property. by andruud · Pull Request #847 · w3c/css-houdini-drafts
This adds basic support for @property, without solving any of the potentially complicated issues, like #845 and #846.
Resolves #137, at least partially.
Resolves #137, at least partially.
Статья: Font-size: An Unexpectedly Complex CSS Property
Про то как работает CSS свойтво
Про то как работает CSS свойтво
font-size с точки зрения спецификаций и сложности его имплементации в stylo (подпроект Servo, подсистемы Firefox). Хоть статье уже два года, она не теряет своей актуальности – полезно для понимания насколько CSS непростой с точки зрения браузера.manishearth.github.io
font-size: An unexpectedly complex CSS property
font-size is the worst. It’s a CSS property probably everyone who writes CSS has used at some point. It’s pretty ubiquitous. And it’s super complicated. “But it’s just a number”, you say. “How can …
Unicode Technical Committee (UTC) рассматривает механизм добавления цветов для emoji, что может позволить добавить, например, белое вино или чёрную кошку.
http://blog.unicode.org/2019/07/unicode-technical-committee-considers.html
http://blog.unicode.org/2019/07/unicode-technical-committee-considers.html
blog.unicode.org
Unicode Technical Committee Considers Emoji Color Mechanism
The Unicode Technical Committee (UTC) is discussing a mechanism for color changes to existing emoji characters. Such a mechanism could be u...
Alon Zakai, создатель Emnoscripten и Binaryen о том, как сделать #WebAssembly код асинхронным в userspace с помощью новой фичи в Binaryen — Asyncify.
https://kripken.github.io/blog/wasm/2019/07/16/asyncify.html
https://kripken.github.io/blog/wasm/2019/07/16/asyncify.html
kripken.github.io
Pause and Resume WebAssembly with Binaryen's Asyncify
Pausing and resuming code can be useful for various things, like implementing coroutines, async/await, limiting how much CPU time untrusted code gets, and so...
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
- WebAssembly Core Specification
- WebAssembly JavaScript Interface
- WebAssembly Web API