Вебня
4.66K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Опубликовано обновление 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, что может позволить добавить, например, белое вино или чёрную кошку.
https://blog.unicode.org/2019/07/unicode-technical-committee-considers.html
Alon Zakai, создатель Emscripten и 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
Специалист по компьютерной безопасности Patrick Ventuzelo описывает реверс инжиниринг #WebAssembly модуля в сервисе заметок Google Keep.
https://webassembly-security.com/google-keep-webassembly-module-analysis/
Уже сегодня в 17:00 UTC / 10:00 PDT (в 20:00 по Москве / Киеву / Минску) начнется 71 заседание #TC39, которое пройдет в Редмонде, где эту встречу примет компания Microsoft. Встреча будет проходить с 23 по 25 июля. Повестку дня можно найти как всегда на GitHub https://github.com/tc39/agendas/blob/master/2019/07.md.
Changing a way we’re viewing JSON in a browser
Статья про JsonDiscovery – полезное расширение (плагин) для Chrome и Firefox для просмотра (и не только) JSON. Расширение пилит Денис Колесников. В статье рассказно о фичах, с картинками и короткими видео, которые могут вам зайти и оказаться полезными
1 августа мы делаем уже второй WebAssembly Moscow meetup, на котором выступят Илья Черторыльский из Райффайзен банк, Николай Вольф из Parity, а также Dan Gohman из Mozilla (доклад будет читаться на английском языке в режиме телеконференции). Dan является автором WASI и председателем соответствующей подгруппы в #WebAssembly CG.

Все подробности по ссылке:
https://webassembly-moscow.timepad.ru/event/1025337/

Если у Вас есть что рассказать на следующих митапах, то пишите мне в личку @chicoxyzzy или ищите в @webassembly_ru
Основные результаты первого дня июльской встречи #TC39.
- Nullish Coalescing переходит на stage 3 (слайды)
- доклад и обсуждение Explicit Resource Management вышли за указанные временные рамки, обсуждение продолжится позже (слайды)
- Symbol.reverse and related methods for Array, Map, and Set переходит на stage 1 с предложением не имплементировать Symbol.reverse, а просто добавить соответствующие методы к коллекциям
- ECMA402 предложение Intl.DisplayNames было убрано чемпионом из повестки дня в связи с обнаруженными проблемами и остается на stage 2
- у function.sent новый чемпион, который будет помогать двигать пропозал дальше
- так и не представленное комитету предложение Annex B — HTML Attribute Event Handlers было решено сделать неактивным
Основные результаты второго дня июльской встречи #TC39.
- Promise.allSettled переходит на stage 4, а значит попадет в ES2020 (слайды)
- Promise.any переходит на stage 2 (слайды)
- предложение String.prototype.replaceAll не нашло консенсуса (по поведению /g, возможно будут фиксить и matchAll позже) и остается на stage 2 (слайды)
- RegExp Match array offsets отправляется на stage 3 (слайды)
- предложение Iterator Methods отправляестся на stage 2 (слайды)
- Built-in modules снова не переходят на stage 2 и остаются на stage 1 (слайды)
- пропозал Collection Normalization получил некоторое обновление и остается на stage 2 (слайды)
- function implementation hiding также обновился и остается на stage 2 (слайды)
Вышел Safari Technology Preview 88. Основные изменения:
- ECMA402 пропозалы Intl.PluralRules и Intl.NumberFormat.prototype.formatToParts теперь включены по умолчанию
- исправления в таких API как WebRTC, XHR, Pointer Events
- улучшения рендерера, доступности и веб инспектора
- очередные наработки WebGPU

Весь список изменений:
https://webkit.org/blog/9445/release-notes-for-safari-technology-preview-88/
Основные результаты третьего дня июльской встречи #TC39.
- Optional Chaining переходит на stage 3 (слайды)
- Dynamic Import Host Adjustment переходит на stage 1 (слайды)
- Dynamic Code Brand Checks остается на stage 1 (у комитета сомнения насчет абстрактной операции IsCodeLike) (слайды)
- новое предложение Map.prototype.updateOrInsert переходит на stage 1 (слайды)
- новое предложение Infix bang было воспринято с большим сомнением, как я и предсказывал, и пока что никуда не переходит
- Explicit Resource Management, который не успели обсудить в первый день, после продолжения обсуждений переходит на stage 2
⚡️⚡️⚡️

Июльская встреча #TC39 в Microsoft закончена. Результаты можно посмотреть в записях выше по дням (первый, второй, третий). Самое главное — Promise.allSettled переходит на stage 4 и попадает в ES2020, а предложения Nullish Coalescing и Optional Chaining переходят на stage 3, а значит скоро их можно ждать в движках и TypeScript (плагины для Babel уже есть). Следующуя встреча пройдет в Нью-Йорке с 1 по 3 октября. Принимающей компанией станет Bloomberg.
На Hexlet вышла статья “Стоит ли учить JavaScript: перспективы, ситуация на рынке труда, мнения экспертов”, в которой есть мнения ведущих этого канала, а также GraphQL гуру Павла Черторогова, опытнейшего дизайнера и разработчика в одном лице — Андрея Оконечникова и архитектора из Tinkoff Александра Казаченко.
Предложение Frozen Realms (stage 1), которое не обновлялось с марта 2018, было переименовано в Secure ECMAScript (SES)
Стандарт для арифметики с плавающей точкой IEEE 754-2008, используемый в JavaScript, C++ и многих других языках, истек. Ему на смену пришел IEEE 754-2019. Основные изменения можно найти здесь: https://754r.ucbtest.org/background/
JavaScript движок XS для интернета вещей недавно обновился до версии 9.0.0 и получил поддержку таких фич как:
- Class Fields
- Private Methods
- Static Class Features
- Numeric separators
- Dynamic Import
- Import Metadata
- globalThis
- String.prototype.matchAll
- Promise.allSettled
- Hashbang Grammar
Также в XS появилась экспериментальная поддержка SES (stage 1) для возможности дать ранний фидбек по пропозалу.