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