| '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; |