Show More
Commit Description:
use uuid cookie
Commit Description:
use uuid cookie
References:
File last commit:
Show/Diff file:
Action:
node_modules/es5-ext/math/hypot/shim.js
| 37 lines
| 1000 B
| application/javascript
| JavascriptLexer
|
r789 | // Thanks for hints: https://github.com/paulmillr/es6-shim | |||
"use strict"; | ||||
var some = Array.prototype.some | ||||
, abs = Math.abs | ||||
, sqrt = Math.sqrt | ||||
, compare = function (val1, val2) { return val2 - val1; } | ||||
, divide = function (value) { return value / this; } | ||||
, add = function (sum, number) { return sum + number * number; }; | ||||
// eslint-disable-next-line no-unused-vars | ||||
module.exports = function (val1, val2/*, …valn*/) { | ||||
var result, numbers; | ||||
if (!arguments.length) return 0; | ||||
some.call(arguments, function (val) { | ||||
if (isNaN(val)) { | ||||
result = NaN; | ||||
return false; | ||||
} | ||||
if (!isFinite(val)) { | ||||
result = Infinity; | ||||
return true; | ||||
} | ||||
if (result !== undefined) return false; | ||||
val = Number(val); | ||||
if (val === 0) return false; | ||||
if (numbers) numbers.push(abs(val)); | ||||
else numbers = [abs(val)]; | ||||
return false; | ||||
}); | ||||
if (result !== undefined) return result; | ||||
if (!numbers) return 0; | ||||
numbers.sort(compare); | ||||
return numbers[0] * sqrt(numbers.map(divide, numbers[0]).reduce(add, 0)); | ||||
}; | ||||