util: drop all homemade polyfills.

This commit is contained in:
Christopher Jeffrey 2017-06-27 00:31:14 -07:00
parent d9342cd81c
commit 8358fa59c6
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
11 changed files with 44 additions and 122 deletions

View File

@ -1943,7 +1943,7 @@ Chain.prototype.getProofTime = function getProofTime(to, from) {
work = work.div(this.tip.getProof()); work = work.div(this.tip.getProof());
if (work.bitLength() > 53) if (work.bitLength() > 53)
return sign * util.MAX_SAFE_INTEGER; return sign * Number.MAX_SAFE_INTEGER;
return sign * work.toNumber(); return sign * work.toNumber();
}; };

View File

@ -646,7 +646,7 @@ HTTPClient.prototype.getWalletCoin = function getWalletCoin(id, account, hash, i
*/ */
HTTPClient.prototype.send = function send(id, options) { HTTPClient.prototype.send = function send(id, options) {
options = util.merge({}, options); options = Object.assign({}, options);
options.outputs = options.outputs || []; options.outputs = options.outputs || [];
if (options.rate) if (options.rate)
@ -695,7 +695,7 @@ HTTPClient.prototype.setPassphrase = function setPassphrase(id, old, new_) {
*/ */
HTTPClient.prototype.createTX = function createTX(id, options) { HTTPClient.prototype.createTX = function createTX(id, options) {
options = util.merge({}, options); options = Object.assign({}, options);
if (options.rate) if (options.rate)
options.rate = Amount.btc(options.rate); options.rate = Amount.btc(options.rate);
@ -725,7 +725,7 @@ HTTPClient.prototype.sign = function sign(id, tx, options) {
if (!options) if (!options)
options = {}; options = {};
body = util.merge({}, options); body = Object.assign({}, options);
body.tx = toHex(tx); body.tx = toHex(tx);
return this._post('/wallet/' + id + '/sign', body); return this._post('/wallet/' + id + '/sign', body);

View File

@ -99,7 +99,7 @@ CPUMiner.prototype._close = async function close() {
CPUMiner.prototype.start = function start() { CPUMiner.prototype.start = function start() {
assert(!this.running, 'Miner is already running.'); assert(!this.running, 'Miner is already running.');
this._start().catch(util.nop); this._start().catch(nop);
}; };
/** /**
@ -571,6 +571,12 @@ CPUJob.prototype.pushTX = function pushTX(tx, view) {
return this.attempt.pushTX(tx, view); return this.attempt.pushTX(tx, view);
}; };
/*
* Helpers
*/
function nop() {}
/* /*
* Expose * Expose
*/ */

View File

@ -1186,7 +1186,7 @@ Pool.prototype.createInbound = function createInbound(socket) {
*/ */
Pool.prototype.uid = function uid() { Pool.prototype.uid = function uid() {
var MAX = util.MAX_SAFE_INTEGER; var MAX = Number.MAX_SAFE_INTEGER;
if (this.id >= MAX - this.peers.size() - 1) if (this.id >= MAX - this.peers.size() - 1)
this.id = 0; this.id = 0;

View File

@ -9,6 +9,8 @@
var assert = require('assert'); var assert = require('assert');
var fs = require('../utils/fs'); var fs = require('../utils/fs');
var util = require('../utils/util'); var util = require('../utils/util');
var os = require('os');
var HOME = os.homedir();
/** /**
* Config Parser * Config Parser
@ -25,7 +27,7 @@ function Config(module) {
this.module = module; this.module = module;
this.network = 'main'; this.network = 'main';
this.prefix = util.HOME + '/.' + module; this.prefix = HOME + '/.' + module;
this.options = Object.create(null); this.options = Object.create(null);
this.data = Object.create(null); this.data = Object.create(null);
@ -531,7 +533,7 @@ Config.prototype.path = function path(key, fallback) {
switch (value[0]) { switch (value[0]) {
case '~': // home dir case '~': // home dir
value = util.HOME + value.substring(1); value = HOME + value.substring(1);
break; break;
case '@': // prefix case '@': // prefix
value = this.prefix + value.substring(1); value = this.prefix + value.substring(1);
@ -591,11 +593,11 @@ Config.prototype.getPrefix = function getPrefix() {
if (prefix) { if (prefix) {
if (prefix[0] === '~') if (prefix[0] === '~')
prefix = util.HOME + prefix.substring(1); prefix = HOME + prefix.substring(1);
return prefix; return prefix;
} }
prefix = util.HOME + '/.' + this.module; prefix = HOME + '/.' + this.module;
network = this.str('network'); network = this.str('network');
if (network) { if (network) {

View File

@ -14,14 +14,6 @@
var BN = require('bn.js'); var BN = require('bn.js');
var encoding = exports; var encoding = exports;
/**
* Max safe integer (53 bits).
* @const {Number}
* @default
*/
encoding.MAX_SAFE_INTEGER = 0x1fffffffffffff;
/** /**
* An empty buffer. * An empty buffer.
* @const {Buffer} * @const {Buffer}
@ -360,7 +352,7 @@ encoding._write64 = function _write64(dst, num, off, be) {
num -= 1; num -= 1;
} }
enforce(num <= encoding.MAX_SAFE_INTEGER, off, 'Number exceeds 2^53-1'); enforce(num <= Number.MAX_SAFE_INTEGER, off, 'Number exceeds 2^53-1');
lo = num % 0x100000000; lo = num % 0x100000000;
hi = (num - lo) / 0x100000000; hi = (num - lo) / 0x100000000;

View File

@ -990,7 +990,7 @@ IP.isEqual = function isEqual(a, b) {
*/ */
IP.getInterfaces = function _getInterfaces(name, family) { IP.getInterfaces = function _getInterfaces(name, family) {
var interfaces = getInterfaces(); var interfaces = os.networkInterfaces();
var keys = Object.keys(interfaces); var keys = Object.keys(interfaces);
var result = []; var result = [];
var i, j, key, items, details, type, raw; var i, j, key, items, details, type, raw;
@ -1081,16 +1081,6 @@ function Address(host, port, type, hostname, raw) {
this.raw = raw || ZERO_IP; this.raw = raw || ZERO_IP;
} }
/*
* Helpers
*/
function getInterfaces() {
if (os.unsupported)
return {};
return os.networkInterfaces();
}
/* /*
* Expose * Expose
*/ */

View File

@ -9,7 +9,6 @@
var assert = require('assert'); var assert = require('assert');
var nodeUtil = require('util'); var nodeUtil = require('util');
var os = require('os');
/** /**
* @exports utils/util * @exports utils/util
@ -17,25 +16,6 @@ var os = require('os');
var util = exports; var util = exports;
/**
* The home directory.
* @const {String}
*/
util.HOME = '/';
if (os.homedir)
util.HOME = os.homedir();
/**
* Global NOP function.
* @type function
* @static
* @method
*/
util.nop = function() {};
/** /**
* Clone a buffer. * Clone a buffer.
* @param {Buffer} data * @param {Buffer} data
@ -135,39 +115,6 @@ util.revHex = function revHex(data) {
return out; return out;
}; };
/**
* Shallow merge between multiple objects.
* @param {Object} target
* @param {...Object} args
* @returns {Object} target
*/
util.merge = function merge(target) {
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;
};
if (Object.assign)
util.merge = Object.assign;
/**
* Max safe integer (53 bits).
* @const {Number}
* @default
*/
util.MAX_SAFE_INTEGER = 0x1fffffffffffff;
/** /**
* Test whether a number is below MAX_SAFE_INTEGER. * Test whether a number is below MAX_SAFE_INTEGER.
* @param {Number} value * @param {Number} value
@ -175,7 +122,7 @@ util.MAX_SAFE_INTEGER = 0x1fffffffffffff;
*/ */
util.isSafeInteger = function isSafeInteger(value) { util.isSafeInteger = function isSafeInteger(value) {
return value >= -0x1fffffffffffff && value <= 0x1fffffffffffff; return Number.isSafeInteger(value);
}; };
/** /**
@ -363,6 +310,8 @@ util.inspectify = function inspectify(obj, color) {
/** /**
* Format a string. * Format a string.
* @function * @function
* @param {...String} args
* @returns {String}
*/ */
util.fmt = nodeUtil.format; util.fmt = nodeUtil.format;
@ -380,7 +329,7 @@ util.format = function format(args, color) {
return typeof args[0] === 'object' return typeof args[0] === 'object'
? util.inspectify(args[0], color) ? util.inspectify(args[0], color)
: nodeUtil.format.apply(nodeUtil, args); : util.fmt.apply(util, args);
}; };
/** /**
@ -567,33 +516,12 @@ util.mb = function mb(size) {
*/ */
util.inherits = function inherits(child, parent) { util.inherits = function inherits(child, parent) {
var f;
child.super_ = parent; child.super_ = parent;
Object.setPrototypeOf(child.prototype, parent.prototype);
if (Object.setPrototypeOf) { Object.defineProperty(child.prototype, 'constructor', {
Object.setPrototypeOf(child.prototype, parent.prototype); value: child,
Object.defineProperty(child.prototype, 'constructor', { enumerable: false
value: child, });
enumerable: false
});
return;
}
if (Object.create) {
child.prototype = Object.create(parent.prototype, {
constructor: {
value: child,
enumerable: false
}
});
return;
}
f = function() {};
f.prototype = parent.prototype;
child.prototype = new f();
child.prototype.constructor = child;
}; };
/** /**

View File

@ -110,9 +110,9 @@ Master.prototype._initChildProcess = function _initChildProcess() {
}); });
// Nowhere to send these errors: // Nowhere to send these errors:
process.stdin.on('error', util.nop); process.stdin.on('error', nop);
process.stdout.on('error', util.nop); process.stdout.on('error', nop);
process.stderr.on('error', util.nop); process.stderr.on('error', nop);
process.on('uncaughtException', function(err) { process.on('uncaughtException', function(err) {
self.send(new packets.ErrorPacket(err)); self.send(new packets.ErrorPacket(err));
@ -265,6 +265,12 @@ Master.prototype.handlePacket = function handlePacket(packet) {
} }
}; };
/*
* Helpers
*/
function nop() {}
/* /*
* Expose * Expose
*/ */

View File

@ -48,7 +48,7 @@ function WorkerPool(options) {
this.set(options); this.set(options);
this.on('error', util.nop); this.on('error', nop);
} }
util.inherits(WorkerPool, EventEmitter); util.inherits(WorkerPool, EventEmitter);
@ -547,7 +547,7 @@ Worker.prototype._initChildProcess = function _initChildProcess() {
var self = this; var self = this;
var file = process.argv[0]; var file = process.argv[0];
var argv = [__dirname + '/worker.js']; var argv = [__dirname + '/worker.js'];
var env = util.merge({}, process.env, this.env); var env = Object.assign({}, process.env, this.env);
var options = { stdio: 'pipe', env: env }; var options = { stdio: 'pipe', env: env };
this.child = cp.spawn(file, argv, options); this.child = cp.spawn(file, argv, options);
@ -887,12 +887,11 @@ PendingJob.prototype.reject = function reject(err) {
*/ */
function getCores() { function getCores() {
if (os.unsupported) return Math.max(2, os.cpus().length);
return 2;
return Math.max(1, os.cpus().length);
} }
function nop() {}
/* /*
* Default Pool * Default Pool
*/ */

View File

@ -67,14 +67,13 @@
"webpack": "webpack" "webpack": "webpack"
}, },
"browser": { "browser": {
"bcoin-native": "./browser/empty.js",
"child_process": "./browser/empty.js", "child_process": "./browser/empty.js",
"crypto": "./browser/empty.js", "crypto": "./browser/empty.js",
"dgram": "./browser/empty.js", "dgram": "./browser/empty.js",
"dns": "./browser/empty.js", "dns": "./browser/empty.js",
"fs": "./browser/empty.js", "fs": "./browser/empty.js",
"net": "./browser/empty.js", "net": "./browser/empty.js",
"os": "./browser/empty.js", "bcoin-native": "./browser/empty.js",
"secp256k1": "./browser/empty.js", "secp256k1": "./browser/empty.js",
"socket.io": "./browser/empty.js", "socket.io": "./browser/empty.js",
"./lib/bcoin": "./lib/bcoin-browser.js", "./lib/bcoin": "./lib/bcoin-browser.js",