From 6e247e80905633557472de05f1c4b34da9ecf8e5 Mon Sep 17 00:00:00 2001 From: Lucas Recknagel Date: Tue, 12 Nov 2019 15:30:48 +0000 Subject: [PATCH] http: improve performance caused by primordials Refs: https://github.com/nodejs/node/issues/29766 This works on destructuring primordials whithin libs/_http_agent --- lib/_http_agent.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/_http_agent.js b/lib/_http_agent.js index 12b03f43f76878..c6023ad3c6c9ed 100644 --- a/lib/_http_agent.js +++ b/lib/_http_agent.js @@ -21,7 +21,12 @@ 'use strict'; -const { Object } = primordials; +const { + Object: { + setPrototypeOf: ObjectSetPrototypeOf, + keys: ObjectKeys + } +} = primordials; const net = require('net'); const EventEmitter = require('events'); @@ -125,8 +130,8 @@ function Agent(options) { } }); } -Object.setPrototypeOf(Agent.prototype, EventEmitter.prototype); -Object.setPrototypeOf(Agent, EventEmitter); +ObjectSetPrototypeOf(Agent.prototype, EventEmitter.prototype); +ObjectSetPrototypeOf(Agent, EventEmitter); Agent.defaultMaxSockets = Infinity; @@ -357,7 +362,7 @@ Agent.prototype.destroy = function destroy() { const sets = [this.freeSockets, this.sockets]; for (let s = 0; s < sets.length; s++) { const set = sets[s]; - const keys = Object.keys(set); + const keys = ObjectKeys(set); for (let v = 0; v < keys.length; v++) { const setName = set[keys[v]]; for (let n = 0; n < setName.length; n++) {