aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bun.js/net.exports.js16
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;
}