first
This commit is contained in:
29
node_modules/core-js/internals/math-fround.js
generated
vendored
Normal file
29
node_modules/core-js/internals/math-fround.js
generated
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
'use strict';
|
||||
var sign = require('../internals/math-sign');
|
||||
|
||||
var abs = Math.abs;
|
||||
var pow = Math.pow;
|
||||
var EPSILON = pow(2, -52);
|
||||
var EPSILON32 = pow(2, -23);
|
||||
var MAX32 = pow(2, 127) * (2 - EPSILON32);
|
||||
var MIN32 = pow(2, -126);
|
||||
|
||||
var roundTiesToEven = function (n) {
|
||||
return n + 1 / EPSILON - 1 / EPSILON;
|
||||
};
|
||||
|
||||
// `Math.fround` method implementation
|
||||
// https://tc39.es/ecma262/#sec-math.fround
|
||||
// eslint-disable-next-line es/no-math-fround -- safe
|
||||
module.exports = Math.fround || function fround(x) {
|
||||
var n = +x;
|
||||
var $abs = abs(n);
|
||||
var $sign = sign(n);
|
||||
var a, result;
|
||||
if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
|
||||
a = (1 + EPSILON32 / EPSILON) * $abs;
|
||||
result = a - (a - $abs);
|
||||
// eslint-disable-next-line no-self-compare -- NaN check
|
||||
if (result > MAX32 || result != result) return $sign * Infinity;
|
||||
return $sign * result;
|
||||
};
|
Reference in New Issue
Block a user