Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / core-js / modules / es.math.hypot.js
1 var $ = require('../internals/export');
2
3 var $hypot = Math.hypot;
4 var abs = Math.abs;
5 var sqrt = Math.sqrt;
6
7 // Chrome 77 bug
8 // https://bugs.chromium.org/p/v8/issues/detail?id=9546
9 var BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;
10
11 // `Math.hypot` method
12 // https://tc39.github.io/ecma262/#sec-math.hypot
13 $({ target: 'Math', stat: true, forced: BUGGY }, {
14   hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars
15     var sum = 0;
16     var i = 0;
17     var aLen = arguments.length;
18     var larg = 0;
19     var arg, div;
20     while (i < aLen) {
21       arg = abs(arguments[i++]);
22       if (larg < arg) {
23         div = larg / arg;
24         sum = sum * div * div + 1;
25         larg = arg;
26       } else if (arg > 0) {
27         div = arg / larg;
28         sum += div * div;
29       } else sum += arg;
30     }
31     return larg === Infinity ? Infinity : larg * sqrt(sum);
32   }
33 });