24 lines
		
	
	
		
			960 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			960 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| var global = require('../internals/global');
 | |
| 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 charAt = uncurryThis(''.charAt);
 | |
| var $parseFloat = global.parseFloat;
 | |
| var Symbol = global.Symbol;
 | |
| var ITERATOR = Symbol && Symbol.iterator;
 | |
| var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity
 | |
|   // MS Edge 18- broken with boxed symbols
 | |
|   || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));
 | |
| 
 | |
| // `parseFloat` method
 | |
| // https://tc39.es/ecma262/#sec-parsefloat-string
 | |
| module.exports = FORCED ? function parseFloat(string) {
 | |
|   var trimmedString = trim(toString(string));
 | |
|   var result = $parseFloat(trimmedString);
 | |
|   return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result;
 | |
| } : $parseFloat;
 | 
