| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 
							- // 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));
 
- };
 
 
  |