Skip to content

Commit c09f94c

Browse files
committed
fixup
1 parent f0b38f7 commit c09f94c

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

lib/_stream_writable.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -482,15 +482,21 @@ function clearBuffer(stream, state) {
482482

483483
state.bufferProcessing = true;
484484
if (bufferedLength === 1) {
485-
const { chunk, encoding, callback } = buffered[0];
485+
const chunk = buffered[0].chunk;
486+
const encoding = buffered[0].encoding;
487+
const callback = buffered[0].callback;
488+
486489
const len = state.objectMode ? 1 : chunk.length;
487490
doWrite(stream, state, false, len, chunk, encoding, callback);
488491
buffered.length = 0;
489492
buffered.allBuffers = true;
490493
} else if (stream._writev) {
491494
state.pendingcb++;
492495
// doWrite mutates buffered array. Keep a copy of callbacks.
493-
const callbacks = buffered.map(({ callback }) => callback);
496+
const callbacks = [];
497+
for (let n = 0; n < buffered.length; ++n) {
498+
callbacks.push(buffered[n].callback);
499+
}
494500
doWrite(stream, state, true, state.length, buffered, '', (err) => {
495501
for (const callback of callbacks) {
496502
state.pendingcb--;
@@ -501,8 +507,11 @@ function clearBuffer(stream, state) {
501507
state.buffered.allBuffers = true;
502508
} else {
503509
let i = 0;
504-
while (i < bufferedLength && !state.writing) {
505-
const { chunk, encoding, callback } = buffered[i++];
510+
for (; i < bufferedLength && !state.writing; i++) {
511+
const chunk = buffered[i].chunk;
512+
const encoding = buffered[i].encoding;
513+
const callback = buffered[i].callback;
514+
506515
const len = state.objectMode ? 1 : chunk.length;
507516
doWrite(stream, state, false, len, chunk, encoding, callback);
508517
}

0 commit comments

Comments
 (0)