Оптимизация функций стадартной библиотеки в JavaScriptCore
Tadeu Zagallo из Apple рассказал о способах оптимизации встроенных функций в JavaScriptCore (JS движке из WebKit / Safari) на примере
https://webkit.org/blog/11934/optimizing-javascript-standard-library-functions-in-jsc/
Tadeu Zagallo из Apple рассказал о способах оптимизации встроенных функций в JavaScriptCore (JS движке из WebKit / Safari) на примере
Function.prototype.toString(). Оптимизации достигаются за счет кеширования результата, спекулятивных вычислений за счет знаний о механике исполнения, добавления новой инструкции, которая загружает кешированное значение когда оно доступно и обучения абстракного интерпретатора использованию вычисленного значения, если оно доступно.https://webkit.org/blog/11934/optimizing-javascript-standard-library-functions-in-jsc/
WebKit
Optimizing JavaScript Standard Library Functions in JSC
After three years working on JavaScriptCore (JSC), I recently had the opportunity to work on optimizing one of our standard library functions for the first time.
Использование AbortSignal в Node.js
James Snell о том, как работает AbortSignal и AbortController, а также о том, как реализовать их поддержку в своём API.
https://www.nearform.com/blog/using-abortsignal-in-node-js/
James Snell о том, как работает AbortSignal и AbortController, а также о том, как реализовать их поддержку в своём API.
https://www.nearform.com/blog/using-abortsignal-in-node-js/
Nearform
Using AbortSignal in Node.js | Nearform
Nearform is an independent team of engineers, designers and strategists. We build digital capability and software solutions for ambitious enterprises seeking sustained business impact. We love what we do.
Новые возможности модуля crypto в Node.js
Ещё одна статья James Snell о генереции случайных UUID через новое API
https://www.nearform.com/blog/new-crypto-capabilities-in-node-js/
Ещё одна статья James Snell о генереции случайных UUID через новое API
crypto.randomUUID() и генерации и проверке простых чисел.https://www.nearform.com/blog/new-crypto-capabilities-in-node-js/
Nearform
Introducing new crypto capabilities in Node.js | Nearform
Nearform is an independent team of engineers, designers and strategists. We build digital capability and software solutions for ambitious enterprises seeking sustained business impact. We love what we do.
Playwright Test — новый тест-раннер от команды Playwright
Андрей Лушников из Microsoft о новом раннере для Playwright, который помогает запустить тесты во всех браузерах, выполняет тесты параллельно, реализует захват трейсов, видео, скриншотов и легко расширяем.
https://applitools.com/event/introducing-playwrights-new-test-runner/
Андрей Лушников из Microsoft о новом раннере для Playwright, который помогает запустить тесты во всех браузерах, выполняет тесты параллельно, реализует захват трейсов, видео, скриншотов и легко расширяем.
https://applitools.com/event/introducing-playwrights-new-test-runner/
AI-Powered End-to-End Testing | Applitools
Introducing Playwright's New Test Runner
Microsoft Principal Engineer, Andrey Lushnikov demonstrates the capabilities of Playwright's new test runner.
WebDriver BiDi — новый протокол для автоматизации браузеров
В разработке и стандартизации (W3C) задействованы такие компании как Apple, BrowserStack, Google, Microsoft, Mozilla, Sauce Labs. Протокол позволит использовать Puppeteer (или другие инструменты) с любыми браузерами, заменив собой Chrome DevTools Protocol (CDP), а также добавляет интеграцию с Web Platform Tests.
https://developer.chrome.com/blog/webdriver-bidi/
В разработке и стандартизации (W3C) задействованы такие компании как Apple, BrowserStack, Google, Microsoft, Mozilla, Sauce Labs. Протокол позволит использовать Puppeteer (или другие инструменты) с любыми браузерами, заменив собой Chrome DevTools Protocol (CDP), а также добавляет интеграцию с Web Platform Tests.
https://developer.chrome.com/blog/webdriver-bidi/
Chrome for Developers
WebDriver BiDi - The future of cross-browser automation | Blog | Chrome for Developers
Getting to know what is WebDriver BiDi and why it is the future of cross-browser automation
👍1
Вышла Node.js 16.6.0 с поддержкой метода
https://nodejs.org/en/blog/release/v16.6.0/
at() (stage 3) для строк, массивов и типизированных массивов.https://nodejs.org/en/blog/release/v16.6.0/
nodejs.org
Node v16.6.0 (Current) | Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
GNOME Web Canary
Сборки браузера GNOME Web (основывается на WebKit) теперь помимо стабильных релизов (для конечных пользователей) и Technology Preview (для тестирования последних разработок) доступены в виде сборок с самыми последними фичами, в том числе нестабильными.
https://base-art.net/Articles/introducing-the-gnome-web-canary-flavor/
Сборки браузера GNOME Web (основывается на WebKit) теперь помимо стабильных релизов (для конечных пользователей) и Technology Preview (для тестирования последних разработок) доступены в виде сборок с самыми последними фичами, в том числе нестабильными.
https://base-art.net/Articles/introducing-the-gnome-web-canary-flavor/
Base-Art
Introducing the GNOME Web Canary flavor
Today I am happy to unveil GNOME Web Canary which aims to provide bleeding edge, most likely very unstable builds of Epiphany, depending on daily builds of the WebKitGTK development version. Read on to know more about this. Until recently the GNOME Web browser…
Сегодня каналу Вебня исполняется 3 года!
Большое спасибо всем подписчикам и особенно патронам за поддержку и мотивацию! По случаю дня рождения канала несколько новостей:
1) Я удалил с Patreon таер с поддержкой в $5, так как фактически никаких особенных плюсов у таких патронов по сравнению с теми, кто платил $2 практически никогда не было. Если Вам нравится этот канал настолько, что вы готовы пожертвовать больше, то это всё ещё возможно сделать через сам Patreon.
2) Теперь чат, который ранее был открыт только для патронов, открыт для всех! Он не привязан к каналу, чтобы не мешать комментарии из канала с любыми другими обсуждениями здесь. Я пока не уверен, что смогу уделять ему много времени, но обязательно буду появляться и рассказывать что-нибудь интересное, а может быть иногда даже будем проводить небольшие видеоконференции по мотивам встреч TC39 или групп W3C, посмотрим. Пожалуйста, воздержитесь от оффтопа в чате (сегодня в честь дня рождения канала — можно😄). И добро пожаловать: @webnya_chat!
——
Канал будет придерживаться всё той же политики относительно рекламы — её нет и никогда не будет! Также мы никогда сами не тратили денег на рекламу или продвижение канала, поэтому если он Вам нравится, то пожалуйста расскажите о нём другим, это будет лучшим подарком на день рождения Вебни! Также можно подонатить на Патреоне, но только если очень хочется и Вас это не обременит, это совсем не обязательно! 🙂
И, конечно же, принимаем поздравления в комментариях к этому посту и в чате Вебни!
Большое спасибо всем подписчикам и особенно патронам за поддержку и мотивацию! По случаю дня рождения канала несколько новостей:
1) Я удалил с Patreon таер с поддержкой в $5, так как фактически никаких особенных плюсов у таких патронов по сравнению с теми, кто платил $2 практически никогда не было. Если Вам нравится этот канал настолько, что вы готовы пожертвовать больше, то это всё ещё возможно сделать через сам Patreon.
2) Теперь чат, который ранее был открыт только для патронов, открыт для всех! Он не привязан к каналу, чтобы не мешать комментарии из канала с любыми другими обсуждениями здесь. Я пока не уверен, что смогу уделять ему много времени, но обязательно буду появляться и рассказывать что-нибудь интересное, а может быть иногда даже будем проводить небольшие видеоконференции по мотивам встреч TC39 или групп W3C, посмотрим. Пожалуйста, воздержитесь от оффтопа в чате (сегодня в честь дня рождения канала — можно😄). И добро пожаловать: @webnya_chat!
——
Канал будет придерживаться всё той же политики относительно рекламы — её нет и никогда не будет! Также мы никогда сами не тратили денег на рекламу или продвижение канала, поэтому если он Вам нравится, то пожалуйста расскажите о нём другим, это будет лучшим подарком на день рождения Вебни! Также можно подонатить на Патреоне, но только если очень хочется и Вас это не обременит, это совсем не обязательно! 🙂
И, конечно же, принимаем поздравления в комментариях к этому посту и в чате Вебни!
Что нового появится в Chrome 93
Оригинальная статья: https://blog.chromium.org/2021/07/chrome-93-multi-screen-window-placement.html
Добавлены новые Origin Trials:
- Cross-Origin-Embedder-Policy: credentialless — позволяет отправлять cross-origin запросы без CORS
- Multi-Screen Window Placement API
- ОС-подобные оверлеи для PWA
- PWA в качестве обработчиков URL
Фичи, которые вышли из Origin Trial и станут доступны по умолчанию:
- Web Bundles — новый способ публикации бандлов с улучшенным кэшированием
- WebXR Plane Detection API
Другие фичи:
- AbortSignal.abort()
- улучшения CSS Flexbox
- Error.cause (stage 3) — также будет доступен в Firefox 91 и в Safari 15, которые сейчас доступны как beta-релизы
- Object.hasOwn (stage 3) — также появится в Firefox 92
- обновления User-Agent Client Hints API
Релиз Chrome 93 состоится 31 августа
Оригинальная статья: https://blog.chromium.org/2021/07/chrome-93-multi-screen-window-placement.html
Добавлены новые Origin Trials:
- Cross-Origin-Embedder-Policy: credentialless — позволяет отправлять cross-origin запросы без CORS
- Multi-Screen Window Placement API
- ОС-подобные оверлеи для PWA
- PWA в качестве обработчиков URL
Фичи, которые вышли из Origin Trial и станут доступны по умолчанию:
- Web Bundles — новый способ публикации бандлов с улучшенным кэшированием
- WebXR Plane Detection API
Другие фичи:
- AbortSignal.abort()
- улучшения CSS Flexbox
- Error.cause (stage 3) — также будет доступен в Firefox 91 и в Safari 15, которые сейчас доступны как beta-релизы
- Object.hasOwn (stage 3) — также появится в Firefox 92
- обновления User-Agent Client Hints API
Релиз Chrome 93 состоится 31 августа
Chromium Blog
Chrome 93: Multi-Screen Window Placement, PWAs as URL Handlers, and More
Unless otherwise noted, changes described below apply to the newest Chrome beta channel release for Android, Android WebView, Chrome OS, Lin...
Результаты опроса о скроллинге в вебе 2021
Деврелы Google опубликовали результаты опроса о скроллинге. В целом картина такая, что разработчики не очень удовлетворены текущим состоянием и испытывают боль.
Деврелы Google опубликовали результаты опроса о скроллинге. В целом картина такая, что разработчики не очень удовлетворены текущим состоянием и испытывают боль.
web.dev
2021 Scroll Survey Report | Blog | web.dev
Get the 2021 Scroll Survey Report plus words from the Chrome team about how this impacts priorities and plans for Chromium and the web.
В дружественном канале @ufostation вышло интервью с разработчиками Яндекс.Браузера
⚡️ Опубликованы стенограммы с июльской встречи #TC39
Результаты встречи я ранее публиковал тут:
- первый день
- второй день
- третий день
Результаты встречи я ранее публиковал тут:
- первый день
- второй день
- третий день
GitHub
notes/meetings/2021-07 at main · tc39/notes
TC39 meeting notes. Contribute to tc39/notes development by creating an account on GitHub.
Вышел Safari Technology Preview 129
https://webkit.org/blog/11951/release-notes-for-safari-technology-preview-129/
В нём:
- улучшения Web Inspector
- исправления и улучшения CSS
- различные улучшения скроллинга
- исправления некоторых Web API, таких как ReadableStream, WebGL, IndexedDB, WebCrypto
- часть реализации #WebAssembly пропозала Typed Function References (phase 2)
https://webkit.org/blog/11951/release-notes-for-safari-technology-preview-129/
В нём:
- улучшения Web Inspector
- исправления и улучшения CSS
- различные улучшения скроллинга
- исправления некоторых Web API, таких как ReadableStream, WebGL, IndexedDB, WebCrypto
- часть реализации #WebAssembly пропозала Typed Function References (phase 2)
WebKit
Release Notes for Safari Technology Preview 129
Safari Technology Preview Release 129 is now available for download for macOS Big Sur and betas of macOS Monterey.
⚡️ W3C и WHATWG совместно опубликовали обновление спецификаций DOM от 15 июня 2020 года в статусе Proposed Recommendation.
Super Duper Secure Mode в Edge
В браузере Edge появится новый режим, в котором будет отключен JIT, который является причиной почти половины уязвисостей. Инженеры Microsoft выяснили, что производительность JS при этом падает незначительно, а отключение JIT позволит применить также другие технология для защиты браузера, которые иначе применить сложно. Режим получил название Super Duper Secure Mode и доступен в Edge Canary, Dev и Beta. На данный момент при включённом SDSM недоступен #WebAssembly.
https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/
В браузере Edge появится новый режим, в котором будет отключен JIT, который является причиной почти половины уязвисостей. Инженеры Microsoft выяснили, что производительность JS при этом падает незначительно, а отключение JIT позволит применить также другие технология для защиты браузера, которые иначе применить сложно. Режим получил название Super Duper Secure Mode и доступен в Edge Canary, Dev и Beta. На данный момент при включённом SDSM недоступен #WebAssembly.
https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/
Microsoft Browser Vulnerability Research
Super Duper Secure Mode
Introduction
Сегодня World Wide Web исполняется 30 лет
6 августа 1991 года Сэр Тим Бернерс Ли рассказал миру про Веб.
https://www.w3.org/blog/2021/08/30-years-on-from-introducing-the-web-to-the-world/
6 августа 1991 года Сэр Тим Бернерс Ли рассказал миру про Веб.
https://www.w3.org/blog/2021/08/30-years-on-from-introducing-the-web-to-the-world/
www.w3.org
30 years on from introducing the Web to the World
On 6 August 1991, Tim Berners-Lee posted information about his WorldWideWeb project to the public and introduced the Web to the world.
⚡️ Структурное клонирование теперь доступно из JS как часть спецификации HTML
https://github.com/whatwg/html/commit/1e610d403f0b608e12aa5286d19fb67d603c94b5
Ожидается, что помимо браузеров его поддержат Node и Deno, после чего можно будет попробовать перенести его в спецификацию ECMAScript (где описания алгоритма структурного клонирования ещё нет). Стоит сказать, что уже давно существуют и другие способы, но все они менее удобные или имеют другие недостатки.
https://github.com/whatwg/html/commit/1e610d403f0b608e12aa5286d19fb67d603c94b5
Ожидается, что помимо браузеров его поддержат Node и Deno, после чего можно будет попробовать перенести его в спецификацию ECMAScript (где описания алгоритма структурного клонирования ещё нет). Стоит сказать, что уже давно существуют и другие способы, но все они менее удобные или имеют другие недостатки.
GitHub
Define self.structuredClone() · whatwg/html@1e610d4
Closes #793.
Вышла бета версия V8 9.3
Из нового:
- компилятор Sparkplug научился компилировать функции пачками, что ускоряет процесс компиляции
- Object.hasOwn (stage 3)
- Error cause (stage 3)
- на Android теперь также выключена отдельная кодогенерация, которая защищала от атак Spectre, что позволяет увеличить производительность на этой платформе; вместо неё используется Site Isolation, как и на других платформах.
Из нового:
- компилятор Sparkplug научился компилировать функции пачками, что ускоряет процесс компиляции
- Object.hasOwn (stage 3)
- Error cause (stage 3)
- на Android теперь также выключена отдельная кодогенерация, которая защищала от атак Spectre, что позволяет увеличить производительность на этой платформе; вместо неё используется Site Isolation, как и на других платформах.
v8.dev
V8 release v9.3 · V8
V8 release v9.3 brings support for Object.hasOwn and Error causes, improves compilation performance and disables untrusted codegen mitigations on Android.
Вышел Firefox 91
Помимо прочего, эта версия станет новым релизом с расширенной поддержкой (ESR). Поддержка предыдущей версии Firefox 78 ESR прекратится в октябре 2021.
Новое:
- HTTPS-First Policy
- Windows SSO
- Visual Viewport API на всех платформах
- Intl.DateTimeFormat.prototype.formatRange() и Intl.DateTimeFormat.prototype.formatRangeToParts() (ECMA402 2021)
- Error cause (stage 3)
- Gampad API теперь требует защищённого контекста
- улучшения поддержки WebDriver
Изменения для конечного пользователя
Изменения для разработчиков
Помимо прочего, эта версия станет новым релизом с расширенной поддержкой (ESR). Поддержка предыдущей версии Firefox 78 ESR прекратится в октябре 2021.
Новое:
- HTTPS-First Policy
- Windows SSO
- Visual Viewport API на всех платформах
- Intl.DateTimeFormat.prototype.formatRange() и Intl.DateTimeFormat.prototype.formatRangeToParts() (ECMA402 2021)
- Error cause (stage 3)
- Gampad API теперь требует защищённого контекста
- улучшения поддержки WebDriver
Изменения для конечного пользователя
Изменения для разработчиков
Forwarded from Deno Fanatic
⚡️ Вышел Deno 1.13
Из крутых фич которых я совсем не ожидал в ближайшее время:
- FFI сразу на следующий релиз после удаления Deno Plugins. Теперь можно выполнять функции либ, Пример
- Deno Http и Deno.core websocket теперь в stable
Теперь удобно читать коммиты по группам extensions (web api, tls, crypto), и в этом релизе это:
- WebSocketStream API
- Web API - structuredClone, только пару дней назад Сережа писал об этом в вебне , а оно уже вот в этом релизе =)
- crypto - add verify(), implement importKey and exportKey for HMAC
В REPL завезли еще немного фич: поддержка exports + eval
Подробнее про Deno.core: tag/1.13
⚡️ Deno/std 0.104.0
- Добавили модуль collections, для удобной работы с коллекциями. Всего 17 API методов (distinct, zip, deepMerge, groupBy и тд)
- wrapper для WebCrypto
- Больше к совместимости к пакетам из node
Подробнее про Deno.std: tag/0.104.0
Из крутых фич которых я совсем не ожидал в ближайшее время:
- FFI сразу на следующий релиз после удаления Deno Plugins. Теперь можно выполнять функции либ, Пример
- Deno Http и Deno.core websocket теперь в stable
Теперь удобно читать коммиты по группам extensions (web api, tls, crypto), и в этом релизе это:
- WebSocketStream API
- Web API - structuredClone, только пару дней назад Сережа писал об этом в вебне , а оно уже вот в этом релизе =)
- crypto - add verify(), implement importKey and exportKey for HMAC
В REPL завезли еще немного фич: поддержка exports + eval
Подробнее про Deno.core: tag/1.13
⚡️ Deno/std 0.104.0
- Добавили модуль collections, для удобной работы с коллекциями. Всего 17 API методов (distinct, zip, deepMerge, groupBy и тд)
- wrapper для WebCrypto
- Больше к совместимости к пакетам из node
Подробнее про Deno.std: tag/0.104.0