Revert "perf(toNumber): use +value to convert binary/octal/hexadecimal string (#4230)"

This reverts commit 7084300d34.
This commit is contained in:
John-David Dalton
2019-07-09 09:29:54 -07:00
parent 60eb517911
commit deb65de218
2 changed files with 19 additions and 5 deletions

View File

@@ -177,9 +177,18 @@
/** Used to match `RegExp` flags from their coerced string values. */
var reFlags = /\w*$/;
/** Used to detect bad signed hexadecimal string values. */
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
/** Used to detect binary string values. */
var reIsBinary = /^0b[01]+$/i;
/** Used to detect host constructors (Safari). */
var reIsHostCtor = /^\[object .+?Constructor\]$/;
/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i;
/** Used to detect unsigned integer values. */
var reIsUint = /^(?:0|[1-9]\d*)$/;
@@ -400,7 +409,8 @@
};
/** Built-in method references without a dependency on `root`. */
var freeParseFloat = parseFloat;
var freeParseFloat = parseFloat,
freeParseInt = parseInt;
/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
@@ -12458,7 +12468,11 @@
if (typeof value != 'string') {
return value === 0 ? value : +value;
}
return +value;
value = value.replace(reTrim, '');
var isBinary = reIsBinary.test(value);
return (isBinary || reIsOctal.test(value))
? freeParseInt(value.slice(2), isBinary ? 2 : 8)
: (reIsBadHex.test(value) ? NAN : +value);
}
/**