1234567891011121314151617181920212223 |
- 'use strict';
- var globalThis = require('../internals/global-this');
- var fails = require('../internals/fails');
- var uncurryThis = require('../internals/function-uncurry-this');
- var toString = require('../internals/to-string');
- var trim = require('../internals/string-trim').trim;
- var whitespaces = require('../internals/whitespaces');
-
- var $parseInt = globalThis.parseInt;
- var Symbol = globalThis.Symbol;
- var ITERATOR = Symbol && Symbol.iterator;
- var hex = /^[+-]?0x/i;
- var exec = uncurryThis(hex.exec);
- var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22
- // MS Edge 18- broken with boxed symbols
- || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));
-
- // `parseInt` method
- // https://tc39.es/ecma262/#sec-parseint-string-radix
- module.exports = FORCED ? function parseInt(string, radix) {
- var S = trim(toString(string));
- return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));
- } : $parseInt;
|