Skip to content

syscall: js/wasm file operations fail on windows / node.js #71758

Closed
@Zxilly

Description

@Zxilly

Go version

go version go1.24.0 windows/amd64

Output of go env in your module/workspace:

set AR=ar
set CC=gcc
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_ENABLED=1
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set CXX=g++
set GCCGO=gccgo
set GO111MODULE=
set GOAMD64=v1
set GOARCH=amd64
set GOAUTH=netrc
set GOBIN=
set GOCACHE=C:\Users\zxilly\AppData\Local\go-build
set GOCACHEPROG=
set GODEBUG=
set GOENV=C:\Users\zxilly\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFIPS140=off
set GOFLAGS=
set GOGCCFLAGS=-m64 -mthreads -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\zxilly\AppData\Local\Temp\go-build2393991947=/tmp/go-build -gno-record-gcc-switches
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMOD=T:\go-size-analyzer\go.mod
set GOMODCACHE=C:\Users\zxilly\go\pkg\mod
set GONOPROXY=1
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\zxilly\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTELEMETRY=local
set GOTELEMETRYDIR=C:\Users\zxilly\AppData\Roaming\go\telemetry
set GOTMPDIR=
set GOTOOLCHAIN=auto
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.24.0
set GOWORK=
set PKG_CONFIG=pkg-config

What did you do?

Run a wasm binary contains file operations on Windows Node.js

What did you see happen?

panic: syscall/js: call of Value.Int on undefined

goroutine 1 [running]:
syscall/js.Value.float({{}, 0x0, 0x0}, {0x6dff7, 0x9})
	C:/hostedtoolcache/windows/go/1.24.0/x64/src/syscall/js/js.go:523 +0x10
syscall/js.Value.Int(...)
	C:/hostedtoolcache/windows/go/1.24.0/x64/src/syscall/js/js.go:540
syscall.init()
	C:/hostedtoolcache/windows/go/1.24.0/x64/src/syscall/fs_js.go:32 +0x37
C:\Program Files\nodejs\node.exe [--stack-size=8192 C:\hostedtoolcache\windows\go\1.24.0\x64\lib\wasm\wasm_exec_node.js C:\Users\RUNNER~1\AppData\Local\Temp\go-build2721495951\b002\go-size-analyzer.test -test.paniconexit0 -test.gocoverdir=C:\Users\RUNNER~1\AppData\Local\Temp\go-build2721495951\b002\gocoverdir -test.timeout=10m0s -test.v=true -test.gocoverdir=D:\a\go-size-analyzer\go-size-analyzer\covdata\unit]
panic: exit status 2

goroutine 1 [running]:
main.main()
	C:/Users/runneradmin/go/pkg/mod/github.com/!zxilly/go_js_wasm_exec@v1.1.3-0.20250214222407-149a70ce8586/main.go:52 +0x388
exit status 2
FAIL	github.com/Zxilly/go-size-analyzer	8.873s

What did you expect to see?

Works correctly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FixPendingIssues that have a fix which has not yet been reviewed or submitted.NeedsFixThe path to resolution is known, but the work has not been done.OS-JSTestingAn issue that has been verified to require only test changes, not just a test failure.arch-wasmWebAssembly issuescompiler/runtimeIssues related to the Go compiler and/or runtime.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions