Вебня
4.7K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Несколько часов назад BigInt и Promise.allSettled попали в спецификацию ES2020🎉
W3C опубликовал Strategic Highlights от сентября 2019. Довольно интересный документ о результатах работы различных W3C групп и их планах на будущее.
Уже завтра в 10:00 EDT начнется 72 встреча #TC39, которая пройдёт в Нью-Йоркском офисе Bloomberg. Список тем как всегда на GitHub:
https://github.com/tc39/agendas/blob/master/2019/10.md

Обновления по Class Fields, Private Methods и Static Class Features переносятся на следующую встречу.
5 дней назад вышел Ember 3.13, в котором появилась preview поддержка Octane (стабильная версия Octane, большого обновления фреймворка, появится уже в следующей версии Ember 3.14). Это 2019 и теперь вы можете использовать нативные классы (и не тащить реализацию старых компонентов), угловые скобки в шаблонах и даже не тащить jQuery вместе с Ember! 😄
2 свежих статьи в блоге web.dev:
- Preloading responsive images — о фиче, появившейся в Chrome 73 и позволяющей ускорить загрузку сайта за счет предзагрузки изображений нужного размера
- Fixing layout instability — о том, как сократить время, которое требуется на сдвиг из-за асинхронного релэйаутинга
Очень печальная новость — Доменик Деникола, человек, сделавший огромный вклад в ECMAScript, прекращает своё участие в #TC39, в связи с чем три его предложения в спецификацию уходят в список неактивных:
- Normative ICU Reference
- Zones
- Blöcks
Для остальных предложений с его участием найдены или ищутся другие чемпионы.
Компания Mozilla открыла новый канал для разработчиков на YouTube. Среди первых выложенных видео три руководства по CSS. Подробнее об этом, а также саи видео в статье https://hacks.mozilla.org/2019/10/video-shorts-from-mozilla-developer/
Эрик Лоуренс (Microsoft Edge) о включении Same-Site Cookies по умолчанию в Chrome 80, а также о том:
- как эта директива (а также secure и httponly) поможет с приватностью и безопасностью: запретит куки от третьих лиц, предотвратит CSRF, MiTM атаки, XSS атаки
- что может пойти не так
- каков план отката
- как проверить свой сайт на готовность к SameSite используя Chrome DevTools
- других возможных проблемах (Safari 12, .NET Framework)
- что об этом думают другие вендоры браузеров

Бонус:
- статья о SameSite cookies от Google
- поддержка SameSite в браузерах на CanIUse
Вот уже час как идёт первый день октябрьской встречи #TC39 в Нью-Йорке. Сегодня из возможных продвижений пропозалов в повестке только Records & Tuples (со stage 0 на stage 1), в остальном апдейты и нормативные изменения, так что результаты опубликую по окончанию встречи (а скорее всего уже завтра). Пока что предлагаю ознакомиться со слайдами к презентации Records & Tuples, которая пройдёт практически в самом конце этого дня встречи.
Итоги первого дня октябрьской встречи #TC39:

- 📌 апдейт ECMA262 от редактора (который, кстати, остался один, т.к. Кевин Смит из Microsoft от своей роли редактора отказался)
- 📌 апдейт ECMA402, в котором можно узнать о создании подгруппы для работой над FormatMessage
- 📌 апдейт TEST262
- консенсус по нормативному изменению Evaluate all computed names before any values in object literals не был достигнут
- консенсус по нормативному изменению Remove ToUint32 from array literal evaluation был достигнут и PR уже влит в спецификацию
- консенсус по нормативному изменению Prevent DFS invariants from being broken был достигнут
- консенсус по нормативному изменению Redefine CatchParameter as FormalParameter не был достигнут, было оформить перенести данное нормативное как отдельное предложение в спецификацию
- консенсус по нормативному изменению Strengthening Atomics.wait and Atomics.notify был достигнут
- 📌 апдейт по Optional Chaining и Nullish Coalescin — оба будут представлены для перехода на stage 4 на декабрьской встрече #TC39
- 🚀предложение Object.map переходит со stage 0 на stage 1, но скорее всего не будет методом в Object
- 🚀предложение Records & Tuples переходит со stage 0 на stage 1
- 📌 был представлен доклад Grammar Validity
- 📌 апдейт по Top-level await, у него всё хорошо
- 🚀предложение globalThis, которое уже давно реализовано во всех движках, отправляется на stage 4, а значит попадёт в ES2020
- 🚀 предложение for-in order переходит со stage 2 на stage 3

