UNPKG

960 BJavaScriptView Raw
1'use strict';
2var global = require('../internals/global');
3var fails = require('../internals/fails');
4var uncurryThis = require('../internals/function-uncurry-this');
5var toString = require('../internals/to-string');
6var trim = require('../internals/string-trim').trim;
7var whitespaces = require('../internals/whitespaces');
8
9var charAt = uncurryThis(''.charAt);
10var $parseFloat = global.parseFloat;
11var Symbol = global.Symbol;
12var ITERATOR = Symbol && Symbol.iterator;
13var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity
14 // MS Edge 18- broken with boxed symbols
15 || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));
16
17// `parseFloat` method
18// https://tc39.es/ecma262/#sec-parsefloat-string
19module.exports = FORCED ? function parseFloat(string) {
20 var trimmedString = trim(toString(string));
21 var result = $parseFloat(trimmedString);
22 return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result;
23} : $parseFloat;