diff --git a/lib/internal/streams/buffer_list.js b/lib/internal/streams/buffer_list.js index 36777ed82d4bcb..9d6e9e2fe4f7f9 100644 --- a/lib/internal/streams/buffer_list.js +++ b/lib/internal/streams/buffer_list.js @@ -71,19 +71,19 @@ module.exports = class BufferList { // Consumes a specified amount of bytes or characters from the buffered data. consume(n, hasStrings) { - var ret; - if (n < this.head.data.length) { + const data = this.head.data; + if (n < data.length) { // `slice` is the same for buffers and strings. - ret = this.head.data.slice(0, n); - this.head.data = this.head.data.slice(n); - } else if (n === this.head.data.length) { + const slice = data.slice(0, n); + this.head.data = data.slice(n); + return slice; + } + if (n === data.length) { // First chunk is a perfect match. - ret = this.shift(); - } else { - // Result spans more than one buffer. - ret = hasStrings ? this._getString(n) : this._getBuffer(n); + return this.shift(); } - return ret; + // Result spans more than one buffer. + return hasStrings ? this._getString(n) : this._getBuffer(n); } first() {