diff options
-rw-r--r-- | src/bun.js/net.exports.js | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/bun.js/net.exports.js b/src/bun.js/net.exports.js index 11e9ce24b..f894cd5fa 100644 --- a/src/bun.js/net.exports.js +++ b/src/bun.js/net.exports.js @@ -86,11 +86,10 @@ export const Socket = (function (InternalSocket) { self.emit("error", error); }, - data(socket, buffer) { - const self = socket.data; - self.bytesRead += buffer.length; + data({ data: self }, { length, buffer }) { + self.bytesRead += length; const queue = self.#readQueue; - const ret = new Buffer(buffer.buffer); + const ret = new Buffer(buffer); if (queue.isEmpty()) { if (self.push(ret)) return; } @@ -339,7 +338,14 @@ export const Socket = (function (InternalSocket) { } else if (this.#writeCallback) { callback(new Error("overlapping _write()")); } else { - if (written > 0) chunk = chunk.slice(written); + if (written > 0) { + if (typeof chunk == "string") { + chunk = chunk.slice(written); + } else { + chunk = chunk.subarray(written); + } + } + this.#writeCallback = callback; this.#writeChunk = chunk; } |