Как «выйти» из процесса WebAssembly на внешнем интерфейсе? - PullRequest
0 голосов
/ 10 апреля 2019

Я пишу компилятор веб-сборки, который в настоящее время использует среду выполнения node.js.Мой код выполняет проверки ошибок, которые вызывают обработчик ошибок JavaScript, который в основном выполняет:

function error(errCode) {
    console.error("Some error message")
    process.exit(1)
}

, который я вызываю в веб-сборке, например:

(i32.const my_error_code)
(call $error)    

Есть ли эквивалентная интерфейсная функция, которую я могуиспользовать для остановки текущего процесса веб-сборки?

1 Ответ

0 голосов
/ 10 апреля 2019

Нет - WebAssembly НЕ запускается в своем собственном процессе. WebAssembly является частью JS, что означает, что WASM находится в том же контексте, что и ваш JS-контекст. Так что прекращать его процесс не имеет смысла. Он эмулирует только функцию выхода (), как вы опубликовали.

WASM, будучи частью JS, важно понимать, как работает WASM. В веб-браузере WASM может взаимодействовать только с JS API для системных функций. У него нет концепции процесса и нет собственных потоков. Потоки в мире WASM эмулируются с помощью Web Workers JS.

...