'use strict'; var $ = require('../internals/export'); var log1p = require('../internals/math-log1p'); // eslint-disable-next-line es/no-math-acosh -- required for testing var $acosh = Math.acosh; var log = Math.log; var sqrt = Math.sqrt; var LN2 = Math.LN2; var FORCED = !$acosh // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 || Math.floor($acosh(Number.MAX_VALUE)) !== 710 // Tor Browser bug: Math.acosh(Infinity) -> NaN || $acosh(Infinity) !== Infinity; // `Math.acosh` method // https://tc39.es/ecma262/#sec-math.acosh $({ target: 'Math', stat: true, forced: FORCED }, { acosh: function acosh(x) { var n = +x; return n < 1 ? NaN : n > 94906265.62425156 ? log(n) + LN2 : log1p(n - 1 + sqrt(n - 1) * sqrt(n + 1)); } });