mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-04 11:07:46 +00:00
wasm: add test for js.FuncOf
While there are some browser tests, Node.js is just a lot better for testing this kind of stuff because it's much faster and we don't need a browser for this.
This commit is contained in:
committed by
Ron Evans
parent
5e3c816373
commit
cd2bb8333d
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
package main
|
||||
|
||||
import "syscall/js"
|
||||
|
||||
func main() {
|
||||
js.Global().Call("setCallback", js.FuncOf(func(this js.Value, args []js.Value) any {
|
||||
println("inside callback! parameters:")
|
||||
sum := 0
|
||||
for _, value := range args {
|
||||
n := value.Int()
|
||||
println(" parameter:", n)
|
||||
sum += n
|
||||
}
|
||||
return sum
|
||||
}))
|
||||
js.Global().Call("callCallback")
|
||||
}
|
||||
Vendored
+21
@@ -0,0 +1,21 @@
|
||||
require('../targets/wasm_exec.js');
|
||||
|
||||
var callback;
|
||||
|
||||
global.setCallback = (cb) => {
|
||||
callback = cb;
|
||||
};
|
||||
|
||||
global.callCallback = () => {
|
||||
console.log('calling callback!');
|
||||
let result = callback(1, 2, 3, 4);
|
||||
console.log('result from callback:', result);
|
||||
};
|
||||
|
||||
let go = new Go();
|
||||
WebAssembly.instantiate(fs.readFileSync(process.argv[2]), go.importObject).then((result) => {
|
||||
go.run(result.instance);
|
||||
}).catch((err) => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
Vendored
+7
@@ -0,0 +1,7 @@
|
||||
calling callback!
|
||||
inside callback! parameters:
|
||||
parameter: 1
|
||||
parameter: 2
|
||||
parameter: 3
|
||||
parameter: 4
|
||||
result from callback: 10
|
||||
Reference in New Issue
Block a user