Pull to refresh

Comments 14

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

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

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

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

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

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

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

UFO just landed and posted this here
Где-то можно найти информацию о том как в конвейере V8 обрабатывается asm.js и wasm?
Для asm.js нет отдельного пайплайна (в отличие от SpiderMonkey), wasm вообще никакого отношения к V8 не имеет.

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


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

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

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

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

wasm — это и есть реализация вашей идеи, только не привязанная к конкретному браузеру.
Sign up to leave a comment.