wasm: use WASI ABI for exit function

This improves compatibility between the regular browser target
(-target=wasm) and the WASI target (-target=wasi). Specifically, it
allows running WASI tests like this:

    tinygo test -target=wasi encoding/base32
This commit is contained in:
Ayke van Laethem
2021-04-14 23:10:42 +02:00
committed by Ron Evans
parent f145663464
commit 6dd5666ed1
3 changed files with 23 additions and 11 deletions
+9 -11
View File
@@ -276,6 +276,15 @@
mem().setUint32(nwritten_ptr, nwritten, true);
return 0;
},
"proc_exit": (code) => {
if (global.process) {
// Node.js
process.exit(code);
} else {
// Can't exit in a browser.
throw 'trying to exit with code ' + code;
}
},
},
env: {
// func ticks() float64
@@ -289,17 +298,6 @@
setTimeout(this._inst.exports.go_scheduler, timeout);
},
// func Exit(code int)
"syscall.Exit": (code) => {
if (global.process) {
// Node.js
process.exit(code);
} else {
// Can't exit in a browser.
throw 'trying to exit with code ' + code;
}
},
// func finalizeRef(v ref)
"syscall/js.finalizeRef": (sp) => {
// Note: TinyGo does not support finalizers so this should never be