Разработчики Edge и Chrome обновили внешний вид элементов форм в Chromium. Эти изменения можно включить флагом
https://blog.chromium.org/2020/03/updates-to-form-controls-and-focus.html
chrome://flags/#form-controls-refresh. На десктопах они появятся по умолчанию в Chrome 83, а на Android позже.https://blog.chromium.org/2020/03/updates-to-form-controls-and-focus.html
Chromium Blog
Updates to Form Controls and Focus
HTML form controls provide the backbone for much of the web's interactivity. They're easy for developers to use, have built-in accessibilit...
В блоге V8 вышла статья о сжатии указателей в движке. Вместо 64-битных указателей используются отступы в 32 байта, компрессия и декомпрессия которых происходит при записи и чтении. Это позволило уменьшить размер кучи примерно на 40% на популярных сайтах, что в свою очередь уменьшило потребление памяти процесса рендерера на 20%. Кроме того, снизилась утилизация центрального процессора и время работы сборщика мусора.
Ross Kirsling, разработчик из Sony в команде WebKit, некоторое время назад в IRC канале TC39 вместе с другими делегатами обсуждал особености пункта 3.3 дополнения B в спецификации ECMA-262 — Block-Level Function Declarations Web Legacy Compatibility Semantics, которое браузеры должны имплементировать для сохранения совместимости со старыми сайтами. Обсуждения этой одной из самых непредсказуемых частей спецификации вылилось в статью, о которой уже успел написать Defront.
Forwarded from Defront — про фронтенд-разработку и не только
Росс Кирслинг — участвует в разработке спецификации ECMAScript — написал статью про самую ужасающую часть спецификации — "Tales from "Ecma's Crypt": Annex B.3.3".
В JavaScript всегда была возможность использовать блоки (
Довольно сложно уместить подробный разбор статьи в небольшой пост, поэтому рекомендую заглянуть в источник, если вас заинтересовал этот кейс.
#js #specification
https://dev.to/rkirsling/tales-from-ecma-s-crypt-annex-b-3-3-56go
В JavaScript всегда была возможность использовать блоки (
{} ) не только с операторами if, while, for, но и как обособленную синтаксическую конструкцию (standalone block). Спецификация не описывала ситуацию, когда внутри блока определялась функция, поэтому исторически в разных браузерах этот сценарий был реализован по-разному. Для исправления этой проблемы в спецификацию был добавлен раздел, который фактически говорит о том, что определение функции внутри блока должно себя вести одновременно как var и let. Например, вот этот код не в strict-режиме выведет в консоль 1:var a = -1;
(function () {
const printOuter = () => console.log(a);
{
a = 1;
function a() {}
a = 2;
printOuter();
}
})();
Довольно сложно уместить подробный разбор статьи в небольшой пост, поэтому рекомендую заглянуть в источник, если вас заинтересовал этот кейс.
#js #specification
https://dev.to/rkirsling/tales-from-ecma-s-crypt-annex-b-3-3-56go
DEV Community
Tales from "Ecma's Crypt": Annex B.3.3 👻
Arguably the most horrifying part of the ECMAScript specification concerns the question: "What happ...
🦠 Сегодня было принято окончательное решение о том, что 76я встреча #TC39, которая должна была пройти со 2 по 4 июня в чикагском офисе PayPal, также будет полностью удалённой из-за карантинных мер и угрозы распространения коронавирусной инфекции.
📅 Последующие запланированные встречи в данный момент остаются оффлайновыми.
21-23 июля — Redmond, Microsoft
22-24 сентября — Tokyo, Bloomberg
17-19 ноября — Budapest, IBM
👀 Также сегодня начнётся 75я встреча TC39, которая также будет полностью удалённой (изначально должна была пройти в Купиертино, Apple), на которой я как всегда буду присутствовать и расскажу всё из первых уст. Актуальную повестку дня можно посмотреть тут.
📅 Последующие запланированные встречи в данный момент остаются оффлайновыми.
21-23 июля — Redmond, Microsoft
22-24 сентября — Tokyo, Bloomberg
17-19 ноября — Budapest, IBM
👀 Также сегодня начнётся 75я встреча TC39, которая также будет полностью удалённой (изначально должна была пройти в Купиертино, Apple), на которой я как всегда буду присутствовать и расскажу всё из первых уст. Актуальную повестку дня можно посмотреть тут.
GitHub
agendas/2020/03.md at main · tc39/agendas
TC39 meeting agendas. Contribute to tc39/agendas development by creating an account on GitHub.
В Firefox Nightly 76 включили AudioWorklet API по умолчанию.
https://bugzilla.mozilla.org/show_bug.cgi?id=1616723
https://bugzilla.mozilla.org/show_bug.cgi?id=1616723
bugzilla.mozilla.org
1616723 - set "dom.audioworklet.enabled" on Nightly
RESOLVED (karlt) in Core - Web Audio. Last updated 2020-03-30.
#WebAssembly Custom Annotation Syntax перемещается на phase 3 (фаза имплементации) по результатам встречи Community Group 31 марта.
GitHub
GitHub - WebAssembly/annotations: Proposal for Custom Annotation Syntax in the Text Format
Proposal for Custom Annotation Syntax in the Text Format - GitHub - WebAssembly/annotations: Proposal for Custom Annotation Syntax in the Text Format
Доброе утро. Немного апрельских новостей по релизам.
- Python 2 🐍 вроде как всё 💀 (но сперва должна выйти еще версия 2.7.18, спасибо @bro0ke).
- Node.js 10 LTS 🐢🚀 в этом месяце переходит в статус Maintainance, а 21 апреля ожидается релиз Node.js 14.
- сегодня или завтра должен произойти feature freeze ES2020 🧊 и мастер должен будет стать ES2021 (но с этим есть некоторые проблемы, об этом сегодня позже в отчете о первом дне встречи TC39)
- релиза Chrome 82, который был намечен на 28 апреля, не будет 🦠
- 7 апреля выйдет Firefox 75, в котором появится поддержка публичных статических полей классов
- Python 2 🐍 вроде как всё 💀 (но сперва должна выйти еще версия 2.7.18, спасибо @bro0ke).
- Node.js 10 LTS 🐢🚀 в этом месяце переходит в статус Maintainance, а 21 апреля ожидается релиз Node.js 14.
- сегодня или завтра должен произойти feature freeze ES2020 🧊 и мастер должен будет стать ES2021 (но с этим есть некоторые проблемы, об этом сегодня позже в отчете о первом дне встречи TC39)
- релиза Chrome 82, который был намечен на 28 апреля, не будет 🦠
- 7 апреля выйдет Firefox 75, в котором появится поддержка публичных статических полей классов
В V8 началась работа по имплементации пропозала Promise.any (stage 3)
https://bugs.chromium.org/p/v8/issues/detail?id=9808#c10
https://bugs.chromium.org/p/v8/issues/detail?id=9808#c10
GitHub
GitHub - tc39/proposal-promise-any: ECMAScript proposal: Promise.any
ECMAScript proposal: Promise.any. Contribute to tc39/proposal-promise-any development by creating an account on GitHub.
Вышла третья часть из серии Understanding the ECMAScript spec о том, как читать и понимать спецификацию.
Предыдущие части:
- первая
- вторая
Предыдущие части:
- первая
- вторая
v8.dev
Understanding the ECMAScript spec, part 3 · V8
Tutorial on reading the ECMAScript specification
В блоге WebKit вышла статья обо всех нововведениях в Safari 13.1. Список внушительный:
- Pointer and Mouse Events on iPadO
- Web Animations API
- Async Clipboard API
- JavaScript Improvements
- ResizeObserver
- HTML enterkeyhint Attribute
- CSS Shadow Parts
- More CSS Additions
- Media APIs
- Subtitles and Captions
- WebRTC Legacy Audio and Proxy Support
- Performance Improvements
- Security Improvements
- Intelligent Tracking Prevention Updates
- Web Platform Quality Improvements
- Web Inspector Updates
- Customized AR QuickLook
- Pointer and Mouse Events on iPadO
- Web Animations API
- Async Clipboard API
- JavaScript Improvements
- ResizeObserver
- HTML enterkeyhint Attribute
- CSS Shadow Parts
- More CSS Additions
- Media APIs
- Subtitles and Captions
- WebRTC Legacy Audio and Proxy Support
- Performance Improvements
- Security Improvements
- Intelligent Tracking Prevention Updates
- Web Platform Quality Improvements
- Web Inspector Updates
- Customized AR QuickLook
WebKit
New WebKit Features in Safari 13.1
This year’s spring releases of Safari 13.1 for macOS Catalina, iPadOS, iOS, and watchOS bring a tremendous number of WebKit improvements for the web across Apple’s platforms.
Andy Wingo написал статью о добавлении фичи Multi-value (phase 4) в SpiderMonkey.
GitHub
multi-value/Overview.md at master · WebAssembly/multi-value
Proposal to add multi-values to WebAssembly. Contribute to WebAssembly/multi-value development by creating an account on GitHub.
Разработчики Chromium начинают откатывать изменения, связанные с SameSite. Указывается, что причина такого решения — COVID-19, и они хотят чтобы банки, онлайн магазины, сайты правительства и здравоохранения работали стабильно.
Chromium Blog
Temporarily rolling back SameSite Cookie Changes
UPDATE 5/28: We are going to resume the rollout with the stable release of Chrome M84. More details . With the stable release of Chrome 8...
Node.js вводит некоторые изменения в календарь релизов. Это касается только веток 10 (фаза maintainance продлена) и 12 (релизы будут отложены). Изменения вводятся из-за пандемии COVID-19.
Гуглеры написали статью Ensure your website is available and usable for everyone during COVID-19. Кажется в ближайшее время компания собирается эксплуатировать трендовое инфекционное заболевание везде, где только можно.
web.dev
Ensure your website is available and usable for everyone during COVID-19
How to ensure that the core functionality of your website is always available, accessible, secure, usable, discoverable, and fast.
Ещё в 2018 WHATWG заметили, что браузеры не следуют спецификации HTML и начинают исполнять
Кстати, сегодня должен выйти Firefox 75.
<script defer> ещё до того, как завершен парсинг стилей. Единственным браузером, который соблюдал спецификацию, был старый дохромиумный Microsoft Edge. Firefox 76 (выйдет 5 мая) изменяет свое поведение, чтобы ожидать загрузку и парсинг стилей до начала исполнения отложенных скриптов. Проверить поведение уже можно в Firefox 76 Nightly.Кстати, сегодня должен выйти Firefox 75.
GitHub
<script defer> needs to wait for style sheets · Issue #3890 · whatwg/html
See https://bugzilla.mozilla.org/show_bug.cgi?id=1404468 and in particular https://bugzilla.mozilla.org/show_bug.cgi?id=1404468#c58 by @bzbarsky. There's various sites that depend on style ...
Вышла версия 11.2 Beta браузера Samsung Internet для Android. Из нового:
- кастомизация UI
- новая фича приватности Block unwanted webpages
- улучшенный анти-трекинг
- опция для блокировки открытия приложений по ссылке
- кастомизация UI
- новая фича приватности Block unwanted webpages
- улучшенный анти-трекинг
- опция для блокировки открытия приложений по ссылке
Medium
New Features in Samsung Internet Beta!
11.2 has landed in the Play Store, download it to try out new features.
🥁Все главные результаты 75й встречи #TC39 в одном посте.
🚀 предложение import.iss.oneta перешло на stage 4 (слайды)
✅ предложение Logical Assignment Operators переходит на stage 3 (слайды)
🐣 новое предложение Number.range & BigInt.range отправляется на stage 1 (слайды)
🐣 новое предложение Ergonomic brand checks for Private Fields отправляется на stage 1
🐣 новое предложение Compartments переходит на stage 1
🐣 новое ECMA402 предложение Intl.NumberFormat V3 переходит на stage 1 (слайды)
Не продвинулись на следующий stage:
- TypedArray stride parameter не переходит на stage 2 (слайды)
- this argument reflection of functions не переходит на stage 1 (слайды)
- Relax Hashbang Syntax не переходит на stage 1 (слайды)
Обновления предложений:
- Temporal (stage 2) (слайды)
- Decorators (stage 2) (слайды)
- Decimal (stage 1) (слайды)
- у Pattern Matching (stage 1) новые чемпионы
- для добавления новых типов Record и Tuple (stage 1) понадобились два новых пропозала RefCollection и Deep Path Properties in Record Literals, которые теперь stage 0 (слайды)
Принятые нормативные изменения в спецификацию:
- Surrogate pairs in RegExp capture groups
- SharedArrayBuffer станет опциональным для хостов, что делает многопоточной необязательным требованием к имплементациям
- опшнл чейнинг теперь можно будет использовать с приватными идентификаторами. При это было решено, что попытка o?.#field все еще должна приводить к выбросу исключения
- WeakRefs FinalizationRegistry API
- исправления Atomics.waitAsync
- Generically forbid extensions of all 402 methods
- Aligning atomics with wasm: allow it on non-shared ArrayBuffers
Другие презентации:
- отчёт секретариата TC39. Из интересной статистики: на стандарты TC39 (и в первую очередь спецификацию JavaScript, ECMA-262) приходится половина скачиваний всех стандартов Ecma; очень много посещений страниц у устаревших версий спецификиции — ES6/ES2015 и ES5.1
- отчёт редакторов ECMA-262. Была создана ветка для версии стандарта ES2020, опубликован релиз кандидат. Мастер ветка теперь 2021.
- отчёт редакторов ECMA-402. Была создана ветка для версии стандарта 2020 года и опубликован релиз кандидат. Мастер ветка теперь 2021.
- презентация от Google об изменении графиков релизов Chrome
- всем пропозалам, которые хотят получить stage 1, теперь обязательно нужно иметь публичный репозиторий
- Gus Caplan из OpenJS Foundation представил свой проект engine262, который представляет собой реализацию движка JavaScript на языке JavaScript и используется, например, мейнтейнерами Test262 suite
- (Remote) Plenary 2020 - 2021
- на прошлой встрече в процессы комитета были внесены некоторые изменения. По этим изменениям была представлена презентация.
🚀 предложение import.iss.oneta перешло на stage 4 (слайды)
✅ предложение Logical Assignment Operators переходит на stage 3 (слайды)
🐣 новое предложение Number.range & BigInt.range отправляется на stage 1 (слайды)
🐣 новое предложение Ergonomic brand checks for Private Fields отправляется на stage 1
🐣 новое предложение Compartments переходит на stage 1
🐣 новое ECMA402 предложение Intl.NumberFormat V3 переходит на stage 1 (слайды)
Не продвинулись на следующий stage:
- TypedArray stride parameter не переходит на stage 2 (слайды)
- this argument reflection of functions не переходит на stage 1 (слайды)
- Relax Hashbang Syntax не переходит на stage 1 (слайды)
Обновления предложений:
- Temporal (stage 2) (слайды)
- Decorators (stage 2) (слайды)
- Decimal (stage 1) (слайды)
- у Pattern Matching (stage 1) новые чемпионы
- для добавления новых типов Record и Tuple (stage 1) понадобились два новых пропозала RefCollection и Deep Path Properties in Record Literals, которые теперь stage 0 (слайды)
Принятые нормативные изменения в спецификацию:
- Surrogate pairs in RegExp capture groups
- SharedArrayBuffer станет опциональным для хостов, что делает многопоточной необязательным требованием к имплементациям
- опшнл чейнинг теперь можно будет использовать с приватными идентификаторами. При это было решено, что попытка o?.#field все еще должна приводить к выбросу исключения
- WeakRefs FinalizationRegistry API
- исправления Atomics.waitAsync
- Generically forbid extensions of all 402 methods
- Aligning atomics with wasm: allow it on non-shared ArrayBuffers
Другие презентации:
- отчёт секретариата TC39. Из интересной статистики: на стандарты TC39 (и в первую очередь спецификацию JavaScript, ECMA-262) приходится половина скачиваний всех стандартов Ecma; очень много посещений страниц у устаревших версий спецификиции — ES6/ES2015 и ES5.1
- отчёт редакторов ECMA-262. Была создана ветка для версии стандарта ES2020, опубликован релиз кандидат. Мастер ветка теперь 2021.
- отчёт редакторов ECMA-402. Была создана ветка для версии стандарта 2020 года и опубликован релиз кандидат. Мастер ветка теперь 2021.
- презентация от Google об изменении графиков релизов Chrome
- всем пропозалам, которые хотят получить stage 1, теперь обязательно нужно иметь публичный репозиторий
- Gus Caplan из OpenJS Foundation представил свой проект engine262, который представляет собой реализацию движка JavaScript на языке JavaScript и используется, например, мейнтейнерами Test262 suite
- (Remote) Plenary 2020 - 2021
- на прошлой встрече в процессы комитета были внесены некоторые изменения. По этим изменениям была представлена презентация.
GitHub
agendas/2020/03.md at main · tc39/agendas
TC39 meeting agendas. Contribute to tc39/agendas development by creating an account on GitHub.
Новый пропозал https://github.com/bmeck/proposal-from-import предлагает добавить синтаксис
from "foo" import {bar}; для импорта модулей. Это поможет редакторам кода легко имплементировать подсказки автодополнения.GitHub
GitHub - bmeck/proposal-from-import: AKA: make code completion work.
AKA: make code completion work. Contribute to bmeck/proposal-from-import development by creating an account on GitHub.
Вышел Firefox 75.
Из интересного:
- поддержка атрибута loading для тега
- поддержка функций min(), max() и clamp() в CSS
- улучшения accessibility
- поддержа Public static class fields (stage 3)
- поддержка Intl.Locale (ECMA-402 выпуска 2020)
- улучшения Web Animations API
Списки изменений:
- для разработчиков
- для пользователей
- совместимости
Из интересного:
- поддержка атрибута loading для тега
<img>- поддержка функций min(), max() и clamp() в CSS
- улучшения accessibility
- поддержа Public static class fields (stage 3)
- поддержка Intl.Locale (ECMA-402 выпуска 2020)
- улучшения Web Animations API
Списки изменений:
- для разработчиков
- для пользователей
- совместимости
Вебня
Вышел Firefox 75. Из интересного: - поддержка атрибута loading для тега <img> - поддержка функций min(), max() и clamp() в CSS - улучшения accessibility - поддержа Public static class fields (stage 3) - поддержка Intl.Locale (ECMA-402 выпуска 2020) - улучшения…
Вышла статья на Mozilla Hacks с описанием главных фич Firefox 75.
https://hacks.mozilla.org/2020/04/firefox-75-ambitions-for-april/
https://hacks.mozilla.org/2020/04/firefox-75-ambitions-for-april/
Mozilla Hacks – the Web developer blog
Firefox 75: Ambitions for April
Firefox 75 is chock full of handy new dev tooling: instant evaluation in the web console, event breakpoints for WebSockets, and more. New web platform features include HTML lazy loading ...