18 lines
568 B
JavaScript
18 lines
568 B
JavaScript
'use strict';
|
|
// eslint-disable-next-line es/no-math-expm1 -- safe
|
|
var $expm1 = Math.expm1;
|
|
var exp = Math.exp;
|
|
|
|
// `Math.expm1` method implementation
|
|
// https://tc39.es/ecma262/#sec-math.expm1
|
|
module.exports = (!$expm1
|
|
// Old FF bug
|
|
// eslint-disable-next-line no-loss-of-precision -- required for old engines
|
|
|| $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
|
|
// Tor Browser bug
|
|
|| $expm1(-2e-17) !== -2e-17
|
|
) ? function expm1(x) {
|
|
var n = +x;
|
|
return n === 0 ? n : n > -1e-6 && n < 1e-6 ? n + n * n / 2 : exp(n) - 1;
|
|
} : $expm1;
|