@@ -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 ] ] ;
@@ -180,6 +182,8 @@ ObjectDefineProperty(OutgoingMessage.prototype, '_headerNames', {
180
182
if ( headers !== null ) {
181
183
const out = ObjectCreate ( null ) ;
182
184
const keys = ObjectKeys ( headers ) ;
185
+ // Retain for(;;) loop for performance reasons
186
+ // Refs: https://github.com/nodejs/node/pull/30958
183
187
for ( var i = 0 ; i < keys . length ; ++ i ) {
184
188
const key = keys [ i ] ;
185
189
const val = headers [ key ] [ 0 ] ;
@@ -195,6 +199,8 @@ ObjectDefineProperty(OutgoingMessage.prototype, '_headerNames', {
195
199
if ( ! headers )
196
200
return ;
197
201
const keys = ObjectKeys ( val ) ;
202
+ // Retain for(;;) loop for performance reasons
203
+ // Refs: https://github.com/nodejs/node/pull/30958
198
204
for ( var i = 0 ; i < keys . length ; ++ i ) {
199
205
const header = headers [ keys [ i ] ] ;
200
206
if ( header )
@@ -215,6 +221,8 @@ OutgoingMessage.prototype._renderHeaders = function _renderHeaders() {
215
221
216
222
if ( headersMap !== null ) {
217
223
const keys = ObjectKeys ( headersMap ) ;
224
+ // Retain for(;;) loop for performance reasons
225
+ // Refs: https://github.com/nodejs/node/pull/30958
218
226
for ( var i = 0 , l = keys . length ; i < l ; i ++ ) {
219
227
const key = keys [ i ] ;
220
228
headers [ headersMap [ key ] [ 0 ] ] = headersMap [ key ] [ 1 ] ;
@@ -449,6 +457,8 @@ function processHeader(self, state, key, value, validate) {
449
457
validateHeaderName ( key ) ;
450
458
if ( ArrayIsArray ( value ) ) {
451
459
if ( value . length < 2 || ! isCookieField ( key ) ) {
460
+ // Retain for(;;) loop for performance reasons
461
+ // Refs: https://github.com/nodejs/node/pull/30958
452
462
for ( var i = 0 ; i < value . length ; i ++ )
453
463
storeHeader ( self , state , key , value [ i ] , validate ) ;
454
464
return ;
@@ -550,6 +560,8 @@ OutgoingMessage.prototype.getHeaders = function getHeaders() {
550
560
const ret = ObjectCreate ( null ) ;
551
561
if ( headers ) {
552
562
const keys = ObjectKeys ( headers ) ;
563
+ // Retain for(;;) loop for performance reasons
564
+ // Refs: https://github.com/nodejs/node/pull/30958
553
565
for ( var i = 0 ; i < keys . length ; ++ i ) {
554
566
const key = keys [ i ] ;
555
567
const val = headers [ key ] [ 1 ] ;
@@ -691,6 +703,8 @@ OutgoingMessage.prototype.addTrailers = function addTrailers(headers) {
691
703
const keys = ObjectKeys ( headers ) ;
692
704
const isArray = ArrayIsArray ( headers ) ;
693
705
var field , value ;
706
+ // Retain for(;;) loop for performance reasons
707
+ // Refs: https://github.com/nodejs/node/pull/30958
694
708
for ( var i = 0 , l = keys . length ; i < l ; i ++ ) {
695
709
var key = keys [ i ] ;
696
710
if ( isArray ) {
@@ -838,6 +852,8 @@ OutgoingMessage.prototype._flushOutput = function _flushOutput(socket) {
838
852
const outputData = this . outputData ;
839
853
socket . cork ( ) ;
840
854
let ret ;
855
+ // Retain for(;;) loop for performance reasons
856
+ // Refs: https://github.com/nodejs/node/pull/30958
841
857
for ( var i = 0 ; i < outputLength ; i ++ ) {
842
858
const { data, encoding, callback } = outputData [ i ] ;
843
859
ret = socket . write ( data , encoding , callback ) ;
0 commit comments