diff --git a/src/core/stream.js b/src/core/stream.js index 1b085a629..bcb72a5a9 100644 --- a/src/core/stream.js +++ b/src/core/stream.js @@ -580,21 +580,19 @@ var FlateStream = (function FlateStreamClosure() { this.codeBuf = 0; this.codeSize = 0; - var bufferLength = this.bufferLength; - buffer = this.ensureBuffer(bufferLength + blockLen); - var end = bufferLength + blockLen; + const bufferLength = this.bufferLength, end = bufferLength + blockLen; + buffer = this.ensureBuffer(end); this.bufferLength = end; + if (blockLen === 0) { if (str.peekByte() === -1) { this.eof = true; } } else { - for (var n = bufferLength; n < end; ++n) { - if ((b = str.getByte()) === -1) { - this.eof = true; - break; - } - buffer[n] = b; + const block = str.getBytes(blockLen); + buffer.set(block, bufferLength); + if (block.length < blockLen) { + this.eof = true; } } return;