From 2ad2ff29a820dcba20e128c8c3fb3d701032b710 Mon Sep 17 00:00:00 2001 From: Weijia Wang Date: Mon, 8 Jul 2019 17:20:45 +0800 Subject: [PATCH 1/3] http: refactor agent.destroy() This change refactor the previous triple-nested loop and make it more readable by using iterators. --- lib/_http_agent.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/_http_agent.js b/lib/_http_agent.js index e1cfa6d7fc9d17..7db86d72e4fc51 100644 --- a/lib/_http_agent.js +++ b/lib/_http_agent.js @@ -336,18 +336,18 @@ Agent.prototype.reuseSocket = function reuseSocket(socket, req) { }; Agent.prototype.destroy = function destroy() { - const sets = [this.freeSockets, this.sockets]; - for (var s = 0; s < sets.length; s++) { - var set = sets[s]; - var keys = Object.keys(set); - for (var v = 0; v < keys.length; v++) { - var setName = set[keys[v]]; - for (var n = 0; n < setName.length; n++) { - setName[n].destroy(); - } + destroySockets(this.freeSockets); + destroySockets(this.sockets); +}; + +function destroySockets(sockets) { + for (const setKey in sockets) { + var setName = sockets[setKey]; + for (const socket of setName) { + socket.destroy(); } } -}; +} function handleSocketCreation(agent, request, informRequest) { return function handleSocketCreation_Inner(err, socket) { From 3d0ec309fc15619fe7c1635626659a22d9b2aaa8 Mon Sep 17 00:00:00 2001 From: Weijia Wang Date: Tue, 9 Jul 2019 09:48:36 +0800 Subject: [PATCH 2/3] [squash] use const --- lib/_http_agent.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/_http_agent.js b/lib/_http_agent.js index 7db86d72e4fc51..1706de18a8b6ef 100644 --- a/lib/_http_agent.js +++ b/lib/_http_agent.js @@ -342,7 +342,7 @@ Agent.prototype.destroy = function destroy() { function destroySockets(sockets) { for (const setKey in sockets) { - var setName = sockets[setKey]; + const setName = sockets[setKey]; for (const socket of setName) { socket.destroy(); } From 73da7947a7ce0fcc9aad13450dda9067309ce2b5 Mon Sep 17 00:00:00 2001 From: Weijia Wang Date: Fri, 12 Jul 2019 11:25:03 +0800 Subject: [PATCH 3/3] [squash] use Object.values() --- lib/_http_agent.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/_http_agent.js b/lib/_http_agent.js index 1706de18a8b6ef..fb8c2139314cbd 100644 --- a/lib/_http_agent.js +++ b/lib/_http_agent.js @@ -341,9 +341,8 @@ Agent.prototype.destroy = function destroy() { }; function destroySockets(sockets) { - for (const setKey in sockets) { - const setName = sockets[setKey]; - for (const socket of setName) { + for (const set of Object.values(sockets)) { + for (const socket of set) { socket.destroy(); } }