diff options
Diffstat (limited to 'node_modules/core-js/modules/esnext.number.from-string.js')
| -rw-r--r-- | node_modules/core-js/modules/esnext.number.from-string.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/esnext.number.from-string.js b/node_modules/core-js/modules/esnext.number.from-string.js new file mode 100644 index 0000000..85f1498 --- /dev/null +++ b/node_modules/core-js/modules/esnext.number.from-string.js @@ -0,0 +1,30 @@ +'use strict'; +var $ = require('../internals/export'); +var toInteger = require('../internals/to-integer'); +var parseInt = require('../internals/number-parse-int'); + +var INVALID_NUMBER_REPRESENTATION = 'Invalid number representation'; +var INVALID_RADIX = 'Invalid radix'; +var valid = /^[\da-z]+$/; + +// `Number.fromString` method +// https://github.com/tc39/proposal-number-fromstring +$({ target: 'Number', stat: true }, { + fromString: function fromString(string, radix) { + var sign = 1; + var R, mathNum; + if (typeof string != 'string') throw TypeError(INVALID_NUMBER_REPRESENTATION); + if (!string.length) throw SyntaxError(INVALID_NUMBER_REPRESENTATION); + if (string.charAt(0) == '-') { + sign = -1; + string = string.slice(1); + if (!string.length) throw SyntaxError(INVALID_NUMBER_REPRESENTATION); + } + R = radix === undefined ? 10 : toInteger(radix); + if (R < 2 || R > 36) throw RangeError(INVALID_RADIX); + if (!valid.test(string) || (mathNum = parseInt(string, R)).toString(R) !== string) { + throw SyntaxError(INVALID_NUMBER_REPRESENTATION); + } + return sign * mathNum; + } +}); |
