diff --git a/lib/bcoin/env.js b/lib/bcoin/env.js index 21274203..2bad1966 100644 --- a/lib/bcoin/env.js +++ b/lib/bcoin/env.js @@ -324,8 +324,11 @@ Environment.prototype.mkdir = function mkdir(path, dirname) { */ Environment.prototype.debug = function debug() { - var args = Array.prototype.slice.call(arguments); - var msg; + var args = new Array(arguments.length); + var i, msg; + + for (i = 0; i < args.length; i++) + args[i] = arguments[i]; if (this.logger) { if (this.debugLogs) diff --git a/lib/bcoin/utils.js b/lib/bcoin/utils.js index 701965b2..1f89ed17 100644 --- a/lib/bcoin/utils.js +++ b/lib/bcoin/utils.js @@ -625,12 +625,17 @@ utils.revHex = function revHex(s) { */ utils.merge = function merge(target) { - var args = Array.prototype.slice.call(arguments, 1); - args.forEach(function(obj) { - Object.keys(obj).forEach(function(key) { + var i, j, obj, keys, key; + + for (i = 1; i < arguments.length; i++) { + obj = arguments[i]; + keys = Object.keys(obj); + for (j = 0; j < keys.length; j++) { + key = keys[j]; target[key] = obj[key]; - }); - }); + } + } + return target; }; @@ -883,8 +888,11 @@ utils.format = function format(args, color) { */ utils.print = function print() { - var args = Array.prototype.slice.call(arguments); - var msg; + var args = new Array(arguments.length); + var i, msg; + + for (i = 0; i < args.length; i++) + args[i] = arguments[i]; if (utils.isBrowser) { msg = typeof args[0] !== 'object' @@ -905,8 +913,11 @@ utils.print = function print() { */ utils.error = function error() { - var args = Array.prototype.slice.call(arguments); - var msg; + var args = new Array(arguments.length); + var i, msg; + + for (i = 0; i < args.length; i++) + args[i] = arguments[i]; if (utils.isBrowser) { msg = typeof args[0] !== 'object' diff --git a/lib/bcoin/walletdb.js b/lib/bcoin/walletdb.js index 9ca3666b..d5081fc5 100644 --- a/lib/bcoin/walletdb.js +++ b/lib/bcoin/walletdb.js @@ -296,12 +296,17 @@ WalletDB.prototype.unregister = function unregister(wallet) { */ WalletDB.prototype.fire = function fire(id) { - var args = Array.prototype.slice.call(arguments, 1); var watcher = this.watchers[id]; + var i, args; if (!watcher) return; + args = new Array(arguments.length - 1); + + for (i = 1; i < arguments.length; i++) + args[i - 1] = arguments[i]; + watcher.wallet.emit.apply(watcher.wallet, args); }; diff --git a/lib/bcoin/workers.js b/lib/bcoin/workers.js index fa170523..60bdcace 100644 --- a/lib/bcoin/workers.js +++ b/lib/bcoin/workers.js @@ -427,7 +427,12 @@ Worker.prototype.send = function send(job, name, items) { */ Worker.prototype.sendEvent = function sendEvent() { - var items = Array.prototype.slice.call(arguments); + var items = new Array(arguments.length); + var i; + + for (i = 0; i < items.length; i++) + items[i] = arguments[i]; + return this.send(0, 'event', items); }; @@ -590,7 +595,12 @@ Master.prototype.send = function send(job, name, items) { */ Master.prototype.sendEvent = function sendEvent() { - var items = Array.prototype.slice.call(arguments); + var items = new Array(arguments.length); + var i; + + for (i = 0; i < items.length; i++) + items[i] = arguments[i]; + return this.send(0, 'event', items); }; @@ -601,12 +611,15 @@ Master.prototype.sendEvent = function sendEvent() { */ Master.prototype.debug = function debug() { - var args, msg; + var i, args, msg; if (!this.options.debug) return; - args = Array.prototype.slice.call(arguments); + args = new Array(arguments.length); + + for (i = 0; i < args.length; i++) + args[i] = arguments[i]; msg = utils.format(args, false); msg = utils.format(['Worker %d: %s', this.id, msg], false);