Size: a a a

HolyJS, JavaScript-конференция

2018 June 01

ДК

Дмитрий К in HolyJS, JavaScript-конференция
Ребят, я вам покушать принёс.
https://gist.github.com/nin-jin/5408ef8f16f43f1b4fe9cbcea577aac6
Это пропозал для очень полезного изменения в js рантайме - файберов. Буду рад любому фидбэку и помощи, как то:
1. Предложения по улучшению апи.
2. Уточнения формулировок.
3. Примеры полезного применения.
4. Успешные истории из других языков и экосистем.
5. Советы по взаимодействию с TC39.
источник

AC

Alexander Chudesnov in HolyJS, JavaScript-конференция
Дмитрий К
Ребят, я вам покушать принёс.
https://gist.github.com/nin-jin/5408ef8f16f43f1b4fe9cbcea577aac6
Это пропозал для очень полезного изменения в js рантайме - файберов. Буду рад любому фидбэку и помощи, как то:
1. Предложения по улучшению апи.
2. Уточнения формулировок.
3. Примеры полезного применения.
4. Успешные истории из других языков и экосистем.
5. Советы по взаимодействию с TC39.
Кажется, что изменение в рантайме даже концептуально не стоит оформлять как обычный вызов метода у хост-объекта (если я правильно понял, что из себя представляет Promise.suspend)
источник

AC

Alexander Chudesnov in HolyJS, JavaScript-конференция
Но файберы в жс звучат как тема для холиварного доклада
источник

AM

Andrey Melikhov in HolyJS, JavaScript-конференция
Этот доклад был на HolyJS =)
источник

ДК

Дмитрий К in HolyJS, JavaScript-конференция
Alexander Chudesnov
Кажется, что изменение в рантайме даже концептуально не стоит оформлять как обычный вызов метода у хост-объекта (если я правильно понял, что из себя представляет Promise.suspend)
Почему? Без изменения синтаксиса можно сохранять обратную совместимость. Например, квантизация может просто выключаться при отсутствии поддержки рантайма не падая с синтаксической ошибкой.
источник

AC

Alexander Chudesnov in HolyJS, JavaScript-конференция
Дмитрий К
Почему? Без изменения синтаксиса можно сохранять обратную совместимость. Например, квантизация может просто выключаться при отсутствии поддержки рантайма не падая с синтаксической ошибкой.
Это все равно требует от пользователя фичи языка проверять ее наличие в рантайме.

Вот, скажем, есть реализация пассивных обработчиков событий в хроме, которая не совместима со стандартной (последний аргумент addEventListener - булевый, а в расширении от хрома — объект, соответственно, в браузерах, которые это расширение не реализуют, просто всегда будет включен useCapture) и требует опять же проверки в рантайме. Для API, который можно заполифиллить, это еще нормально, а вот для фичи которая меняет поведение event loop — кажется, совсем нет.
источник

ДК

Дмитрий К in HolyJS, JavaScript-конференция
В хроме сломали совместимость, да. Мой пропосал наоборот ничего не ломает, а только добавляет. Если этим не пользоваться - для пользователя ничего не изменится.
источник

AC

Alexander Chudesnov in HolyJS, JavaScript-конференция
Так и у хрома так же
источник

AC

Alexander Chudesnov in HolyJS, JavaScript-конференция
Если не пользоваться их расширением, ничего не сломается
источник

AC

Alexander Chudesnov in HolyJS, JavaScript-конференция
А если пользоваться - сломается у всех, кроме пользователей хрома
источник

ДК

Дмитрий К in HolyJS, JavaScript-конференция
А что вы предлагаете?
источник

AC

Alexander Chudesnov in HolyJS, JavaScript-конференция
Выбрать что-нибудь из reserved words или придумать новое :)
источник

AC

Alexander Chudesnov in HolyJS, JavaScript-конференция
Плюс, надо посмотреть, насколько это все в принципе необходимо с учётом наличия await.
источник

NG

Nick Gushchin in HolyJS, JavaScript-конференция
Дмитрий К
А что вы предлагаете?
Придется снова переписать движок реакта с файбера на... нативный файбер. И промисы для этого не очень подходят (с виду)
источник

ДК

Дмитрий К in HolyJS, JavaScript-конференция
Alexander Chudesnov
Выбрать что-нибудь из reserved words или придумать новое :)
Новый синтаксис тем более не заведётся в других браузерах.
источник

ДК

Дмитрий К in HolyJS, JavaScript-конференция
Alexander Chudesnov
Плюс, надо посмотреть, насколько это все в принципе необходимо с учётом наличия await.
Посмотрите примеры, они на await нереализуемы.
источник

ДК

Дмитрий К in HolyJS, JavaScript-конференция
Nick Gushchin
Придется снова переписать движок реакта с файбера на... нативный файбер. И промисы для этого не очень подходят (с виду)
Почему не подходят?
источник

AC

Alexander Chudesnov in HolyJS, JavaScript-конференция
Дмитрий К
Новый синтаксис тем более не заведётся в других браузерах.
Да, но разработчик, написавший код для этого нового браузера, вынужден будет предоставлять фолбэк просто потому, что код не запустится нигде
источник

AC

Alexander Chudesnov in HolyJS, JavaScript-конференция
А так мы получим снова ситуацию как с хромом, проприетарными свойствами CSS у Mobile Safari и IE
источник

AC

Alexander Chudesnov in HolyJS, JavaScript-конференция
Когда разработчики просто пишут код под один браузер
источник