Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Статья в блоге Mozilla Hacks об инструменте web-ext, который позволяет просто и быстро создавать расширения для Firefox и браузеров на основе Chromium, а также поддерживает автоматическую перезагрузку.
Слайды к докладу Implementing one feature set in two JavaScript engines от Caio Lima и Joyee Сheung из Igalia на встрече разработчиков Web Engines Hackfest. В докладе рассказывалось об имплементации Class instance fields, Private methods & accessors и Static class features (все на stage 3) в JavaScript движках JavaScriptCore и V8.
The problems of shared mutable state and how to avoid them — новая статья от Акселя Раушмайера о мутабельных и немутабельных данных и о том, почему мутабельность может быть плохо.
Forwarded from Веб-стандарты (Веб-стандарты)
Фотографии, видео и слайды с WSD в Екатеринбурге 19 октября при поддержке Контура.

Фото во ВКонтакте https://vk.com/album-32017543_270129380
Фото в Фейсбуке https://www.facebook.com/pg/webstandardsru/photos/?tab=album&album_id=2529870837080640

Трансляция с таймкодами https://youtu.be/DsfnFrwKksA
Программа и слайды https://wsd.events/2019/10/19/#schedule
Добавленная этой весной поддержка JSON модулей в спецификации HTML недавно была убрана из неё из-за потенциальных проблем безопасности, описанных тут (невозможность гарантировать, что будет использован нужный парсер). Параллельно поддержка JSON модулей была убрана и из экспериментальной поддержки ESM в Node.js.
Статья (точнее её первая часть) Бена Смита, бывшего председателя #WebAssembly Working Group и Community group о том, как он создавал свою демку maze race на чистом WebAssembly.

https://binji.github.io/posts/raw-wasm-making-a-maze-race/
Компилятор Emscripten обновился до версии 1.39.0 и теперь использует LLVM бекенд по умолчанию вместо Fastcomp (форка LLVM, который использовался до этого).
https://github.com/emscripten-core/emsdk/pull/373
Всем привет. Сегодня день релизов. Хотя скорее даже вечер или ночь, так как все они планируются по американским таймзонам. Ожидаем:
- Chrome 78
- Node.js 13
- Firefox 70
- TypeScript 3.7 RC (стабильный релиз ожидается ещё через 2 недели)
Давайте поподробнее посмотрим что интересного планируется в свежем Chrome 78. Я выделю три самых интересных по моему мнению и исключу все Chrome-only Web API из WICG (вроде Native File System и новых возможностей для фингерпринта типа возможности определить наличие поддержки bleutooth).

Во-первых, это ожидаемый многими Optional Chaining (stage 3) (под флагом), который, кстати, появится и в TypeScript 3.7.
Лично меня больше впечатляет поддержка #WebAssembly Reference Types (phase 3) (и также под флагом). Этот пропозал является основой для многих других предложений в WebAssembly (например, Interface Types, Typed Function References, Exception Handling, Garbage Collector).
Ещё в новой версии появится поддержка одной из спецификаций, входящей в проект Houdini, а именно CSS Properties and Values API Level 1.
Что касается свежего Firefox 70, то в нём можно выделить поддержку нового бейслайн интерпретатора, поддержку WebRender на платформах Windows с интегрировнными видеокартами Intel для устройств с низким разрешением и поддержку Numeric Separators (stage 3) в SpiderMonkey.
Я уже писал о недавнем анализе VPN от Firefox, который оказался не таким уж и приватным, а теперь тот же ресурс проанализировал VPN от Opera. У него всё ещё хуже ☹️

https://restoreprivacy.com/opera-vpn/
Консорциум Unicode выпустил релиз Emoji 12.1, в котором добавлены 138 гендерно-нейтральных форм существующих emoji, 30 новых комбинаций людей, держащихся за руки с разными цветами кожи.

http://blog.unicode.org/2019/10/emoji-121-release-168-emoji-added.html
Состоялся релиз Node.js 13.0.0. В нём появилась поддержка полной версии ICU по умолчанию (а значит полная поддержка API интернационализации для всех языков), а V8 обновился до версии 7.8 (как в предстоящем релизе Chrome 78).
Если у Вас есть вопросы к комитету #TC39, то очень скоро будет отличный шанс задать их участникам панели TC39 конференции HolyJS. Билет на конференцию не требуется, но будет премодерация, поэтому лучше постараться сформулировать вопрос интересно и этично 😄. Форма для вопросов и участники вот тут.

А ещё 6 ноября члены кор тим Node.js будут менторить всех желающих законтрибьютить в ноду на Code & Learn. Только очень советую всем заранее склонить репозиторий Node.js и собрать ноду локально. Я этого не сделал перед петербургским Code & Learn, и потом несколько часов компилировал её, из-за чего не мог приступить к задачам 😄. Ссылка на регистрацию тут.
Некоторые читатели канала каким-то образом уже об этом узнали (и даже успели поставить звездочки и даже поучаствовать в обсуждениях синтаксиса!), хотя я еще не рассказывал… 😄 Теперь пришло время поделиться, потому что репозиторий теперь перенесён из моего аккаунта в организацию #TC39 на GitHub.

Был такой старый старый пропозал, у которого не было своего репозитория, хотя он в 2016 году попал на stage 1. Его авторами и чемпионами были создатель JavaScript Брендан Айк и недавно прекративший участие в TC39 Доменик Деникола. Ещё летом я вызвался помочь с этим пропозалом, и вот руки дошли. Это Generator Arrow Functions. Название говорит само за себя. Это стрелочные функции в генераторах. Хотя на самом деле возможно этот пропозал переименуется в Generator Keyword или в Generator Extensions или что-то подобное. Двигать его до stage 2 будет сложно, потому что пока нет понимания каким должен быть синтаксис (поучаствовать в обсуждениях можно тут).

https://github.com/tc39/proposal-generator-arrow-functions
Пропозалы Optional Chaining и Nullish Coalescing (оба stage 3) добавлены в повестку следующей (декабрьской) встречи #TC39. Чемпион Дениел Россенвассер собирается просить у комитета перевести их на stage 4. На самом деле это несколько странно, потому что пока ни один, ни другой пропозал не выполняют необходимые для этого условия.
Новый stage 0 пропозал от Justin Ridgewell из Google — Array select/reject. Автор предлагает добавить два новых метода в прототип массива:
- Array.prototype.select как алиас Array.prototype.filter
- Array.prototype.reject который, убирает элементы, при которых функция коллбек возвращает true
Предполагается, что это поможет неочивидность Array.prototype.filterфильтрируем ли мы по или фильтрируем от. Пропозал будет представлен комитету с целью перейти на stage 1.