Вебня
4.66K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Вебня
⚡️ Пропозал Module attributes не смог перейти на stage 2, но возможно к этой теме ещё вернутся завтра.
⚡️ Сегодня была вторая попытка для продвижения пропозала Module attributes (первая была вчера) иии stage 2 взят!
76я встреча #TC39 официально закончилась. Результаты четвёртого дня опубликую завтра. Полный обзор всех изменений в удобном виде скорее всего уже в выходные. Следующая встреча пройдёт 20-23 июля.
Инженеры, работающие над SpiderMonkey, написали о том, как они обновляли свой движок для регулярных выражений в коллаборации с командой V8.

https://hacks.mozilla.org/2020/06/a-new-regexp-engine-in-spidermonkey/
Исследователь безопасности Bhavuk Jain написал об обнаруженной им уязвимости нулевого дня в способе аутентификации Sign-in with Apple.

https://bhavukjain.com/blog/2020/05/30/zeroday-signin-with-apple/
Результаты четвёртого дня июньской встречи #TC39 (первый день здесь, второй здесь, третий тут)


Пропозал: Realms (stage 2 обновление)
Слайды: https://docs.google.com/presentation/d/1TfVtfolisUrxAPflzm8wIhBBv_7ij3KLeqkfpdvpFiQ

Кажется наконец-то этот важный пропозал начинает уверенное движение к stage 3. Перед этим необходимо согласовать дизайн с рабочей группой HTML и W3C TAG.


Пропозал: Smart Unit Preferences in Intl.NumberFormat (stage 0 -> stage 1)
Слайды: https://bit.ly/intl-number-format-usage

Эта фича позволит использовать локализованные единицы измерения, например, километры для измерения расстояния в России и мили для США. Отдельно интересно, что докладчику был задан вопрос о том, как пользователь сможет переопределить единицы измерения. На этот вопрос ответил председатель TG2 Shane Carr, который, как оказалось, готовит черновик пропозала для пользовательских предпочтений. Интересно! Ну а smart unit preferences взяли stage.


Пропозал: Intl.Segmenter (stage 2 обновление)
Слайды: https://docs.google.com/presentation/d/1Pe9eVhgK93cgB3KCufTQvzqCjIYj3RRxJaOeNIbWN_A

Вообще этот пропозал собирался брать stage 3, но чемпион не успел заявить его на продвижений до дедлайна (10 дней до начала встречи TC39). Но кажется пропозал требует уточнения, и возможно не продвинулся бы в любом случае. Надеюсь, что скоро всё же увидим Intl.Segmenter на stage 3, потому что в своей работе не раз испытывал необходимость в таком API.


Пропозал: Generic Comparison (stage 0 -> stage 1)
Слайды: https://docs.google.com/presentation/d/1OO3QwtP4S0SOXGW9m4pdgG_CHo2eCz0sA6u3NXAgb9M/edit?usp=sharing

Переходит на stage 1, но с условием, что он будет покрывать только массивы


Пропозал: .item() (stage 0 -> stage 1)
Слайды: https://docs.google.com/presentation/d/1vRjhR1Vl9GeOeXno-s8DkQppeZFE3xx59Od91HG6db4/edit

Пропозал для того, чтобы брать элементы массива с конца, который все ждут много лет, переходит на stage 1.


Обсуждение: Incubation call chartering
Слайды: <отсутствуют>

Не так давно в рамках TC39 стали проводить отдельные созвоны, позволяющие решить какие-то важные вопросы по конкретным пропозалам или затрагивающие несколько пропозалов. Это должно позволить решать различные проблемы еще до встречи TC39. Созвоны проводятся в течение часа раз в две недели. к участию были приглашены чемпионы пропозалов, которые столкнулись с критикой или недопониманием и все заинтересованные делегаты и приглашенные эксперты.


