@@ -628,8 +628,8 @@ class Http2Incoming extends Readable {
628628 super ( initHttp2IncomingOptions ( options ) ) ;
629629 if ( ! ( stream instanceof Http2Stream ) )
630630 throw new TypeError ( 'stream argument must be an Http2Stream instance' ) ;
631- if ( ! ( headers instanceof Map ) )
632- throw new TypeError ( 'headers argument must be a Map ' ) ;
631+ if ( typeof headers !== 'object' )
632+ throw new TypeError ( 'headers argument must be an object ' ) ;
633633 this [ kStream ] = stream ;
634634 this [ kHeaders ] = headers ;
635635 this [ kFinished ] = false ;
@@ -679,19 +679,19 @@ class Http2ServerRequest extends Http2Incoming {
679679 }
680680
681681 get method ( ) {
682- return this . headers . get ( constants . HTTP2_HEADER_METHOD ) ;
682+ return this . headers [ constants . HTTP2_HEADER_METHOD ] ;
683683 }
684684
685685 get authority ( ) {
686- return this . headers . get ( constants . HTTP2_HEADER_AUTHORITY ) ;
686+ return this . headers [ constants . HTTP2_HEADER_AUTHORITY ] ;
687687 }
688688
689689 get scheme ( ) {
690- return this . headers . get ( constants . HTTP2_HEADER_SCHEME ) ;
690+ return this . headers [ constants . HTTP2_HEADER_SCHEME ] ;
691691 }
692692
693693 get url ( ) {
694- return this . headers . get ( constants . HTTP2_HEADER_PATH ) ;
694+ return this . headers [ constants . HTTP2_HEADER_PATH ] ;
695695 }
696696}
697697
@@ -762,10 +762,12 @@ class Http2Outgoing extends Writable {
762762 }
763763
764764 addHeaders ( headers ) {
765- if ( ! headers ) return ;
766- const keys = Object . keys ( headers ) ;
767- for ( const key of keys )
768- this . setHeader ( key , headers [ key ] ) ;
765+ var keys ;
766+ if ( headers ) {
767+ keys = Object . keys ( headers ) ;
768+ for ( var i = 0 ; i < keys . length ; i ++ )
769+ this . setHeader ( keys [ i ] , headers [ keys [ i ] ] ) ;
770+ }
769771 return this ;
770772 }
771773
@@ -1566,31 +1568,31 @@ class Http2ClientRequest extends Http2Outgoing {
15661568
15671569 setHeader ( name , value ) {
15681570 name = String ( name ) . toLowerCase ( ) . trim ( ) ;
1569- if ( this [ kHeaders ] . has ( name ) ) {
1570- const existing = this [ kHeaders ] . get ( name ) ;
1571+ const existing = this [ kHeaders ] [ name ] ;
1572+ if ( existing ) {
15711573 if ( Array . isArray ( existing ) ) {
15721574 existing . push ( String ( value ) ) ;
15731575 } else {
1574- this [ kHeaders ] . set ( name , [ existing , value ] ) ;
1576+ this [ kHeaders ] [ name ] = [ existing , value ] ;
15751577 }
15761578 } else {
1577- this [ kHeaders ] . set ( name , value ) ;
1579+ this [ kHeaders ] [ name ] = value ;
15781580 }
15791581 }
15801582
15811583 setTrailer ( name , value ) {
15821584 if ( ! this [ kTrailers ] )
1583- this [ kTrailers ] = new Map ( ) ;
1585+ this [ kTrailers ] = { } ;
15841586 name = String ( name ) . toLowerCase ( ) . trim ( ) ;
1585- if ( this [ kTrailers ] . has ( name ) ) {
1586- const existing = this [ kTrailers ] . get ( name ) ;
1587+ const existing = this [ kTrailers ] [ name ] ;
1588+ if ( existing ) {
15871589 if ( Array . isArray ( existing ) ) {
15881590 existing . push ( String ( value ) ) ;
15891591 } else {
1590- this [ kTrailers ] . set ( name , [ existing , value ] ) ;
1592+ this [ kTrailers ] [ name ] = [ existing , value ] ;
15911593 }
15921594 } else {
1593- this [ kTrailers ] . set ( name , value ) ;
1595+ this [ kTrailers ] [ name ] = value ;
15941596 }
15951597 }
15961598
@@ -1613,13 +1615,13 @@ class Http2ClientRequest extends Http2Outgoing {
16131615
16141616function addTrailers ( ) {
16151617 const request = this [ kRequest ] ;
1616- if ( request [ kTrailers ] instanceof Map ) {
1617- for ( const v of request [ kTrailers ] ) {
1618- const key = String ( v [ 0 ] ) ;
1619- const value = v [ 1 ] ;
1618+ if ( request [ kTrailers ] ) {
1619+ // key is coerced on a string on set
1620+ for ( var key in request [ kTrailers ] ) {
1621+ const value = request [ kTrailers ] [ key ] ;
16201622 if ( Array . isArray ( value ) && value . length > 0 ) {
1621- for ( const item of value )
1622- this . addTrailer ( key , String ( item ) ) ;
1623+ for ( var i = 0 ; i < value . length ; i ++ )
1624+ this . addTrailer ( key , String ( value [ i ] ) ) ;
16231625 } else {
16241626 this . addTrailer ( key , String ( value ) ) ;
16251627 }
0 commit comments