Вебня
Совсем забыл написать вчера огненную новость 🔥 (но возможно Вы уже в курсе). В Chrome 73, который выйдет уже через неделю (12 марта) убрали поддержку Web Components v0, что привело к поломке некоторых сайтов, например… YouTube. Этот видеосервис от Google использует…
Из-за проблем с YouTube и другими сайтами Web Components v0 решено было не убирать до Chrome 75. Сам YouTube уже работает в Canary, но работает медленно из-за полифилла.
https://groups.google.com/a/chromium.org/d/msg/blink-dev/h-JwMiPUnuU/KCiheZSeBQAJ
Спасибо @chalker за новость.
https://groups.google.com/a/chromium.org/d/msg/blink-dev/h-JwMiPUnuU/KCiheZSeBQAJ
Спасибо @chalker за новость.
Google
Google Groups
Google Groups allows you to create and participate in online forums and email-based groups with a rich experience for community conversations.
Предложение Function.prototype.toString переименовано в Function implementation hiding. Предлагается использовать директиву
https://github.com/tc39/proposal-function-implementation-hiding
”hide implementation”, которая как и директива ”use strict” может быть использована на уровне файла исходников или на уровне фунции.https://github.com/tc39/proposal-function-implementation-hiding
GitHub
GitHub - tc39/proposal-function-implementation-hiding: JavaScript language proposal: function implementation hiding
JavaScript language proposal: function implementation hiding - tc39/proposal-function-implementation-hiding
Колоссальное обновление получило предложение декораторов, находящееся в данный момент на stage 2.
https://github.com/tc39/proposal-decorators
https://github.com/tc39/proposal-decorators/blob/master/NEXTBUILTINS.md
https://github.com/tc39/proposal-decorators
https://github.com/tc39/proposal-decorators/blob/master/NEXTBUILTINS.md
GitHub
GitHub - tc39/proposal-decorators: Decorators for ES6 classes
Decorators for ES6 classes. Contribute to tc39/proposal-decorators development by creating an account on GitHub.
Официально зарелизился веб сайт #TC39, в создании которого я немного принимал участие, за что был упомянут в статье.
https://hacks.mozilla.org/2019/03/a-homepage-for-the-javanoscript-specification/
https://hacks.mozilla.org/2019/03/a-homepage-for-the-javanoscript-specification/
Mozilla Hacks – the Web developer blog
A Homepage for the JavaScript Specification – Mozilla Hacks - the Web developer blog
Ecma TC39 has shipped a website for following updates to the JavaScript specification. It's the first part of a two-part project to help people find the information they need in ...
Уже на следующей неделе состоится мартовская встреча #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