| 1234567891011121314151617181920212223242526272829303132333435363738 | 'use strict';var $ = require('../internals/export');var uncurryThis = require('../internals/function-uncurry-this');var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');var parseInt = require('../internals/number-parse-int');var INVALID_NUMBER_REPRESENTATION = 'Invalid number representation';var INVALID_RADIX = 'Invalid radix';var $RangeError = RangeError;var $SyntaxError = SyntaxError;var $TypeError = TypeError;var valid = /^[\da-z]+$/;var charAt = uncurryThis(''.charAt);var exec = uncurryThis(valid.exec);var numberToString = uncurryThis(1.0.toString);var stringSlice = uncurryThis(''.slice);// `Number.fromString` method// https://github.com/tc39/proposal-number-fromstring$({ target: 'Number', stat: true, forced: 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 (charAt(string, 0) == '-') {      sign = -1;      string = stringSlice(string, 1);      if (!string.length) throw $SyntaxError(INVALID_NUMBER_REPRESENTATION);    }    R = radix === undefined ? 10 : toIntegerOrInfinity(radix);    if (R < 2 || R > 36) throw $RangeError(INVALID_RADIX);    if (!exec(valid, string) || numberToString(mathNum = parseInt(string, R), R) !== string) {      throw $SyntaxError(INVALID_NUMBER_REPRESENTATION);    }    return sign * mathNum;  }});
 |