Skip to content

Commit 6886dd1

Browse files
apapirovskijasnell
authored andcommitted
http: cleanup _http_common.js
Remove constant deep property access by storing a reference, use more const, make some conditionals stricter. PR-URL: #20126 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
1 parent d7ff4f0 commit 6886dd1

File tree

1 file changed

+24
-27
lines changed

1 file changed

+24
-27
lines changed

lib/_http_common.js

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ function parserOnHeadersComplete(versionMajor, versionMinor, headers, method,
6565
const parser = this;
6666
const { socket } = parser;
6767

68-
if (!headers) {
68+
if (headers === undefined) {
6969
headers = parser._headers;
7070
parser._headers = [];
7171
}
7272

73-
if (!url) {
73+
if (url === undefined) {
7474
url = parser._url;
7575
parser._url = '';
7676
}
@@ -80,64 +80,61 @@ function parserOnHeadersComplete(versionMajor, versionMinor, headers, method,
8080
socket.server[kIncomingMessage]) ||
8181
IncomingMessage;
8282

83-
parser.incoming = new ParserIncomingMessage(socket);
84-
parser.incoming.httpVersionMajor = versionMajor;
85-
parser.incoming.httpVersionMinor = versionMinor;
86-
parser.incoming.httpVersion = `${versionMajor}.${versionMinor}`;
87-
parser.incoming.url = url;
88-
parser.incoming.upgrade = upgrade;
83+
const incoming = parser.incoming = new ParserIncomingMessage(socket);
84+
incoming.httpVersionMajor = versionMajor;
85+
incoming.httpVersionMinor = versionMinor;
86+
incoming.httpVersion = `${versionMajor}.${versionMinor}`;
87+
incoming.url = url;
88+
incoming.upgrade = upgrade;
8989

9090
var n = headers.length;
9191

9292
// If parser.maxHeaderPairs <= 0 assume that there's no limit.
9393
if (parser.maxHeaderPairs > 0)
9494
n = Math.min(n, parser.maxHeaderPairs);
9595

96-
parser.incoming._addHeaderLines(headers, n);
96+
incoming._addHeaderLines(headers, n);
9797

9898
if (typeof method === 'number') {
9999
// server only
100-
parser.incoming.method = methods[method];
100+
incoming.method = methods[method];
101101
} else {
102102
// client only
103-
parser.incoming.statusCode = statusCode;
104-
parser.incoming.statusMessage = statusMessage;
103+
incoming.statusCode = statusCode;
104+
incoming.statusMessage = statusMessage;
105105
}
106106

107-
return parser.onIncoming(parser.incoming, shouldKeepAlive);
107+
return parser.onIncoming(incoming, shouldKeepAlive);
108108
}
109109

110110
// XXX This is a mess.
111111
// TODO: http.Parser should be a Writable emits request/response events.
112112
function parserOnBody(b, start, len) {
113-
var parser = this;
114-
var stream = parser.incoming;
113+
const stream = this.incoming;
115114

116115
// if the stream has already been removed, then drop it.
117-
if (!stream)
116+
if (stream === null)
118117
return;
119118

120-
var socket = stream.socket;
121-
122119
// pretend this was the result of a stream._read call.
123120
if (len > 0 && !stream._dumped) {
124121
var slice = b.slice(start, start + len);
125122
var ret = stream.push(slice);
126123
if (!ret)
127-
readStop(socket);
124+
readStop(this.socket);
128125
}
129126
}
130127

131128
function parserOnMessageComplete() {
132-
var parser = this;
133-
var stream = parser.incoming;
129+
const parser = this;
130+
const stream = parser.incoming;
134131

135-
if (stream) {
132+
if (stream !== null) {
136133
stream.complete = true;
137134
// Emit any trailing headers.
138-
var headers = parser._headers;
139-
if (headers) {
140-
parser.incoming._addHeaderLines(headers, headers.length);
135+
const headers = parser._headers;
136+
if (headers.length) {
137+
stream._addHeaderLines(headers, headers.length);
141138
parser._headers = [];
142139
parser._url = '';
143140
}
@@ -151,8 +148,8 @@ function parserOnMessageComplete() {
151148
}
152149

153150

154-
var parsers = new FreeList('parsers', 1000, function() {
155-
var parser = new HTTPParser(HTTPParser.REQUEST);
151+
const parsers = new FreeList('parsers', 1000, function() {
152+
const parser = new HTTPParser(HTTPParser.REQUEST);
156153

157154
parser._headers = [];
158155
parser._url = '';

0 commit comments

Comments
 (0)