Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Daniel Ehrenberg, представитель #TC39 от компании Igalia, создал недавно репозиторий с пропозалом Operator Overloading in JavaScript. Пока это предложение еще нигде не было представлено и не добавлено в повестку дня январской встречи TC39
https://github.com/littledan/proposal-operator-overloading
Январская встреча #TC39 пройдет в офисе GoDaddy с 29 по 31 января 2019. Это последний шанс для stage 3 предложений попасть в спецификацию ES2019. На данный момент в повестке указаны 3 пропозала, которые будут пытаться попасть на stage 4:
- Object.fromEntries
- Well-formed JSON.stringify
- String.prototype.{trimStart,trimEnd}
В Firefox 66 появятся динамические импорты, которые 5 минут назад приземлились в мастер.
https://bugzilla.mozilla.org/show_bug.cgi?id=1342012
Патч с Abortable Fetch в WebKit готов к ревью!
https://bugs.webkit.org/attachment.cgi?id=358267
Abortable Fetch влит в кодобазу WebKit! Ждем его появления в Safari TP! 🎉
⚠️ Внимание! Вы можете быть согласны или не согласны с автором следующей статьи, но учтите, что его выводы иногда неоднозначны, на некоторые из них члены комитета отвечали очень даже валидными контраргументами уже много раз в разных issue на GitHub. Данная статья ни в коем случае не рекомендуется в качестве неоспоримого источника правды, а только лишь как альтернативное мнение. ⚠️

Один из самых активых разработчиков из числа несогласных с предложениям о приватных полях классов собрал все свои аргументы против в статье на медиуме.

https://medium.com/@kingmph/the-new-feature-on-the-horizon-in-es-cd0015158ceb
Surma наконец-то влил мои пулл реквесты в IsHoudiniReadyYet.com. Теперь там все up to date.
На ближайшей встрече #TC39 будет рассмотрена альтернатива текущим предложениям о приватных полях классов — приватные символы. Это предложение является компромиссом между приватными полями и старой версией пропозала о приватных символах, которая была ранее представлена комитету Кевином Смитом из Майкрософт.

https://github.com/jridgewell/proposal-private-symbols
В 2019 году Dart для web собирается добавить поддержку современного JS. На данный момент dart2js позволяет компилировать только в ES5.
https://groups.google.com/a/dartlang.org/forum/#!msg/announce/x7eDinVT6fM/37GumZNtEAAJ
Еще немного про Dart. Вячеслав Егоров из Google опубликовал статью (а точнее черновик) о том, как работает виртуальная машина Dart.
https://mrale.ph/dartvm/
Вышел Safari TP 73, в котором помимо прочего появилась отмена Fetch, хотя в релизных записях это не указано.
https://webkit.org/blog/8555/release-notes-for-safari-technology-preview-73/
А тем временем продолжают кипеть страсти вокруг приватных свойств. Помимо альтернативного предложения о приватных символах (о котором я уже рассказывал), появилось дополнение к основным предложениям о приватных полях и приватных методахnew.initialize (на самом деле решает также и проблемы модификации цепочки прототипов). Но и это еще не всё. Появилось также предложение приватные декларации (честно говоря, по имеющейся информации я пока слабо понимаю мотивацию этого предложения).

Все эти три новых пропозала будут представлены уже менее чем через 2 недели на январской встрече #TC39.
Слайды к будущим презентациям:
- Private fields and methods refresher: Why they are based on WeakMaps
- Private Symbols for stage 1
- new.initialize for stage 1
- Private Declarations
Microsoft собираются заимплементить в Chromium расширение для системы модулей в ECMAScript — HTML модули. Изначально HTML модули были представлены Google на конференции BlinkOn в 2017 году. Это предложение решает многие проблемы, которые были у HTML imports (засорение глобального объекта, блокировка основного потока при парсинге HTML import и т.д.). Microsoft также обещают имплементацию HTML модулей в Edge. Safari и Firefox заявили о своей поддержке этой идеи на TPAC 2018.
Как-то совершенно незаметно в декабре вышел браузер Samsung Internet 8.2 (при том, что на официальной странице браузера на Samsung Developers указаны версии 6.4 и 7.2 Beta). Internet 8.2 основан на Chromium 63, а значит включает такие фичи как ES-модули и WebAssembly. Кроме того, уже доступна версия 9.2 Beta, которая включает обновление до Chromium 67 (добавит поддержку Custom Elements v1, CSS Paint API, Resize Observer, BigInt, отменяемый Fetch). Эта версия Chromium вышла в мае 2018, текущая актуальная версия Chromium 71 вышла 4 декабря 2018. Chromium 72 и основанный на этой версии Chrome 72 выйдут 29 января, в один день с Firefox 65.
Новость со вчерашней встречи по WebGPU (об этой технологии я писал ранее, например, здесь). Разработчики Chromium планируют добавить поддержку WebGPU под флагом в середине этого года. Стабильный релиз планируется не раньше 2020 года. Напомню, что Safari уже имеет поддержку WebGPU под флагом. Вопрос о языке шейдеров все еще открыт. Им может стать как WHLSL (развитие HLSL из Direct3D), так и SPIR-V.
Интересная статья от Бенедикта Мойрера из команды V8 про падение производительности при использовании Object.freeze(), Object.seal() и Object.preventExtensions().
https://docs.google.com/document/d/1X6zO5F_Zojizn2dmo_ftaOWsY8NltPHUhudBbUzMxnc/preview
Вышел Safari TP 74 с обновлениями Web Authentication, поддержкой WebRTC MDNS ICE, visual viewport API. В релизных записях также вспомнили по отменяемый фетч, который на самом деле был добавлен в 73 версии.

https://webkit.org/blog/8566/release-notes-for-safari-technology-preview-74/