Как стать автором
Обновить

Комментарии 14

Уважаемые читатели! Планируете ли вы анализировать байт-код ваших JS-программ?

Можно было бы сделать голосование в статье.

Статья очень интересная, но анализировать байт-код я буду вряд ли. Для меня это имело бы смысл, если бы я мог какой-то кусок непосредственно поменять. Есть конечно возможность переписать немного исходного кода, но ведь не зная полностью потроха — далеко не сразу угадаешь же что получится, верно?

Реально польза могла бы быть, будь конструктор по типу JetBrains MPS в этот байткод. Уже был бы и Typescript -> байткод, и много чего.
V8 имеет несколько сотен байт-кодов.

Не путайте опкоды и байт-код

The name bytecode stems from instruction sets that have one-byte opcodes followed by optional parameters.

я не понимаю сути притензий.

НЛО прилетело и опубликовало эту надпись здесь
Где-то можно найти информацию о том как в конвейере V8 обрабатывается asm.js и wasm?
Для asm.js нет отдельного пайплайна (в отличие от SpiderMonkey), wasm вообще никакого отношения к V8 не имеет.
Как это никакого?
github.com/v8/v8/tree/master/src/wasm в 2017 уже существовал, и до сих пор там же.

Блин, классно конечно это всё, но было бы круче, если бы можно было эти байткоды загружать отдельно. То есть если браузер хром, то он загружает уже готовые байткоды, что и легче и для конечного пользователя практичнее. А остальные пусть загружают исходник...


Ну это так, идея просто.

Да знаю я про wasm)
Это не совсем то, что я описываю. У wasm вся соль на том, что он быстрый, потому что изначально нативный. Ну короче говоря это просто асм. А вот байткод бы дал те же преимущества, что и в яве даёт. То бишь выше по по реализации, ибо байткод изначально умеет работать с дом, он имеет доступ к api всем. Это по сути полнофункциональный js, вот только ниже и не нужно ждать пока браузер его скомпилит в байткод)
Но это к сожалению относится только к хрому. В лисаньке такое уже не прокатит, у них честный интерпретатор.

Поэтому я и говорю, что это просто идея, часть работы сделать при билдинге, и клиенту выдавать уже отчасти пережёванный код.
У wasm вся соль на том, что он быстрый, потому что изначально нативный. Ну короче говоря это просто асм.

Даже близко не нативный: один и тот же нативный код не мог бы выполняться и на десктопах, и на телефонах.

wasm — это и есть реализация вашей идеи, только не привязанная к конкретному браузеру.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий