shim.js
282 Bytes
'use strict';
var log = Math.log, sqrt = Math.sqrt;
module.exports = function (x) {
if (isNaN(x)) return NaN;
x = Number(x);
if (x === 0) return x;
if (!isFinite(x)) return x;
if (x < 0) {
x = -x;
return -log(x + sqrt(x * x + 1));
}
return log(x + sqrt(x * x + 1));
};