@@ -166,6 +166,8 @@ ObjectDefineProperty(OutgoingMessage.prototype, '_headers', {
166
166
} else if ( typeof val === 'object' ) {
167
167
const headers = this [ kOutHeaders ] = ObjectCreate ( null ) ;
168
168
const keys = ObjectKeys ( val ) ;
169
+ // Retain for(;;) loop for performance reasons
170
+ // Refs: https://github.com/nodejs/node/pull/30958
169
171
for ( var i = 0 ; i < keys . length ; ++ i ) {
170
172
const name = keys [ i ] ;
171
173
headers [ name . toLowerCase ( ) ] = [ name , val [ name ] ] ;
@@ -189,6 +191,8 @@ ObjectDefineProperty(OutgoingMessage.prototype, '_headerNames', {
189
191
if ( headers !== null ) {
190
192
const out = ObjectCreate ( null ) ;
191
193
const keys = ObjectKeys ( headers ) ;
194
+ // Retain for(;;) loop for performance reasons
195
+ // Refs: https://github.com/nodejs/node/pull/30958
192
196
for ( var i = 0 ; i < keys . length ; ++ i ) {
193
197
const key = keys [ i ] ;
194
198
const val = headers [ key ] [ 0 ] ;
@@ -204,6 +208,8 @@ ObjectDefineProperty(OutgoingMessage.prototype, '_headerNames', {
204
208
if ( ! headers )
205
209
return ;
206
210
const keys = ObjectKeys ( val ) ;
211
+ // Retain for(;;) loop for performance reasons
212
+ // Refs: https://github.com/nodejs/node/pull/30958
207
213
for ( var i = 0 ; i < keys . length ; ++ i ) {
208
214
const header = headers [ keys [ i ] ] ;
209
215
if ( header )
@@ -224,6 +230,8 @@ OutgoingMessage.prototype._renderHeaders = function _renderHeaders() {
224
230
225
231
if ( headersMap !== null ) {
226
232
const keys = ObjectKeys ( headersMap ) ;
233
+ // Retain for(;;) loop for performance reasons
234
+ // Refs: https://github.com/nodejs/node/pull/30958
227
235
for ( var i = 0 , l = keys . length ; i < l ; i ++ ) {
228
236
const key = keys [ i ] ;
229
237
headers [ headersMap [ key ] [ 0 ] ] = headersMap [ key ] [ 1 ] ;
@@ -458,6 +466,8 @@ function processHeader(self, state, key, value, validate) {
458
466
validateHeaderName ( key ) ;
459
467
if ( ArrayIsArray ( value ) ) {
460
468
if ( value . length < 2 || ! isCookieField ( key ) ) {
469
+ // Retain for(;;) loop for performance reasons
470
+ // Refs: https://github.com/nodejs/node/pull/30958
461
471
for ( var i = 0 ; i < value . length ; i ++ )
462
472
storeHeader ( self , state , key , value [ i ] , validate ) ;
463
473
return ;
@@ -559,6 +569,8 @@ OutgoingMessage.prototype.getHeaders = function getHeaders() {
559
569
const ret = ObjectCreate ( null ) ;
560
570
if ( headers ) {
561
571
const keys = ObjectKeys ( headers ) ;
572
+ // Retain for(;;) loop for performance reasons
573
+ // Refs: https://github.com/nodejs/node/pull/30958
562
574
for ( var i = 0 ; i < keys . length ; ++ i ) {
563
575
const key = keys [ i ] ;
564
576
const val = headers [ key ] [ 1 ] ;
@@ -700,6 +712,8 @@ OutgoingMessage.prototype.addTrailers = function addTrailers(headers) {
700
712
const keys = ObjectKeys ( headers ) ;
701
713
const isArray = ArrayIsArray ( headers ) ;
702
714
var field , value ;
715
+ // Retain for(;;) loop for performance reasons
716
+ // Refs: https://github.com/nodejs/node/pull/30958
703
717
for ( var i = 0 , l = keys . length ; i < l ; i ++ ) {
704
718
var key = keys [ i ] ;
705
719
if ( isArray ) {
@@ -854,6 +868,8 @@ OutgoingMessage.prototype._flushOutput = function _flushOutput(socket) {
854
868
const outputData = this . outputData ;
855
869
socket . cork ( ) ;
856
870
let ret ;
871
+ // Retain for(;;) loop for performance reasons
872
+ // Refs: https://github.com/nodejs/node/pull/30958
857
873
for ( var i = 0 ; i < outputLength ; i ++ ) {
858
874
const { data, encoding, callback } = outputData [ i ] ;
859
875
ret = socket . write ( data , encoding , callback ) ;
0 commit comments