Skip to content

Commit

Permalink
lib: use arrow functions instead of bind
Browse files Browse the repository at this point in the history
use `arrow functions` instead of `bind(this)` in order to improve
performance through optimizations.

PR-URL: #3622
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reviewed-By: Trevor Norris <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
  • Loading branch information
JungMinu authored and minwoojung committed Dec 17, 2015
1 parent 93d6b5f commit ae5bcf9
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 26 deletions.
16 changes: 9 additions & 7 deletions lib/_debugger.js
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ function Client() {
protocol.execute(d);
});

protocol.onResponse = this._onResponse.bind(this);
protocol.onResponse = (res) => this._onResponse(res);
}
inherits(Client, net.Socket);
exports.Client = Client;
Expand Down Expand Up @@ -735,7 +735,7 @@ function Interface(stdin, stdout, args) {
prompt: 'debug> ',
input: this.stdin,
output: this.stdout,
eval: this.controlEval.bind(this),
eval: (code, ctx, file, cb) => this.controlEval(code, ctx, file, cb),
useGlobal: false,
ignoreUndefined: true
};
Expand Down Expand Up @@ -766,7 +766,7 @@ function Interface(stdin, stdout, args) {
});

// Handle all possible exits
process.on('exit', this.killChild.bind(this));
process.on('exit', () => this.killChild());
process.once('SIGTERM', process.exit.bind(process, 0));
process.once('SIGHUP', process.exit.bind(process, 0));

