From 25702abc5638bbecffa92e8349d2a871a5f592c9 Mon Sep 17 00:00:00 2001 From: cjihrig Date: Tue, 23 Sep 2014 23:08:35 -0400 Subject: [PATCH] net: remove use of arguments in Server constructor The current implementation uses the arguments object in the Server() constructor. Since both arguments to Server() are optional, there was a high likelihood of accessing a non-existent element in arguments, which carries a performance overhead. This commit replaces the arguments object with named arguments. Reviewed-by: Trevor Norris --- lib/net.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/net.js b/lib/net.js index 478c04a1f8..5f32473492 100644 --- a/lib/net.js +++ b/lib/net.js @@ -62,8 +62,8 @@ function isPipeName(s) { } -exports.createServer = function() { - return new Server(arguments[0], arguments[1]); +exports.createServer = function(options, connectionListener) { + return new Server(options, connectionListener); }; @@ -984,23 +984,23 @@ function afterConnect(status, handle, req, readable, writable) { } -function Server(/* [ options, ] listener */) { - if (!(this instanceof Server)) return new Server(arguments[0], arguments[1]); +function Server(options, connectionListener) { + if (!(this instanceof Server)) + return new Server(options, connectionListener); + events.EventEmitter.call(this); var self = this; - var options; - - if (util.isFunction(arguments[0])) { + if (util.isFunction(options)) { + connectionListener = options; options = {}; - self.on('connection', arguments[0]); + self.on('connection', connectionListener); } else { - options = arguments[0] || {}; + options = options || {}; - if (util.isFunction(arguments[1])) { - self.on('connection', arguments[1]); - } + if (util.isFunction(connectionListener)) + self.on('connection', connectionListener); } this._connections = 0;