Деструктуризация массивов имеет некоторые проблемы с производительностью из-за необходимости использовать Iteration protocol. Бенедикт Мойер написал об этом статью в свете React хуков.
https://docs.google.com/document/d/1hWb-lQW4NSG9yRpyyiAA_9Ktytd5lypLnVLhPX9vamE/edit
Потенциальное решение — спекулятивные оптимизации. Движок должен понять, что в каком-то конкретном случае
https://docs.google.com/document/d/1hWb-lQW4NSG9yRpyyiAA_9Ktytd5lypLnVLhPX9vamE/edit
Потенциальное решение — спекулятивные оптимизации. Движок должен понять, что в каком-то конкретном случае
Array.prototype[Symbol.iterator] никак не используется и пропустить лишние машинные операции.Google Docs
Array destructuring for multi-value returns (in light of React hooks)
Array.prototype.sort теперь стабильная во всех основных движках (теперь и ChakraCore, в которой до недавнего времени сортировка была стабильной только для массивов длиной не выше 512 элементов). На предстоящей встрече #TC39 с докладом об этом выступит Mathias Bynens. Вот слайдыhttps://docs.google.com/presentation/d/1Io53b2Bi3_N0_wguWoA9OKuPRpHch34EVbS1H8zISes/edit
Google Docs
Array.prototype.sort update @ TC39 November 2018
Array#sort stability
А вот соответствующее нормативное изменение в спецификацию https://github.com/tc39/ecma262/pull/1340
GitHub
[Normative] Make Array.prototype.sort stable by mathiasbynens · Pull Request #1340 · tc39/ecma262
All major JavaScript engines now have a stable Array.prototype.sort implementation. Let’s update the spec accordingly.
References:
https://v8.dev/blog/array-sort
microsoft/ChakraCore@c565b12
Modda...
References:
https://v8.dev/blog/array-sort
microsoft/ChakraCore@c565b12
Modda...
Публичные и приватные поля классов близки к добавлению в JavaScriptCore. Уже готовы патчи, реализующие необходимую логику парсера, байткод и тесты, а также будет отдельно патч с изменениями JIT/DFG (и одно, и другое уже есть в git репозитории).
Svelte завели репозиторий с RFC. Первый из них называется Reactive Assignments и добавляет реактивность в Svelte на уровне языка.
Еще одна тема, которая будет обсуждаться на ноябрьской встрече #TC39 — обновления по декораторам. На каринке слайд-спойлер про возможное ближайшее будущее.
Стандарт Unicode 12.0 перешел в фазу бета тестирования. Релиз планируется на 5 марта 2019. Совсем черновой вариант обзора можно почитать вот тут:
https://unicode.org/versions/beta-12.0.0.html
https://unicode.org/versions/beta-12.0.0.html
Спецификация CSS Selectors level 3 стала Candidade Recommendation.
Добавили новый комбинатор
Добавили новый комбинатор
~, новые псевдоклассы, substring matching attribute selectors, обновили граматику. Полный список изменений тут. Большинство этих фич уже есть во всех браузерах.❗️Все слайды со встречи #WebAssembly CG на #TPAC:❗️
- Tail Calls
- C/C++ API
- Threads and Weak Memory
- CSP
- Exceptions Handling
- ES Modules Integration
- Reference Types
- Host Bindings
- Garbage Collection
- Tail Calls
- C/C++ API
- Threads and Weak Memory
- CSP
- Exceptions Handling
- ES Modules Integration
- Reference Types
- Host Bindings
- Garbage Collection
Собрал немного информации по имплементации сборщика мусора #WebAssembly в браузерах
https://github.com/WebAssembly/gc/issues/44#issuecomment-436433194
https://github.com/WebAssembly/gc/issues/44#issuecomment-436433194
Я еще об этом не писал, но тут появился хороший повод. На ближайшей встрече #TC39 будут обсуждать JS outreach groups, представленные делегатами TC39 и приглашенными экспертами. Генеральный секретарь Ecma International доктор Istvan Sebestyen предложил сделать группы официальной частью Ecma. А хороший повод в том, что Daniel Ehrenberg (тот что TC39 chair) сегодня пригласил меня, как активного представителя коммьюнити, участвовать во встречах Educators Group. Ближайшая встреча Educators Group пройдет завтра.
Вышел релиз Safari Technology Preview 69. Из нового:
- conic gradients включены подефолту
-
- улучшения CSS Painting API
- улучшения Web Animations API
- улучшения Intersection Observer
- скроллбар научился менять цвет в dark mode или при темном фоне
- BigInt нучились бинарному исключающему или (^)
- улучшения Media
- улучшения Web Inspector
- улучшения WebRTC
- улучшения Payment Request
- добавлено deprecation message при использовании WebSQL
- фиксы IndexedDB
- conic gradients включены подефолту
-
<datalist> элемент включен подефолту- улучшения CSS Painting API
- улучшения Web Animations API
- улучшения Intersection Observer
- скроллбар научился менять цвет в dark mode или при темном фоне
- BigInt нучились бинарному исключающему или (^)
- улучшения Media
- улучшения Web Inspector
- улучшения WebRTC
- улучшения Payment Request
- добавлено deprecation message при использовании WebSQL
- фиксы IndexedDB
WebKit
Release Notes for Safari Technology Preview 69
Safari Technology Preview Release 69 is now available for download for macOS Mojave and macOS High Sierra.
Пропозал Optional Chaining собирается покорять stage 2 на #TC39
GitHub
GitHub - tc39/proposal-optional-chaining
Contribute to tc39/proposal-optional-chaining development by creating an account on GitHub.
Протокол, который ранее называли HTTP-over-QUIC, теперь официально будет называться HTTP/3
https://daniel.haxx.se/blog/2018/11/11/http-3/
https://daniel.haxx.se/blog/2018/11/11/http-3/
Для браузера Firefox готов патч, который добавляет флаг для включения BigInt.
https://bugzilla.mozilla.org/show_bug.cgi?id=1506542
https://bugzilla.mozilla.org/show_bug.cgi?id=1506542
bugzilla.mozilla.org
1506542 - Add run-time flag to enable bigint support
NEW (wingo) in Core - JavaScript Engine. Last updated 2018-11-12.
Тут начинается трансляция первого дня Chrome Dev Summit
https://developer.chrome.com/devsummit/
Расписание: https://developer.chrome.com/devsummit/schedule
https://developer.chrome.com/devsummit/
Расписание: https://developer.chrome.com/devsummit/schedule
Команда Chrome представила веб сервис https://squoosh.app, который позволяет оптимизировать изображения и менять их формат прямо в браузере. Все необходимые кодеки скомпилированы в #WebAssembly. Исходники лежат вот здесь.
GitHub
GitHub - GoogleChromeLabs/squoosh: Make images smaller using best-in-class codecs, right in the browser.
Make images smaller using best-in-class codecs, right in the browser. - GoogleChromeLabs/squoosh
Function.prototype.toString revision собирается брать stage 4 и тем самым оказаться в ES2019. Ноябрьская встреча #TC39 — это предпоследний шанс для stage 3 предложений попасть в новую редакцию спецификации. В январе произойдет feature freeze, после чего пропозалы смогут быть включены уже лишь в ES2020 или последующие версии. На данный момент в ES2019, помимо различных нормативных изменений, попали только 2 фичи: optional catch binding и JSON superset.
GitHub
tc39/Function-prototype-toString-revision
:fishing_pole_and_fish: ECMA-262 proposal to update Function.prototype.toString - tc39/Function-prototype-toString-revision
Web Locks API, о котором я писал ранее, планирует миграцию из Web Incubator CG в WebApps WG. Для этого нужны как минимум два заинтересованных имплементора. Напомню, что Chrome имеет поддержку этого API с 69 версии.