По просьбам трудящихся, пишу о внутреннем устройстве WebAssembly.
WebAssembly — байткод для стековой виртуальной машины. Значит, для запуска кода такой нужны интерпретатор, стек и хранилище кода. Если мы хотим взаимодействовать с внешним миром, нужен интерфейс к внешней машине, хосту. Дополнительно стандарт определяет две структуры: непрерывную память и таблицы. В версии MVP стандарта их может быть по одной штуке каждого, или не быть вовсе.
В итоге, наш технобордель выглядит так:

- Интерпретатор
- Интерфейс к хосту
- Стек
- Хранилище кода
- Память
- Таблица
Займёмся делом!