Уже на следующей неделе состоится мартовская встреча #TC39 в Google. Дедлайн для предложений, которые собираются переходить на следующий stage уже прошёл, поэтому список таких предложений в документе можно считать окончательным.
Что интересно, Daniel Ehrenberg собирается пробовать продвигать динамические импорты на stage 4. Напомню, что некоторые члены комитета против этого продвижения, даже не смотря на то, что динамические импорты уже доступны во всех браузерах.
Среди предложений, которые будут обсуждаться, есть 3 новых:
- Private Declarations
- Promise.result
- Promise.any
Кстати, я являюсь соавтором Promise.any и пишу текст спецификации для него.
Что интересно, Daniel Ehrenberg собирается пробовать продвигать динамические импорты на stage 4. Напомню, что некоторые члены комитета против этого продвижения, даже не смотря на то, что динамические импорты уже доступны во всех браузерах.
Среди предложений, которые будут обсуждаться, есть 3 новых:
- Private Declarations
- Promise.result
- Promise.any
Кстати, я являюсь соавтором Promise.any и пишу текст спецификации для него.
Делюсь с вами экслюзивом. Это предложение было показано Дениелом Эренбергом на JS Kongress Deep-Track. Его видели всего около 20 человек, и у него еще нет репозитория на гитхабе, только гист. В нём вы можете увидеть новые иммутабельные типы Record и Tuple. Предлагается реализовать их через обновленный пропозал декораторов (об этом обновлении я скорее всего еще расскажу позже подробнее).
https://gist.github.com/littledan/eb10cabc39e884c4a5fd6bbaa60afec0
https://gist.github.com/littledan/eb10cabc39e884c4a5fd6bbaa60afec0
На только что завершившейся встрече #WebAssembly CG предложение интеграции с ECMAScript модулями перешло на фазу 2.
GitHub
esm-integration/proposals/esm-integration at master · WebAssembly/esm-integration
ECMAScript module integration. Contribute to WebAssembly/esm-integration development by creating an account on GitHub.
Вышел Firefox 66, в котором особо ничего интересного не добавили.
https://www.mozilla.org/en-US/firefox/66.0/releasenotes/
https://www.mozilla.org/en-US/firefox/66.0/releasenotes/
Mozilla
Firefox 66.0, See All New Features, Updates and Fixes
Денис Пушкарев выпустил новую мажорную версию core-js 3.0, которая используется в Babel и, пожалуй, является самой популярной библиотекой полифиллов. В этой версии очень много изменений, посмотрите ченджлог и поддержите разработку библиотеки на Open Collective или Patreon.
GitHub
core-js/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md at master · zloirock/core-js
Standard Library. Contribute to zloirock/core-js development by creating an account on GitHub.
Также вышел релиз Babel 7.4.0 с поддержкой TypeScript 3.4, core-js 3 и другими фичами
https://babeljs.io/blog/2019/03/19/7.4.0
https://babeljs.io/blog/2019/03/19/7.4.0
babeljs.io
7.4.0 Released: core-js 3, static private methods and partial application · Babel
Today we are releasing Babel 7.4.0!
Вышел LLVM 8, в котором target #WebAssembly включен по умолчанию и больше не является экспериментальным
http://lists.llvm.org/pipermail/llvm-announce/2019-March/000082.html
http://releases.llvm.org/8.0.0/docs/ReleaseNotes.html#changes-to-the-webassembly-target
http://lists.llvm.org/pipermail/llvm-announce/2019-March/000082.html
http://releases.llvm.org/8.0.0/docs/ReleaseNotes.html#changes-to-the-webassembly-target
Вышел Safari Technology Preview 78. Из главного: в нём Pointer Events включены по умолчанию + добавлена их поддержка в macOS.
Остальные изменения здесь: https://webkit.org/blog/8676/release-notes-for-safari-technology-preview-78/
Остальные изменения здесь: https://webkit.org/blog/8676/release-notes-for-safari-technology-preview-78/
WebKit
Release Notes for Safari Technology Preview 78
Safari Technology Preview Release 78 is now available for download for macOS Mojave and macOS High Sierra.
Новая версия движка V8 перешла в стадию бета. В ней добавилось много интересного, например, возможность отключения JIT, поддержка потоков в WebAssembly (phase 2) по умолчанию на всех платформах, поддержка приватных полей классов (stage 3), Intl.Locale (stage 3) и оптимизации по производительности и использованию памяти.
https://v8.dev/blog/v8-release-74
https://v8.dev/blog/v8-release-74
А вот тут можно почитать что добавилось бете Chrome 74 помимо вышеперечисленных фич.
https://blog.chromium.org/2019/03/chrome-74-beta-reducing-unwanted-motion.html
https://blog.chromium.org/2019/03/chrome-74-beta-reducing-unwanted-motion.html
Chromium Blog
Chrome 74 beta: reducing unwanted motion, private class fields, and feature policy API
Unless otherwise noted, changes described below apply to the newest Chrome Beta channel release for Android, Android WebView, Chrome OS, Lin...
В Firefox включили BigInt (stage 3) подефолту в Nightly сборках (но сама Nightly сборка с этим изменением еще не готова и ожидается позже сегодня).
upd: сборка уже доступна, можно обновляться
https://bugzilla.mozilla.org/show_bug.cgi?id=1531293
upd: сборка уже доступна, можно обновляться
https://bugzilla.mozilla.org/show_bug.cgi?id=1531293
GitHub
GitHub - tc39/proposal-bigint: Arbitrary precision integers in JavaScript
Arbitrary precision integers in JavaScript. Contribute to tc39/proposal-bigint development by creating an account on GitHub.
Toon Verwaest написал в блог V8 статью о том, как он добавлял оптимизации парсера.
https://v8.dev/blog/scanner
https://v8.dev/blog/scanner
Наконец-то есть новости с первого дня мартовской встречи #TC39, которая проходит сейчас в Нью-Йоркском офисе Google.
String.prototype.matchAll (stage 3) уходит на stage 4, благодаря чему попадает в ES2020.
String.prototype.matchAll (stage 3) уходит на stage 4, благодаря чему попадает в ES2020.
GitHub
GitHub - tc39/proposal-string-matchall: ES Proposal, specs, tests, reference implementation, and polyfill/shim for String.prototype.matchAll
ES Proposal, specs, tests, reference implementation, and polyfill/shim for String.prototype.matchAll - tc39/proposal-string-matchall
ECMA402 предложение DateTimeFormat dateStyle & timeStyle (stage 2) переходит на stage 3
GitHub
tc39/proposal-intl-datetime-style
dateStyle and timeStyle options for DateTimeFormat - tc39/proposal-intl-datetime-style
Вебня
ECMA402 предложение DateTimeFormat dateStyle & timeStyle (stage 2) переходит на stage 3
Слайды с этой презентации
https://docs.google.com/presentation/d/17Xsw43vHocojTXisuTfpIv37JHKqwWtvrXcL-7VrJQ8/edit#slide=id.p
https://docs.google.com/presentation/d/17Xsw43vHocojTXisuTfpIv37JHKqwWtvrXcL-7VrJQ8/edit#slide=id.p
Google Docs
dateStyle/timeStyle For Stage 3
dateStyle/timeStyle For Stage 3 Presenter: Daniel Ehrenberg, Igalia Original author: Zibi Braniecki, Mozilla January 2019 TC39 meeting
Еще один ECMA402 пропозал, Intl.DateTimeFormat.prototype.formatRange (stage 2) отправляется на stage 3.
Слайды: https://docs.google.com/presentation/d/e/2PACX-1vRiHjIBX74841Hf2vyeqMm9jbb-pzQoFwh4Ecdvz8JISAGXuV_jGv_3Id_jOXxP3SWjF9z9lcyL9NPX/pub?slide=id.p
Слайды: https://docs.google.com/presentation/d/e/2PACX-1vRiHjIBX74841Hf2vyeqMm9jbb-pzQoFwh4Ecdvz8JISAGXuV_jGv_3Id_jOXxP3SWjF9z9lcyL9NPX/pub?slide=id.p
GitHub
tc39/proposal-intl-DateTimeFormat-formatRange
ECMA 402 proposal for DateTimeFormat.prototype.{formatRange,formatRangeToParts} - tc39/proposal-intl-DateTimeFormat-formatRange
Promise.allSettled (stage 2) отправляется на stage 3.
Слайды: https://docs.google.com/presentation/d/1A5kGO-YF0imcltyQYZIsCDGHG_k-9IZ6CPMfWlFl85s/edit
Слайды: https://docs.google.com/presentation/d/1A5kGO-YF0imcltyQYZIsCDGHG_k-9IZ6CPMfWlFl85s/edit
GitHub
GitHub - tc39/proposal-promise-allSettled: ECMAScript Proposal, specs, and reference implementation for Promise.allSettled
ECMAScript Proposal, specs, and reference implementation for Promise.allSettled - tc39/proposal-promise-allSettled
Позавчера вышли Safari 12.1 для дескопа и iOS 12.2, к которым до сих пор нет релизных записей, поэтому я составлю свои.
Изменения, связанные с JavaScript:
- Поддержка ES2019 фичи Object.fromEntries
- Поддержка ES2019 фичи Well-formed JSON.stringify (описывается в конце статьи MDN про JSON.stringify)
- Поддержка stage 3 предложения globalThis
Другое:
- Поддержка CSS Logical Properties and Values
- Полная поддержка Payment Request API
- Поддержка AbortController & AbortSignal (да, теперь можно отменять Fetch и в Safari)
- CSS Conical Gradients
- Тип color для input элементов в HTML
- HTML элемент Datalist
- Web Share API
- IntersectionObserver
- TLS 1.3
- Убрали поддержку устаревшего Do Not Track API, который чаще используется для дополнительного отслеживания пользователя, чем по назначению
- Добавили Intelligent Tracking Prevention 2.1
Изменения, связанные с JavaScript:
- Поддержка ES2019 фичи Object.fromEntries
- Поддержка ES2019 фичи Well-formed JSON.stringify (описывается в конце статьи MDN про JSON.stringify)
- Поддержка stage 3 предложения globalThis
Другое:
- Поддержка CSS Logical Properties and Values
- Полная поддержка Payment Request API
- Поддержка AbortController & AbortSignal (да, теперь можно отменять Fetch и в Safari)
- CSS Conical Gradients
- Тип color для input элементов в HTML
- HTML элемент Datalist
- Web Share API
- IntersectionObserver
- TLS 1.3
- Убрали поддержку устаревшего Do Not Track API, который чаще используется для дополнительного отслеживания пользователя, чем по назначению
- Добавили Intelligent Tracking Prevention 2.1
В Mozilla реализовали DNS через HTTPS (DoH) для Firefox для повышения приватности. Компанией будут выбраны Trusted Recursive Resolvers, которые обязуются следовать полиси о приватности. Первым их TTR партнером станет CloudFlare. Для разных регионов возможны свои наборы TTR, а в некоторых регионах DoH возможно не будет включен по умолчанию.
https://mailarchive.ietf.org/arch/msg/doh/po6GCAJ52BAKuyL-dZiU91v6hLw
https://mailarchive.ietf.org/arch/msg/doh/po6GCAJ52BAKuyL-dZiU91v6hLw
Через несколько минут начнется второй день мартовской встречи #TC39, а пока держите слайды предложения Uniform parsing of quasi-standard Date.parse input (stage 1), по которому комитет вчера не пришел к консенсусу и оставил на 1 стейдже.
Google Docs
Parsing quasi-standard date-time strings (March 2019)
Parsing quasi-standard date-time strings Richard Gibson https://github.com/tc39/proposal-uniform-interchange-date-parsing Proposal: https://github.com/tc39/proposal-uniform-interchange-date-parsing