Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 3b169f1

Browse filesBrowse files
lrecknageladdaleax
authored andcommitted
http: improve performance caused by primordials
Refs: #29766 This works on destructuring primordials whithin libs/_http_agent PR-URL: #30416 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
1 parent f135c38 commit 3b169f1
Copy full SHA for 3b169f1

File tree

Expand file treeCollapse file tree

1 file changed

+11
-5
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+11
-5
lines changed
Open diff view settings
Collapse file

‎lib/_http_agent.js‎

Copy file name to clipboardExpand all lines: lib/_http_agent.js
+11-5Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,13 @@
2121

2222
'use strict';
2323

24-
const { Object } = primordials;
24+
const {
25+
Object: {
26+
setPrototypeOf: ObjectSetPrototypeOf,
27+
keys: ObjectKeys,
28+
values: ObjectValues
29+
}
30+
} = primordials;
2531

2632
const net = require('net');
2733
const EventEmitter = require('events');
@@ -129,8 +135,8 @@ function Agent(options) {
129135
// Don't emit keylog events unless there is a listener for them.
130136
this.on('newListener', maybeEnableKeylog);
131137
}
132-
Object.setPrototypeOf(Agent.prototype, EventEmitter.prototype);
133-
Object.setPrototypeOf(Agent, EventEmitter);
138+
ObjectSetPrototypeOf(Agent.prototype, EventEmitter.prototype);
139+
ObjectSetPrototypeOf(Agent, EventEmitter);
134140

135141
function maybeEnableKeylog(eventName) {
136142
if (eventName === 'keylog') {
@@ -141,7 +147,7 @@ function maybeEnableKeylog(eventName) {
141147
agent.emit('keylog', keylog, this);
142148
};
143149
// Existing sockets will start listening on keylog now.
144-
const sockets = Object.values(this.sockets);
150+
const sockets = ObjectValues(this.sockets);
145151
for (let i = 0; i < sockets.length; i++) {
146152
sockets[i].on('keylog', this[kOnKeylog]);
147153
}
@@ -381,7 +387,7 @@ Agent.prototype.destroy = function destroy() {
381387
const sets = [this.freeSockets, this.sockets];
382388
for (let s = 0; s < sets.length; s++) {
383389
const set = sets[s];
384-
const keys = Object.keys(set);
390+
const keys = ObjectKeys(set);
385391
for (let v = 0; v < keys.length; v++) {
386392
const setName = set[keys[v]];
387393
for (let n = 0; n < setName.length; n++) {

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.