You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							26 lines
						
					
					
						
							804 B
						
					
					
				
			
		
		
	
	
							26 lines
						
					
					
						
							804 B
						
					
					
				var sign = require('../internals/math-sign'); | 
						|
 | 
						|
var abs = Math.abs; | 
						|
var pow = Math.pow; | 
						|
var EPSILON = pow(2, -52); | 
						|
var EPSILON32 = pow(2, -23); | 
						|
var MAX32 = pow(2, 127) * (2 - EPSILON32); | 
						|
var MIN32 = pow(2, -126); | 
						|
 | 
						|
var roundTiesToEven = function (n) { | 
						|
  return n + 1 / EPSILON - 1 / EPSILON; | 
						|
}; | 
						|
 | 
						|
// `Math.fround` method implementation | 
						|
// https://tc39.github.io/ecma262/#sec-math.fround | 
						|
module.exports = Math.fround || function fround(x) { | 
						|
  var $abs = abs(x); | 
						|
  var $sign = sign(x); | 
						|
  var a, result; | 
						|
  if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; | 
						|
  a = (1 + EPSILON32 / EPSILON) * $abs; | 
						|
  result = a - (a - $abs); | 
						|
  // eslint-disable-next-line no-self-compare | 
						|
  if (result > MAX32 || result != result) return $sign * Infinity; | 
						|
  return $sign * result; | 
						|
};
 | 
						|
 |