Вебня
4.66K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
JavaScript движок XS от Moddable обзавёлся поддержкой Nullish Coalescing (ES2020), Optional Chaining (ES2020), String.prototype.replaceAll (stage 3), Promise.any (stage 3), RegExp match indices (stage 3). Также движок старается использовать целочисленную математику для Number когда это возможно для увеличения производительности.
Новая версия XS проходит набор тестов Test262 от TC39 на 99.9% (39039 из 39065 тестов)
Сегодня выйдет Chrome 81. Браузер получит обновлённый внешний вид форм, WebXR hit testing, Badging API. В рамках Origin Trail добавлено API Web NFC. Добавлена поддержка Intl.DisplayNames (stage 3).

Новое в DevTools Chrome 81
Новые фичи Chrome 81 на Chrome Platform Status
Новое в V8 8.1
Если вам вдруг интересно что нового в зарелизившейся вчера Java 14, то можно почитать об этом тут или тут.
Несколько дней назад число подписчиков превысило 5000 человек! Это очень мотивирует не останавливаться и постить интересные новости и статьи и дальше. Оказывается, я занимаюсь этим уже более полутора лет 😮. Большое спасибо всем читателям! Если Вам нравится, то делитесь с коллегами и друзьями :)

Напомню, что я принципиально отказываюсь постить здесь всякую рекламу. Если хочется поддержать канал, то это можно сделать на Patreon.
Mathias Bynens из Google представил свой проект Can I Unicode?, с помощью которого можно проверить какая версия Unicode поддерживается в разных браузерах для идентификаторов (имен переменных, функций и классов) и в регулярных выражениях.
Обновления Chrome и ChromeOS до версии 81 были отложены из-за перевода сотрудников к работе из дома и изменения их графика работы.
Вебня
Новый релиз Safari Technology Preview 101 включает новые фичи Web Inspector, улучшения Web Animations, исправления для Media, обновления различных Web API.
Ого! Никто и не обратил внимание (и в релизных записях этого тоже нет), а между тем, в Safari Technology Preview 101 появилась поддержка публичных полей экземпляра класса под флагом useClassFields!

https://trac.webkit.org/changeset/254653/webkit
В V8 собираются вытащить приватные методы и аксессоры из-под флага.

https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/HLpO-HC8aKc/TT32fUNPBAAJ
Вышел Babel 7.9.0 с поддержкой TypeScript 3.8, обновлённым JSX transform, поддержкой новых типов Record и Tuple (stage 1), а также обновлением preset-env, в который добавились оптимизации размера бандла благодаря preset-modules.
В Google решили пропустить выпуск Chrome 82. Графики выпусков версий также будут скорректированы. Напомню, что ранее был отложен выпуск Chrome 81, который так до сих пор и не выпущен. Он должен был быть выпущен 17 марта. Версии Google Chrome привязаны к соответствующим версиям движка V8 (например, в версии Chrome 83 будет V8 8.3), так что скорее всего Chrome просто пытается догнать свой движок, который смог продолжать регулярные релизы. Выпуск Chrome 83 пока что намечен на 9 июня.
Вышел Prettier 2.0 aka Prettier 2020 с очень большим количеством изменений и нововведений в форматировании JavaScript, TypeScript, Flow, CSS, SCSS, Less, HTML, Vue, Angular, Handlebars, GraphQL, Markdown и MDX. Релиз содержит breaking changes, на которые стоит обратить внимение перед обновлением.

https://prettier.io/blog/2020/03/21/2.0.0.html
Несколько часов назад в SpiderMonkey (JavaScript движок, используемый в Firefox) добавили поддержку флага s (dotAll) для регулярных выражений (ES2018). В течение дня поддержка фичи должна появиться в Firefox Nightly 76.
Microsoft и Google вместе работают над тем, чтобы движок V8, используемый в Edge и Chrome, догнал в тестах JetStream 2 и Octane движок JavaScriptCore, используемый в WebKit. Для этого ведётся работа над промежуточным JIT-компилятором TurboProp, который по сути является заимствованием из архитектуры JavaScriptCore.

На скриншоте приведён тест двухфазовой компиляции проекта TypeScript. Сначала компилируется более старая (предыдущая) версия комилятора TypeScript (TSC), которая затем компилирует последнюю версию TSC. JavaScriptCore на этих тестах примерно в 1.32-1.42 раза быстрее V8.
Ой, что-то я пропустил новость о том, что месяц назад (25 февраля), вышел релиз Scala.js 1.0.0 (а 10 марта уже и патч 1.0.1 с багфиксами). Как и предполагалось ранее, RC2 стал финальной версией. Изменений довольно много, осовные из них:
- улучшенный интероп с JavaScript бибилиотеками
- улучшено портирование кода со Scala/JVM
- улучшенная производительность
Вышли macOS 10.15.4 и iOS 13.4, а с ними и Safari 13.1. По этому случаю в блоге WebKit вышла статья Full Third-Party Cookie Blocking And More о приватности в новой версии браузера.
Движок JavaScriptCore получил поддержку Promise.allSettled (ES2020), Numeric Separators (stage 3). Кроме того появилась поддержка фунций CSS фукций max, min и clamp, значения свойства display: contents. Ещё из нового: Picture-in-Picture, отключение TLS 1.0/1.1, поддержка ResizeObserver, MediaRecorder API и частичная реализация Web Animations API.
Также вышел LLVM 10.0.0. Нас конечно же больше всего интересует что там с #WebAssembly:
- Multivalue function signatures теперь поддерживаются в объектных файлах WebAssembly
- новая инструкция atomic.fence
- поддержка Thread-Local Storage (TLS)
- значительное улучшение поддержки SIMD

Кроме того, Clang 10.0.0 научился использовать wasm-opt для уменьшения размера, если тот есть в PATH.

Полный список релизных записей LLVM и тулинга:
https://llvm.org/releases/10.0.0/docs/ReleaseNotes.html
https://llvm.org/releases/10.0.0/tools/clang/docs/ReleaseNotes.html
https://llvm.org/releases/10.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html
https://llvm.org/releases/10.0.0/tools/lld/docs/ReleaseNotes.html
https://llvm.org/releases/10.0.0/tools/polly/docs/ReleaseNotes.html
https://llvm.org/releases/10.0.0/projects/libcxx/docs/ReleaseNotes.html
Все 3 находящиеся на phase 4 пропозала в #WebAssembly, а именно Non-trapping float-to-int conversions, Sign-extension operators и Multi-value, будут переведены на phase 5 (добавлены в стандарт) на встрече wasm WG 8го апреля.