| 'use strict'; | 
| var $ = require('../internals/export'); | 
|   | 
| // eslint-disable-next-line es/no-math-hypot -- required for testing | 
| var $hypot = Math.hypot; | 
| var abs = Math.abs; | 
| var sqrt = Math.sqrt; | 
|   | 
| // Chrome 77 bug | 
| // https://bugs.chromium.org/p/v8/issues/detail?id=9546 | 
| var FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity; | 
|   | 
| // `Math.hypot` method | 
| // https://tc39.es/ecma262/#sec-math.hypot | 
| $({ target: 'Math', stat: true, arity: 2, forced: FORCED }, { | 
|   // eslint-disable-next-line no-unused-vars -- required for `.length` | 
|   hypot: function hypot(value1, value2) { | 
|     var sum = 0; | 
|     var i = 0; | 
|     var aLen = arguments.length; | 
|     var larg = 0; | 
|     var arg, div; | 
|     while (i < aLen) { | 
|       arg = abs(arguments[i++]); | 
|       if (larg < arg) { | 
|         div = larg / arg; | 
|         sum = sum * div * div + 1; | 
|         larg = arg; | 
|       } else if (arg > 0) { | 
|         div = arg / larg; | 
|         sum += div * div; | 
|       } else sum += arg; | 
|     } | 
|     return larg === Infinity ? Infinity : larg * sqrt(sum); | 
|   } | 
| }); |