Результаты третьего дня июньской встречи #TC39 (первый день здесь, второй здесь)
Пропозал: Module attributes (stage 1 -> stage 2)
Слайды: https://docs.google.com/presentation/d/1MOVBh0gw7-tqEx-maEvS2HsgwXd5X5pcwL80V67xCIg
Мнения разделились, и некоторые делегаты посчитали, что атрибуты позволят инструментам разделить экосистему, также был поднят вопрос ограничения против расширяемости атрибутов. Остаётся на stage 1.
Пропозал: Built In Modules (stage 1 обновление)
Слайды: https://github.com/msaboff/tc39/blob/master/Built%20In%20Modules%20TC39%20June%202020.pdf
Практически все предыдущие проблемы (такие как способ поллифиллить встроенные модули) были решены. Некоторые высказывают опасения насчет дихотомии глобальных неймспейсов и встроенных модулей. Чемпион собирается просить stage 2 для пропозала на ближайших встречах.
Пропозал: Deep Path Properties in Record Literals (stage 0 -> stage 1)
Слайды: https://button.dev/talks/deep-path-properties-tc39-june-2020.pdf
Было много обсуждений и остались некоторые сомнения, но пропозал смог взять stage 1. Из забавного: упомянули такой термин как monocle-mustache оператор aka “
Пропозал: Restrict subclassing support in built-in methods (stage 0 -> stage 1)
Слайды: https://docs.google.com/presentation/d/1vJeJFueDwrj8ebXFdGsEO1J_Q-DzfU01dLEGVd26A9o
Проблемная область очень сложная и является трепетной темой для имплементоров. Пропозал взял stage 1, но будет сложно идти дальше, это понимают и чемпионы.
Пропозал: Async Context (stage 0 -> stage 1)
Слайды: https://docs.google.com/presentation/d/1c9gZv0e_3kITQI7Wwo2Cap3WviudORclE2dWsX4SIJ8
На самом деле это воскрешённая и слегка изменённая версия старого пропозала Zones, который так и не смог сдвинуться со stage 0. Zones были отозваны чемпионом, т.к. тот прекратил своё участие в TC39. Новый пропозал пока тоже не смог взять stage 1, продвижение было заблокировано сразу несколькими делегатами.
Пропозал: Intl Enumeration API (stage 0 -> stage 1)
Слайды: https://docs.google.com/presentation/d/17bkiVWuYxhMc24If72d6oENK3G6G-irO2EB4EEQCgxU/edit?usp=sharing
Были высказаны некоторые опасения относительно проблемы отслеживания пользователя (fingerprinting) через это API, но пропозал взял stage 1.
Пропозал: Module attributes (stage 1 -> stage 2)
Слайды: https://docs.google.com/presentation/d/1MOVBh0gw7-tqEx-maEvS2HsgwXd5X5pcwL80V67xCIg
Мнения разделились, и некоторые делегаты посчитали, что атрибуты позволят инструментам разделить экосистему, также был поднят вопрос ограничения против расширяемости атрибутов. Остаётся на stage 1.
Пропозал: Built In Modules (stage 1 обновление)
Слайды: https://github.com/msaboff/tc39/blob/master/Built%20In%20Modules%20TC39%20June%202020.pdf
Практически все предыдущие проблемы (такие как способ поллифиллить встроенные модули) были решены. Некоторые высказывают опасения насчет дихотомии глобальных неймспейсов и встроенных модулей. Чемпион собирается просить stage 2 для пропозала на ближайших встречах.
Пропозал: Deep Path Properties in Record Literals (stage 0 -> stage 1)
Слайды: https://button.dev/talks/deep-path-properties-tc39-june-2020.pdf
Было много обсуждений и остались некоторые сомнения, но пропозал смог взять stage 1. Из забавного: упомянули такой термин как monocle-mustache оператор aka “
.{“. По-моему забавно.Пропозал: Restrict subclassing support in built-in methods (stage 0 -> stage 1)
Слайды: https://docs.google.com/presentation/d/1vJeJFueDwrj8ebXFdGsEO1J_Q-DzfU01dLEGVd26A9o
Проблемная область очень сложная и является трепетной темой для имплементоров. Пропозал взял stage 1, но будет сложно идти дальше, это понимают и чемпионы.
Пропозал: Async Context (stage 0 -> stage 1)
Слайды: https://docs.google.com/presentation/d/1c9gZv0e_3kITQI7Wwo2Cap3WviudORclE2dWsX4SIJ8
На самом деле это воскрешённая и слегка изменённая версия старого пропозала Zones, который так и не смог сдвинуться со stage 0. Zones были отозваны чемпионом, т.к. тот прекратил своё участие в TC39. Новый пропозал пока тоже не смог взять stage 1, продвижение было заблокировано сразу несколькими делегатами.
Пропозал: Intl Enumeration API (stage 0 -> stage 1)
Слайды: https://docs.google.com/presentation/d/17bkiVWuYxhMc24If72d6oENK3G6G-irO2EB4EEQCgxU/edit?usp=sharing
Были высказаны некоторые опасения относительно проблемы отслеживания пользователя (fingerprinting) через это API, но пропозал взял stage 1.
⚡️ Новый пропозал Generic Comparison переходит на stage 1, но с условием, что это будет покрывать только массивы
GitHub
hemanth/proposal-generic-comparison
Proposal Generic Comparison . Contribute to hemanth/proposal-generic-comparison development by creating an account on GitHub.
⚡️ Новый пропозал .item() переходит на stage 1
GitHub
GitHub - tc39/proposal-relative-indexing-method: A TC39 proposal to add an .at() method to all the basic indexable classes (Array…
A TC39 proposal to add an .at() method to all the basic indexable classes (Array, String, TypedArray) - GitHub - tc39/proposal-relative-indexing-method: A TC39 proposal to add an .at() method to al...
Вебня
⚡️ Пропозал Module attributes не смог перейти на stage 2, но возможно к этой теме ещё вернутся завтра.
⚡️ Сегодня была вторая попытка для продвижения пропозала Module attributes (первая была вчера) иии stage 2 взят!
Инженеры, работающие над SpiderMonkey, написали о том, как они обновляли свой движок для регулярных выражений в коллаборации с командой V8.
https://hacks.mozilla.org/2020/06/a-new-regexp-engine-in-spidermonkey/
https://hacks.mozilla.org/2020/06/a-new-regexp-engine-in-spidermonkey/
Mozilla Hacks – the Web developer blog
A New RegExp Engine in SpiderMonkey
Regular expressions – commonly known as RegExps – are a powerful and heavily used tool for manipulating strings in JavaScript. This post describes how we updated the RegExp engine in ...
Исследователь безопасности Bhavuk Jain написал об обнаруженной им уязвимости нулевого дня в способе аутентификации Sign-in with Apple.
https://bhavukjain.com/blog/2020/05/30/zeroday-signin-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
Редакторы спецификации предложили уточнить использование терминологии относительно хоста и имплементации. Дискуссия остаётся открытой.
Пропозал: 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
Редакторы спецификации предложили уточнить использование терминологии относительно хоста и имплементации. Дискуссия остаётся открытой.
Microsoft начал распространять обновление для Windows 10, в котором Edge Legacy будет заменён новым Edge на основе Chromium.
https://support.microsoft.com/en-us/help/4541302/the-new-microsoft-edge-is-available
https://support.microsoft.com/en-us/help/4541302/the-new-microsoft-edge-is-available
Microsoft
The new Microsoft Edge is available for Windows 10, version 1903 and 1909
Describes that the new Microsoft Edge is available for Windows 10, version 1903 and 1909.
Патч с приватными полями классов только что был добавлен в кодовую базу WebKit!
https://bugs.webkit.org/show_bug.cgi?id=206431#c57
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/
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
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
Вероятнее всего к ним присоединится также Logical Assignment Operators
Обновление от 9.06.2020: пропозал Logic Assignment также запросит stage 4 на 77й встрече TC39
GitHub
agendas/07.md at main · tc39/agendas
TC39 meeting agendas. Contribute to tc39/agendas development by creating an account on GitHub.
Protect your resources from web attacks with Fetch Metadata — статья о том, как избежать различных cross-origin атак, правильно используя метаданные заголовков fetch.
https://web.dev/fetch-metadata/
https://web.dev/fetch-metadata/
web.dev
Protect your resources from web attacks with Fetch Metadata | Articles | web.dev
Fetch Metadata is a new web platform feature designed to allow servers to protect themselves from cross-origin attacks.
Experimenting with QuicTransport — статья о новом экспериметальном API, обеспечивающем двунаправленный обмен сообщениями с низкой задержкой (как без гарантий порядка сообщений, так и с ним). QuicTransport доступен в Chromium под origin trial.
https://web.dev/quictransport/
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
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
https://bugzilla.mozilla.org/show_bug.cgi?id=1639246#c8
bugzilla.mozilla.org
1639246 - Ship weak refs
ASSIGNED (jcoppeard) in Core - JavaScript: GC. Last updated 2020-06-09.
Прямо сейчас Yulia Startsev из Mozilla снова ведёт стрим, в этот раз о прошедшей встрече #TC39 и о работе комитета
https://www.twitch.tv/codehag
https://www.twitch.tv/codehag
Twitch
codehag - Twitch
Hi everyone! This channel is an experiment, to see if this format works well for people. My name is yulia, aka YSV aka codehag AKA ioctaptceb. I work on Firefox's SpiderMonkey Compiler and I want to help people learn about compilers and standards, so I created…