Пропозал: Module attributes (stage 1 -> stage 2)
Слайды: https://docs.google.com/presentation/d/1MOVBh0gw7-tqEx-maEvS2HsgwXd5X5pcwL80V67xCIg/edit#slide=id.g8634fc5940_28_0

Короткая презентация о решении проблем, озвученных в третий день встречи (ограничение возможностей атрибутов) всё же привела к консенсусу и stage 2.


Обсуждение: Editorial Direction
Слайды: https://docs.google.com/presentation/d/14NsIoRhr-z7HvRG0laq_F2c4iNPHF-Ld17-Yibshdo0

Редакторы спецификации предложили уточнить использование терминологии относительно хоста и имплементации. Дискуссия остаётся открытой.
Вебня pinned «Результаты четвёртого дня июньской встречи #TC39 (первый день здесь, второй здесь, третий тут) Пропозал: Realms (stage 2 обновление) Слайды: https://docs.google.com/presentation/d/1TfVtfolisUrxAPflzm8wIhBBv_7ij3KLeqkfpdvpFiQ Кажется наконец-то этот важный…»
Microsoft начал распространять обновление для Windows 10, в котором Edge Legacy будет заменён новым Edge на основе Chromium.

https://support.microsoft.com/en-us/help/4541302/the-new-microsoft-edge-is-available
Патч с приватными полями классов только что был добавлен в кодовую базу WebKit!

https://bugs.webkit.org/show_bug.cgi?id=206431#c57
Несколько статей с обсуждением нового (на самом деле не такого уж и нового) тренда — сканирование портов, которое используется в основном сайтами электронной коммерции и банками для проверки безопасности (удалённое подключение), антифрауда и/или сбора информации (фингерпринтинга) пользователей.

https://nullsweep.com/why-is-this-website-port-scanning-me/
https://blog.nem.ec/2020/05/24/ebay-port-scanning/
Axel Rauschmayer продолжает свой цикл статей о TypeScript. На этот раз он написал о type assertions как о самом крайнем способе точечно подменить тип.

https://2ality.com/2020/06/type-assertions-typescript.html
⚡️ На 77й встрече #TC39, которая пройдёт 20-23 июля, уже как минимум два пропозала будут представлены к переходу на stage 4. Это Promise.any & AggregateError и WeakRefs 🔥
Вероятнее всего к ним присоединится также Logical Assignment Operators

Обновление от 9.06.2020: пропозал Logic Assignment также запросит stage 4 на 77й встрече TC39
Protect your resources from web attacks with Fetch Metadata — статья о том, как избежать различных cross-origin атак, правильно используя метаданные заголовков fetch.

https://web.dev/fetch-metadata/
Experimenting with QuicTransport — статья о новом экспериметальном API, обеспечивающем двунаправленный обмен сообщениями с низкой задержкой (как без гарантий порядка сообщений, так и с ним). QuicTransport доступен в Chromium под origin trial.

https://web.dev/quictransport/
TypeScript: narrowing types via type guards and assertion functions — очередня статья от Axel Rauschmayer. В этот раз об уточнении типов.

https://2ality.com/2020/06/type-guards-assertion-functions-typescript.html#assertion-functions
WeakRefs (stage 3) только что были включены по умолчанию в Firefox Nightly 79, ждём билд.

https://bugzilla.mozilla.org/show_bug.cgi?id=1639246#c8
Новый ECMAScript пропозал await.ops (stage 0), добавляющий синтаксический сахар для работы с массивами промисов. Будет представлен комитету в июле.
Вчера прошла встреча #WebAssembly CG, на которой проголосовали за обобщения пропозала Module Types в Module Linking и перевода его на stage 1 (вот слайды). Также был представлен новый пропозал Numeric Values in WAT Data Segments и обсуждалась возможность убрать аннотации типов для ref.is_null.
Валидация внешних данных на TypeScript. Очередная статья из серии про TypeScript от Axel Rauschmayer.

https://2ality.com/2020/06/validating-data-typescript.html