Очень продуктивный день, комитет сделал гораздо больше, чем изначально планировалось.
Все 3 спецификации #WebAssembly перешли из статуса Candidate Recommendation в статус Proposed Recommendation:
- WebAssembly Core Specification
- WebAssembly JavaScript Interface
- WebAssembly Web API
Все последние правки в эти спецификации принимаются до 27 октября, после чего будет инициирован их переход в (финальный) статус W3C Recommendation.
Разработчики Chromium рассказали о своих планах по выключению TLS 1.0 и 1.1. Напомню, что в Safari Technology Preview и Firefox Nightly устаревшие небезопасные версии протокола уже отключены. Ранее я также публиковал тут новость со статьёй о том, как проверить свои сайты на поддержку TLS 1.2 и 1.3.
Через 2 часа начнётся второй день #TC39. Сегодня повестка дня выглядит вот так (в часовой зоне EDT):
• 10:00-11:00
◦ 15m Promise.any for Stage 3 Mathias Bynens
◦ 15m Reduce the amount of implementation-defined behavior in Array.prototype.sort (comment) Mathias Bynens
◦ 30m String.prototype.replaceAll for Stage 3 Mathias Bynens
• [optional] break (5 minutes)
• 11:05-12:05
◦ 30m Update on sequence property escapes in Unicode regular expressions Mathias Bynens
◦ 30m Proposal Disclosure Policy Michael Saboff
• lunch (60 minutes)
• 13:05-14:35
◦ 30m Revisit ECMA-402 casing conventions Shane Carr
◦ 30m Map#upsert , previously Map#insertOrUpdate for Stage 2 Erica Pramer
◦ 30m Update on Temporal Philipp Dunkel
• break (10 minutes)
• 14:45-15:45
◦ 30m Declarations in Conditionals for Stage 1 Devin Rousso
◦ 30m Intl.DisplayNames for Stage 3 Frank Tang
• break (15 minutes)
• 16:00-17:00
◦ 15m Update on RegExp Match Indices Ron Buckton


Первым же будет обсуждаться пропозал Promise.any, над текстом спецификации которого я работал, и как раз исправил в ней (надеюсь что) последний баг. 😬

Результаты предыдущего дня встречи комитета читайте тремя сообщениями выше.
Спустя примерно год разработки, вышел Preact X. Среди новых фич:
- Фрагменты
- componentDidCatch
- preact/hooks addon
- preact/test-utils addon
- createContext API
- полная совместимость с React из коробки (ранее требовался слой совместимости в виде preact/compat)
При этом размер библиотеки остался так же 3кб.
Итоги второго дня октябрьской встречи #TC39:

- предложение Promise.any пока остаётся на stage 2 (сегодня будет дополнительное обсуждение)
- консенсус по нормативному изменению Reduce the amount of implementation-defined behavior in Array.prototype.sort достигнут
- 🚀 String.prototype.replaceAll переходит со stage 2 на stage 3
- апдейт sequence property escapes in Unicode regular expressions (stage 2) — есть прогресс, нужно решить еще некоторые вопросы
- 📌 Proposal Disclosure Policy — не очень понятно как это сделать и кто именно должен этим заниматься (явно не сам TC39, возможно ExeCom или GA)
- Revisit ECMA-402 casing conventions — документ заапрувлен
- 🚀 Map.prototype.upsert переходит со stage 2 на stage 3
- 📌 апдейт Temporal (stage 2) — всё идёт по плану
- 🚀 Declarations in Conditionals переходит на stage 1
- 🚀 Intl.DisplayNames переходит со stage 2 на stage 3
- 📌 RegExp Match Indices в декабре будет пытаться взять stage 4, ожидает имплементации в JavaScriptCore (движке WebKit/Safari) или SpiderMonkey (движке Firefox)
- Unifying private field errors — имена, начинающиеся с решётки будут всплывать (hoist), чтобы не было TDZ и ReferenceError.

Итоги первого дня можно найти тут.
Вышел Safari Technology Preview 93. Включает в основном правки багов. Ознакомиться со списком изменений можно тут:
https://webkit.org/blog/9600/release-notes-for-safari-technology-preview-93/