Вышли macOS 10.15.4 и iOS 13.4, а с ними и Safari 13.1. По этому случаю в блоге WebKit вышла статья Full Third-Party Cookie Blocking And More о приватности в новой версии браузера.
Движок JavaScriptCore получил поддержку Promise.allSettled (ES2020), Numeric Separators (stage 3). Кроме того появилась поддержка фунций CSS фукций max, min и clamp, значения свойства
Движок JavaScriptCore получил поддержку Promise.allSettled (ES2020), Numeric Separators (stage 3). Кроме того появилась поддержка фунций CSS фукций max, min и clamp, значения свойства
display: contents. Ещё из нового: Picture-in-Picture, отключение TLS 1.0/1.1, поддержка ResizeObserver, MediaRecorder API и частичная реализация Web Animations API.WebKit
Full Third-Party Cookie Blocking and More
This blog post covers several enhancements to Intelligent Tracking Prevention (ITP) in iOS and iPadOS 13.4 and Safari 13.1 on macOS to address our latest discoveries in the industry around tracking.
Также вышел LLVM 10.0.0. Нас конечно же больше всего интересует что там с #WebAssembly:
- Multivalue function signatures теперь поддерживаются в объектных файлах WebAssembly
- новая инструкция
- поддержка Thread-Local Storage (TLS)
- значительное улучшение поддержки SIMD
Кроме того, Clang 10.0.0 научился использовать wasm-opt для уменьшения размера, если тот есть в PATH.
Полный список релизных записей LLVM и тулинга:
https://llvm.org/releases/10.0.0/docs/ReleaseNotes.html
- Multivalue function signatures теперь поддерживаются в объектных файлах WebAssembly
- новая инструкция
atomic.fence- поддержка Thread-Local Storage (TLS)
- значительное улучшение поддержки SIMD
Кроме того, Clang 10.0.0 научился использовать wasm-opt для уменьшения размера, если тот есть в PATH.
Полный список релизных записей LLVM и тулинга:
https://llvm.org/releases/10.0.0/docs/ReleaseNotes.html
https://llvm.org/releases/10.0.0/tools/clang/docs/ReleaseNotes.html
https://llvm.org/releases/10.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html
https://llvm.org/releases/10.0.0/tools/lld/docs/ReleaseNotes.html
https://llvm.org/releases/10.0.0/tools/polly/docs/ReleaseNotes.html
https://llvm.org/releases/10.0.0/projects/libcxx/docs/ReleaseNotes.htmlВсе 3 находящиеся на phase 4 пропозала в #WebAssembly, а именно Non-trapping float-to-int conversions, Sign-extension operators и Multi-value, будут переведены на phase 5 (добавлены в стандарт) на встрече wasm WG 8го апреля.
Отличные новости! Microsoft передаёт движок ChakraCore в опенсорс коммьюнити. Инженеры компании будут выпускать патчи безопасности до 9 марта 2021, после чего надеются, что разработку подхватит коммьюнити.
GitHub
ChakraCore Transition · Issue #6384 · microsoft/ChakraCore
Hello everyone, In December of 2018, we announced our intent to adopt the Chromium Open Source project in the development of Microsoft Edge. At that time, we made no immediate changes to the Chakra...
Andy Wingo из Igalia опубликовал статью о Baseline #WebAssembly компиляторе в составе SpiderMonkey. Статья скорее вводная, она написана простям языком и объясняет самые основы, которые свойствены не только baseline компилятору из SpiderMonkey, но и V8, и JSC.
На блоге Google для веб-разработчиков опубликована статья об использовании Trusted Types для предотвращения DOM-based XSS атак. Фича должна была появиться в Chrome 82, релиз которого, как мы знаем, будет пропущен. Так что ждём теперь в Chrome 83.
web.dev
Prevent DOM-based cross-site scripting vulnerabilities with Trusted Types | Articles | web.dev
Introducing Trusted Types: a browser API to prevent DOM-based cross-site scripting in modern web applications.
Вышел Safari Technology Preview 103. Интересного не очень много. Фиксы, апдейты Web Inspector.
https://webkit.org/blog/10243/release-notes-for-safari-technology-preview-103/
https://webkit.org/blog/10243/release-notes-for-safari-technology-preview-103/
WebKit
Release Notes for Safari Technology Preview 103
Safari Technology Preview Release 103 is now available for download for macOS Catalina and macOS Mojave.
Вышел TypeScript 3.9 Beta. В нём:
- улучшен вывод типов значений, обёрнутых в Promise combinators
- оператор типа
- значительно увеличена скорость компиляции (например, для material-ui время компиляци уменьшилось на 40%)
- добавлена поддержка комментария
- проверку на невызванную функцию теперь работают и в тернарных операторах
- улучшения поддержки редакторов и IDE
- поддержка автоимпорта CommonJS модулей
- улучшения рефакторинга
- несколько breaking changes (да, TypeScript не использует semver)
- улучшен вывод типов значений, обёрнутых в Promise combinators
- оператор типа
awaited отложен на последующие релизы- значительно увеличена скорость компиляции (например, для material-ui время компиляци уменьшилось на 40%)
- добавлена поддержка комментария
// @ts-expect-error, который позволяет указать, что ошибка TypeScript ожидаема (например, для тестов)- проверку на невызванную функцию теперь работают и в тернарных операторах
- улучшения поддержки редакторов и IDE
- поддержка автоимпорта CommonJS модулей
- улучшения рефакторинга
- несколько breaking changes (да, TypeScript не использует semver)
Microsoft News
Announcing TypeScript 3.9 Beta
Today we’re announcing the availability of TypeScript 3.9 Beta! To get started using the beta, you can get it through NuGet, or use npm with the following command: npm install typescript@beta You can also get editor support by Downloading for Visual Studio…
В Chrome обсуждается возможность включения #WebAssembly SIMD в origin trails для экспериментов на реальных приложениях. Эта фаза должна продлиться с Chrome 84 (изначально был запланирован на 4 августа, но график может поменяться) по Chrome 89, что займет примерно полгода.
Разработчики 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.