Skip to content

Commit f24f352

Browse files
lrecknageltargos
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 <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Trivikram Kamat <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Gireesh Punathil <[email protected]>
1 parent f8cd96a commit f24f352

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

lib/_http_agent.js

+11-5
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');
@@ -124,8 +130,8 @@ function Agent(options) {
124130
// Don't emit keylog events unless there is a listener for them.
125131
this.on('newListener', maybeEnableKeylog);
126132
}
127-
Object.setPrototypeOf(Agent.prototype, EventEmitter.prototype);
128-
Object.setPrototypeOf(Agent, EventEmitter);
133+
ObjectSetPrototypeOf(Agent.prototype, EventEmitter.prototype);
134+
ObjectSetPrototypeOf(Agent, EventEmitter);
129135

130136
function maybeEnableKeylog(eventName) {
131137
if (eventName === 'keylog') {
@@ -136,7 +142,7 @@ function maybeEnableKeylog(eventName) {
136142
agent.emit('keylog', keylog, this);
137143
};
138144
// Existing sockets will start listening on keylog now.
139-
const sockets = Object.values(this.sockets);
145+
const sockets = ObjectValues(this.sockets);
140146
for (let i = 0; i < sockets.length; i++) {
141147
sockets[i].on('keylog', this[kOnKeylog]);
142148
}
@@ -371,7 +377,7 @@ Agent.prototype.destroy = function destroy() {
371377
const sets = [this.freeSockets, this.sockets];
372378
for (let s = 0; s < sets.length; s++) {
373379
const set = sets[s];
374-
const keys = Object.keys(set);
380+
const keys = ObjectKeys(set);
375381
for (let v = 0; v < keys.length; v++) {
376382
const setName = set[keys[v]];
377383
for (let n = 0; n < setName.length; n++) {

0 commit comments

Comments
 (0)