Expand Down Expand Up @@ -1588,7 +1588,8 @@ Interface.prototype.repl = function() {
this.repl.on('exit', exitDebugRepl);

// Set new
this.repl.eval = this.debugEval.bind(this);
this.repl.eval = (code, ctx, file, cb) =>
this.debugEval(code, ctx, file, cb);
this.repl.context = {};

// Swap history
Expand All @@ -1603,7 +1604,8 @@ Interface.prototype.repl = function() {
// Exit debug repl
Interface.prototype.exitRepl = function() {
// Restore eval
this.repl.eval = this.controlEval.bind(this);
this.repl.eval = (code, ctx, file, cb) =>
this.controlEval(code, ctx, file, cb);

// Swap history
this.history.debug = this.repl.rli.history;
Expand Down Expand Up @@ -1690,8 +1692,8 @@ Interface.prototype.trySpawn = function(cb) {
// pipe stream into debugger
this.child = spawn(process.execPath, childArgs);

this.child.stdout.on('data', this.childPrint.bind(this));
this.child.stderr.on('data', this.childPrint.bind(this));
this.child.stdout.on('data', (text) => this.childPrint(text));
this.child.stderr.on('data', (text) => this.childPrint(text));
}

this.pause();
Expand Down
11 changes: 6 additions & 5 deletions lib/_tls_legacy.js
Original file line number Diff line number Diff line change
Expand Up @@ -704,14 +704,15 @@ function SecurePair(context, isServer, requestCert, rejectUnauthorized,
this._rejectUnauthorized);

if (this._isServer) {
this.ssl.onhandshakestart = onhandshakestart.bind(this);
this.ssl.onhandshakedone = onhandshakedone.bind(this);
this.ssl.onclienthello = onclienthello.bind(this);
this.ssl.onnewsession = onnewsession.bind(this);
this.ssl.onhandshakestart = () => onhandshakestart.call(this);
this.ssl.onhandshakedone = () => onhandshakedone.call(this);
this.ssl.onclienthello = (hello) => onclienthello.call(this, hello);
this.ssl.onnewsession =
(key, session) => onnewsession.call(this, key, session);
this.ssl.lastHandshakeTime = 0;
this.ssl.handshakes = 0;
} else {
this.ssl.onocspresponse = onocspresponse.bind(this);
this.ssl.onocspresponse = (resp) => onocspresponse.call(this, resp);
}

if (process.features.tls_sni) {
Expand Down
14 changes: 7 additions & 7 deletions lib/_tls_wrap.js
Original file line number Diff line number Diff line change
Expand Up @@ -392,11 +392,11 @@ TLSSocket.prototype._init = function(socket, wrap) {
ssl.setVerifyMode(requestCert, rejectUnauthorized);

if (options.isServer) {
ssl.onhandshakestart = onhandshakestart.bind(this);
ssl.onhandshakedone = onhandshakedone.bind(this);
ssl.onclienthello = onclienthello.bind(this);
ssl.oncertcb = oncertcb.bind(this);
ssl.onnewsession = onnewsession.bind(this);
ssl.onhandshakestart = () => onhandshakestart.call(this);
ssl.onhandshakedone = () => onhandshakedone.call(this);
ssl.onclienthello = (hello) => onclienthello.call(this, hello);
ssl.oncertcb = (info) => oncertcb.call(this, info);
ssl.onnewsession = (key, session) => onnewsession.call(this, key, session);
ssl.lastHandshakeTime = 0;
ssl.handshakes = 0;

Expand All @@ -410,8 +410,8 @@ TLSSocket.prototype._init = function(socket, wrap) {
}
} else {
ssl.onhandshakestart = function() {};
ssl.onhandshakedone = this._finishInit.bind(this);
ssl.onocspresponse = onocspresponse.bind(this);
ssl.onhandshakedone = () => this._finishInit();
ssl.onocspresponse = (resp) => onocspresponse.call(this, resp);

if (options.session)
ssl.setSession(options.session);
Expand Down
12 changes: 9 additions & 3 deletions lib/cluster.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,12 @@ function Worker(options) {

if (options.process) {
this.process = options.process;
this.process.on('error', this.emit.bind(this, 'error'));
this.process.on('message', this.emit.bind(this, 'message'));
this.process.on('error', (code, signal) =>
this.emit('error', code, signal)
);
this.process.on('message', (message, handle) =>
this.emit('message', message, handle)
);
}
}
util.inherits(Worker, EventEmitter);
Expand Down Expand Up @@ -337,7 +341,9 @@ function masterInit() {
process: workerProcess
});

worker.on('message', this.emit.bind(this, 'message'));
worker.on('message', (message, handle) =>
this.emit('message', message, handle)
);

worker.process.once('exit', function(exitCode, signalCode) {
/*
Expand Down
2 changes: 1 addition & 1 deletion lib/fs.js
Original file line number Diff line number Diff line change
Expand Up @@ -1842,7 +1842,7 @@ ReadStream.prototype.close = function(cb) {
this.once('open', close);
return;
}
return process.nextTick(this.emit.bind(this, 'close'));
return process.nextTick(() => this.emit('close'));
}
this.closed = true;
close();
Expand Down
6 changes: 3 additions & 3 deletions lib/net.js
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ Socket.prototype._onTimeout = function() {
Socket.prototype.setNoDelay = function(enable) {
if (!this._handle) {
this.once('connect',
enable ? this.setNoDelay : this.setNoDelay.bind(this, enable));
enable ? this.setNoDelay : () => this.setNoDelay(enable));
return this;
}

Expand All @@ -336,7 +336,7 @@ Socket.prototype.setNoDelay = function(enable) {

Socket.prototype.setKeepAlive = function(setting, msecs) {
if (!this._handle) {
this.once('connect', this.setKeepAlive.bind(this, setting, msecs));
this.once('connect', () => this.setKeepAlive(setting, msecs));
return this;
}

Expand Down Expand Up @@ -384,7 +384,7 @@ Socket.prototype._read = function(n) {

if (this._connecting || !this._handle) {
debug('_read wait for connection');
this.once('connect', this._read.bind(this, n));
this.once('connect', () => this._read(n));
} else if (!this._handle.reading) {
// not already reading, start the flow
debug('Socket._read readStart');
Expand Down

0 comments on commit ae5bcf9

Please sign in to comment.