aboutsummaryrefslogtreecommitdiff
path: root/node_modules/core-js/modules/es6.math.fround.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/core-js/modules/es6.math.fround.js')
-rw-r--r--node_modules/core-js/modules/es6.math.fround.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/es6.math.fround.js b/node_modules/core-js/modules/es6.math.fround.js
new file mode 100644
index 000000000..01a88862e
--- /dev/null
+++ b/node_modules/core-js/modules/es6.math.fround.js
@@ -0,0 +1,26 @@
+// 20.2.2.16 Math.fround(x)
+var $export = require('./_export')
+ , sign = require('./_math-sign')
+ , pow = Math.pow
+ , EPSILON = pow(2, -52)
+ , EPSILON32 = pow(2, -23)
+ , MAX32 = pow(2, 127) * (2 - EPSILON32)
+ , MIN32 = pow(2, -126);
+
+var roundTiesToEven = function(n){
+ return n + 1 / EPSILON - 1 / EPSILON;
+};
+
+
+$export($export.S, 'Math', {
+ fround: function fround(x){
+ var $abs = Math.abs(x)
+ , $sign = sign(x)
+ , a, result;
+ if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
+ a = (1 + EPSILON32 / EPSILON) * $abs;
+ result = a - (a - $abs);
+ if(result > MAX32 || result != result)return $sign * Infinity;
+ return $sign * result;
+ }
+}); \ No newline at end of file