var jsProcess = js.Global().Get("process")
var jsFS = js.Global().Get("fs")
var constants = jsFS.Get("constants")
+var uint8Array = js.Global().Get("Uint8Array")
var (
nodeWRONLY = constants.Get("O_WRONLY").Int()
return n, err
}
- a := js.TypedArrayOf(b)
- n, err := fsCall("read", fd, a, 0, len(b), nil)
- a.Release()
+ buf := uint8Array.New(len(b))
+ n, err := fsCall("read", fd, buf, 0, len(b), nil)
if err != nil {
return 0, err
}
+
+ a := js.TypedArrayOf(b)
+ a.Call("set", buf)
+ a.Release()
+
n2 := n.Int()
f.pos += int64(n2)
return n2, err
}
a := js.TypedArrayOf(b)
- n, err := fsCall("write", fd, a, 0, len(b), nil)
+ buf := uint8Array.New(len(b))
+ buf.Call("set", a)
a.Release()
+
+ n, err := fsCall("write", fd, buf, 0, len(b), nil)
if err != nil {
return 0, err
}
}
func Pread(fd int, b []byte, offset int64) (int, error) {
- a := js.TypedArrayOf(b)
- n, err := fsCall("read", fd, a, 0, len(b), offset)
- a.Release()
+ buf := uint8Array.New(len(b))
+ n, err := fsCall("read", fd, buf, 0, len(b), offset)
if err != nil {
return 0, err
}
+
+ a := js.TypedArrayOf(b)
+ a.Call("set", buf)
+ a.Release()
+
return n.Int(), nil
}
func Pwrite(fd int, b []byte, offset int64) (int, error) {
a := js.TypedArrayOf(b)
- n, err := fsCall("write", fd, a, 0, len(b), offset)
+ buf := uint8Array.New(len(b))
+ buf.Call("set", a)
a.Release()
+
+ n, err := fsCall("write", fd, buf, 0, len(b), offset)
if err != nil {
return 0, err
}