blob: 5464ae3e6eddb2f6d934e3c4c8a31593d4a171f3 [file] [log] [blame]
// 20.2.2.30 Math.sinh(x)
var $export = require('./_export')
, expm1 = require('./_math-expm1')
, exp = Math.exp;
// V8 near Chromium 38 has a problem with very small numbers
$export($export.S + $export.F * require('./_fails')(function(){
return !Math.sinh(-2e-17) != -2e-17;
}), 'Math', {
sinh: function sinh(x){
return Math.abs(x = +x) < 1
? (expm1(x) - expm1(-x)) / 2
: (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
}
});