Вебня
4.66K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
На Hexlet вышла статья “Стоит ли учить JavaScript: перспективы, ситуация на рынке труда, мнения экспертов”, в которой есть мнения ведущих этого канала, а также GraphQL гуру Павла Черторогова, опытнейшего дизайнера и разработчика в одном лице — Андрея Оконечникова и архитектора из Tinkoff Александра Казаченко.
Предложение Frozen Realms (stage 1), которое не обновлялось с марта 2018, было переименовано в Secure ECMAScript (SES)
Стандарт для арифметики с плавающей точкой IEEE 754-2008, используемый в JavaScript, C++ и многих других языках, истек. Ему на смену пришел IEEE 754-2019. Основные изменения можно найти здесь: https://754r.ucbtest.org/background/
JavaScript движок XS для интернета вещей недавно обновился до версии 9.0.0 и получил поддержку таких фич как:
- Class Fields
- Private Methods
- Static Class Features
- Numeric separators
- Dynamic Import
- Import Metadata
- globalThis
- String.prototype.matchAll
- Promise.allSettled
- Hashbang Grammar
Также в XS появилась экспериментальная поддержка SES (stage 1) для возможности дать ранний фидбек по пропозалу.
Рабочая группа CSS обновила Candidate Recommendations спецификаций CSS Writing Modes Level 3 и CSS Writing Modes Level 4. Эти документы описывают CSS поддержку для различных интернациональных режимов написания, включая LTR, RTL, вертикальное написание.
Вышел Chrome 76, в котором добавилось очень много всего, например, v8 7.6, в котором добавили:
- улучшения JSON.parse
- значительные улучшения frozen/sealed массивов
- улучшения обработки unicode строк
- Promise.allSettled, который попал в ES2020
- улучшенную поддержку BigInt, который вот-вот также попадеь в ES2020
- улучшения Intl.DateTimeFormat
Также вышел Electron 6.0.0, который содержит в себе Chrome 76.0.3809.88, Node.js 12.4.0. Подробнее в блоге Electron. Поддержка Electron 3.x.x с этого момента прекращается.
Из других улучшений Chrome 76:
- добавлен медиа запрос prefers-color-scheme
- прогрессивные веб приложения (PWA) теперь можно устанавливать прямо из адресной строки omnibox
- blob’ы теперь можно удобнее считывать новыми методами text(), arrayBuffer() и stream()
- асинхронный буфер обмена теперь поддерживает изображения

Улучшения DevTools:
- автодополнение CSS по значениям свойств
- улучшения вкладки Networking
- импорт / экспорт HAR, а также он теперь содержит сообщения WebSockets
- текущие показатели использования памяти на вкладке Memory
- порт зарегистрированного ServiceWorker на вкладке Application
- поддержка Background Fetch и Background Sync на вкладке Application
- Puppeteer для Firefox

https://developers.google.com/web/updates/2019/07/nic76
https://developers.google.com/web/updates/2019/05/devtools

Список изменений на chromestatus: https://www.chromestatus.com/features#milestone%3D76
Сегодня этому каналу исполнился ровно 1 год! Если Вам нравится то, о чем мы пишем, то рассказывайте о нас коллегам и друзьям — это будет лучшим подарком. Спасибо за то, что читаете нас!
Текст спецификации для предложения Promise.any (stage 2), над которым я работаю, практически готов. Осталось дописать недостающие часть спеки для AggregateError, и можно готовиться к stage 3.
Доклад Luke Wagner о #WebAssembly пропозале WebIDL bindings (phase 1), который позволит оптимизировать вызовы из WebAssembly в существующие Web API, а также любые другие окружения, которые используют WebIDL.
Вебня
Текст спецификации для предложения Promise.any (stage 2), над которым я работаю, практически готов. Осталось дописать недостающие часть спеки для AggregateError, и можно готовиться к stage 3.
А тем временем Axel Rauschmayer написал продвинутое руководство по остальным промис комбинаторам: Promise.all, Promise.race и Promise.allSettled (который станет частью ES2020).
Nullish Coalescing operator уже доступен под флагом в JavaScriptCore
https://trac.webkit.org/changeset/247819/webkit
17 августа (суббота) вместе с Avito делаем SPA meetup, пятый, юбилейный. Программа огонь: доклады от Avito, Яндекс, Mail.ru, ВКонтакте и Тинькофф плюс панельная сессия!
Спеши, торопись — бесплатно, но нужна регистрация, количество мест ограничено. Детали и первая партия билетов:
https://moscow-spa.timepad.ru/event/1028283/?utm_refcode=89abd647a5ac8c21b563f3340ae956884c2209
Вторая партия билетов будет 12 августа в 12:00.
GitHub добавляет поддержку CI/CD в GitHub Actions. Это позволит организовать сборку, тестирование, публикацию и т.д. на любое событие (даже собственные) в рамках GitHub без дополнительных сервисов.
Нововведение запущено в режиме бета-тестирование и станет общедоступным 13 ноября. Для open source проектов будет бесплатно, для приватных стоимость будет определяться исходя из затраченных на выполнение шагов минут.
https://github.blog/2019-08-08-github-actions-now-supports-ci-cd/
В репозитории V8 создана ветка версии 7.7, в которой:
- произведены некоторые улучшения производительности за счет ленивого выделения памяти для хранения информации о типах (нужны для последующих спекулятивных оптимизаций)
- фоновая компиляция WebAssembly теперь быстрее на многоядерных ЦПУ
- рефакторинг стек трейсов, позволивший на 30% ускорить их сериализацию
- поддержка Intl.NumberFormat Unified API (stage 3)

Подробнее в блоге V8: https://v8.dev/blog/v8-release-77
Если вы (или ваши пользователи) сталкивались с ситуацией, когда из-за обновления/добавления контента клик приходился не по тому элементу (например, кнопке) из-за того, что всё сдвинулось (особо печальный случай в этом видео) – есть хорошая новость! В настоящий момент в Chrome в стадии Origin Trial (в том числе за флагом) находится Layout Instability API, который позволяет определить стабильность положения элемента: когда элемент смещается, для него высчитывается т.н. layout shift score, по которому можно судить насколько стоит доверять действию пользователя с этим элементом. Это, например, может использоваться для принятия решения, что пользователь кликнул по верному элементу. API входит в группу Performance API, поэтому для получения уведомлений используется PerformanceObserver.
Примеры и подробности: https://web.dev/layout-instability-api/
Аксель Раушмайер о предложении Nullish Coalescing operator (stage 3). К написаному в статье стоит добавить, что новый оператор также правильно работает с устаревшим методом document.all.

https://2ality.com/2019/08/nullish-coalescing.html