This adds an experimental package gojs which implements the host side of Wasm compiled by GOARCH=wasm GOOS=js go build -o X.wasm X.go This includes heavy disclaimers, in part inherited by Go's comments https://github.com/golang/go/blob/go1.19/src/syscall/js/js.go#L10-L11 Due to this many will still use TinyGo instead. That said, this is frequently asked for and has interesting features including reflection and HTTP client support. Signed-off-by: Adrian Cole <adrian@tetrate.io>
27 lines
582 B
Go
27 lines
582 B
Go
package gojs_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/tetratelabs/wazero"
|
|
"github.com/tetratelabs/wazero/internal/testing/require"
|
|
)
|
|
|
|
func Test_syscall(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
stdout, stderr, err := compileAndRun(testCtx, "syscall", wazero.NewModuleConfig())
|
|
|
|
require.EqualError(t, err, `module "" closed with exit_code(0)`)
|
|
require.Zero(t, stderr)
|
|
require.Equal(t, `syscall.Getpid()=1
|
|
syscall.Getppid()=0
|
|
syscall.Getuid()=0
|
|
syscall.Getgid()=0
|
|
syscall.Geteuid()=0
|
|
syscall.Umask(0077)=0o77
|
|
syscall.Getgroups()=[0]
|
|
os.FindProcess(pid)=&{1 0 0 {{0 0} 0 0 0 0}}
|
|
`, stdout)
|
|
}
|