From 3c4abe0e91ec83189070d9e1ea0a42a8c74356a2 Mon Sep 17 00:00:00 2001 From: Denys Otrishko Date: Sun, 23 Aug 2020 11:47:31 +0300 Subject: [PATCH] net: replace usage of internal stream state with public api Refs: https://github.com/nodejs/node/issues/445 PR-URL: https://github.com/nodejs/node/pull/34885 Reviewed-By: Luigi Pinca Reviewed-By: Matteo Collina Reviewed-By: Anna Henningsen Reviewed-By: Ricky Zhou <0x19951125@gmail.com> --- lib/net.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/net.js b/lib/net.js index b47c540ac8b692..d0d7cfcb92addc 100644 --- a/lib/net.js +++ b/lib/net.js @@ -807,19 +807,18 @@ protoGetter('_bytesDispatched', function _bytesDispatched() { protoGetter('bytesWritten', function bytesWritten() { let bytes = this._bytesDispatched; - const state = this._writableState; const data = this._pendingData; const encoding = this._pendingEncoding; + const writableBuffer = this.writableBuffer; - if (!state) + if (!writableBuffer) return undefined; - this.writableBuffer.forEach(function(el) { - if (el.chunk instanceof Buffer) - bytes += el.chunk.length; - else - bytes += Buffer.byteLength(el.chunk, el.encoding); - }); + for (const el of writableBuffer) { + bytes += el.chunk instanceof Buffer ? + el.chunk.length : + Buffer.byteLength(el.chunk, el.encoding); + } if (ArrayIsArray(data)) { // Was a writev, iterate over chunks to get total length