@@ -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