mirror of
https://github.com/golang/go
synced 2024-11-24 23:07:56 -07:00
syscall,misc/wasm: fix path expansion on non-unix platforms
When running a go binary compiled to wasm using node.js on a Windows platform,
the absolute path passed in is also incorrectly forced to expand.
For example:
E:\Project\CS_Project\gsv\testdata\result.gob.gz
will results to
open C:\Users\zxilly\AppData\Local\wasm-exec\go1.23rc1\E:\Project\CS_Project\gsv\testdata\result.gob.gz: No such file or directory
C:\Users\zxilly\AppData\Local\wasm-exec\go1.23rc1 is the place of
wasm_exec_node.js
Fixes: #68820
Change-Id: Ic30c6242302f8915ac1b8ea9f24546935cbb791e
GitHub-Last-Rev: f35ff1a2ee
GitHub-Pull-Request: golang/go#68255
Reviewed-on: https://go-review.googlesource.com/c/go/+/595797
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
This commit is contained in:
parent
c8ccbcdde5
commit
bcec5f1540
@ -73,6 +73,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
if (!globalThis.path) {
|
||||
globalThis.path = {
|
||||
resolve(...pathSegments) {
|
||||
return pathSegments.join("/");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!globalThis.crypto) {
|
||||
throw new Error("globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)");
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ if (process.argv.length < 3) {
|
||||
|
||||
globalThis.require = require;
|
||||
globalThis.fs = require("fs");
|
||||
globalThis.path = require("path");
|
||||
globalThis.TextEncoder = require("util").TextEncoder;
|
||||
globalThis.TextDecoder = require("util").TextDecoder;
|
||||
|
||||
|
@ -16,6 +16,7 @@ import (
|
||||
func now() (sec int64, nsec int32)
|
||||
|
||||
var jsProcess = js.Global().Get("process")
|
||||
var jsPath = js.Global().Get("path")
|
||||
var jsFS = js.Global().Get("fs")
|
||||
var constants = jsFS.Get("constants")
|
||||
|
||||
@ -101,10 +102,8 @@ func Open(path string, openmode int, perm uint32) (int, error) {
|
||||
}
|
||||
}
|
||||
|
||||
if path[0] != '/' {
|
||||
cwd := jsProcess.Call("cwd").String()
|
||||
path = cwd + "/" + path
|
||||
}
|
||||
path = jsPath.Call("resolve", path).String()
|
||||
|
||||
f := &jsFile{
|
||||
path: path,
|
||||
entries: entries,
|
||||
|
Loading…
Reference in New Issue
Block a user