Skip to content

Commit 8a0c3b9

Browse files
aduh95codebytere
authored andcommitted
http2: refactor to use more primordials
PR-URL: #36142 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Stephen Belanger <[email protected]> Reviewed-By: Ricky Zhou <[email protected]> Reviewed-By: Rich Trott <[email protected]>
1 parent a6a90af commit 8a0c3b9

File tree

3 files changed

+103
-66
lines changed

3 files changed

+103
-66
lines changed

‎lib/internal/http2/compat.js‎

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,17 @@
22

33
const{
44
ArrayIsArray,
5+
ArrayPrototypePush,
56
Boolean,
7+
FunctionPrototypeBind,
68
ObjectAssign,
79
ObjectCreate,
810
ObjectKeys,
911
ObjectPrototypeHasOwnProperty,
12+
ReflectApply,
1013
ReflectGetPrototypeOf,
14+
StringPrototypeToLowerCase,
15+
StringPrototypeTrim,
1116
Symbol,
1217
}=primordials;
1318

@@ -138,7 +143,7 @@ function onStreamTrailers(trailers, flags, rawTrailers){
138143
constrequest=this[kRequest];
139144
if(request!==undefined){
140145
ObjectAssign(request[kTrailers],trailers);
141-
request[kRawTrailers].push(...rawTrailers);
146+
ArrayPrototypePush(request[kRawTrailers],...rawTrailers);
142147
}
143148
}
144149

@@ -200,7 +205,7 @@ const proxySocketHandler ={
200205
case'end':
201206
case'emit':
202207
case'destroy':
203-
returnstream[prop].bind(stream);
208+
returnFunctionPrototypeBind(stream[prop],stream);
204209
case'writable':
205210
case'destroyed':
206211
returnstream[prop];
@@ -212,8 +217,8 @@ const proxySocketHandler ={
212217
case'setTimeout':
213218
constsession=stream.session;
214219
if(session!==undefined)
215-
returnsession.setTimeout.bind(session);
216-
returnstream.setTimeout.bind(stream);
220+
returnFunctionPrototypeBind(session.setTimeout,session);
221+
returnFunctionPrototypeBind(stream.setTimeout,stream);
217222
case'write':
218223
case'read':
219224
case'pause':
@@ -223,7 +228,9 @@ const proxySocketHandler ={
223228
constref=stream.session!==undefined ?
224229
stream.session[kSocket] : stream;
225230
constvalue=ref[prop];
226-
returntypeofvalue==='function' ? value.bind(ref) : value;
231+
returntypeofvalue==='function' ?
232+
FunctionPrototypeBind(value,ref) :
233+
value;
227234
}
228235
},
229236
getPrototypeOf(stream){
@@ -394,7 +401,7 @@ class Http2ServerRequest extends Readable{
394401

395402
setmethod(method){
396403
validateString(method,'method');
397-
if(method.trim()==='')
404+
if(StringPrototypeTrim(method)==='')
398405
thrownewERR_INVALID_ARG_VALUE('method',method);
399406

400407
this[kHeaders][HTTP2_HEADER_METHOD]=method;
@@ -554,7 +561,7 @@ class Http2ServerResponse extends Stream{
554561

555562
setTrailer(name,value){
556563
validateString(name,'name');
557-
name=name.trim().toLowerCase();
564+
name=StringPrototypeToLowerCase(StringPrototypeTrim(name));
558565
assertValidHeader(name,value);
559566
this[kTrailers][name]=value;
560567
}
@@ -570,7 +577,7 @@ class Http2ServerResponse extends Stream{
570577

571578
getHeader(name){
572579
validateString(name,'name');
573-
name=name.trim().toLowerCase();
580+
name=StringPrototypeToLowerCase(StringPrototypeTrim(name));
574581
returnthis[kHeaders][name];
575582
}
576583

@@ -585,7 +592,7 @@ class Http2ServerResponse extends Stream{
585592

586593
hasHeader(name){
587594
validateString(name,'name');
588-
name=name.trim().toLowerCase();
595+
name=StringPrototypeToLowerCase(StringPrototypeTrim(name));
589596
returnObjectPrototypeHasOwnProperty(this[kHeaders],name);
590597
}
591598

@@ -594,7 +601,7 @@ class Http2ServerResponse extends Stream{
594601
if(this[kStream].headersSent)
595602
thrownewERR_HTTP2_HEADERS_SENT();
596603

597-
name=name.trim().toLowerCase();
604+
name=StringPrototypeToLowerCase(StringPrototypeTrim(name));
598605

599606
if(name==='date'){
600607
this[kState].sendDate=false;
@@ -614,7 +621,7 @@ class Http2ServerResponse extends Stream{
614621
}
615622

616623
[kSetHeader](name,value){
617-
name=name.trim().toLowerCase();
624+
name=StringPrototypeToLowerCase(StringPrototypeTrim(name));
618625
assertValidHeader(name,value);
619626

620627
if(!isConnectionHeaderAllowed(name,value)){
@@ -755,7 +762,7 @@ class Http2ServerResponse extends Stream{
755762
this.writeHead(this[kState].statusCode);
756763

757764
if(this[kState].closed||stream.destroyed)
758-
onStreamCloseResponse.call(stream);
765+
ReflectApply(onStreamCloseResponse,stream,[]);
759766
else
760767
stream.end();
761768

0 commit comments

Comments
(0)