blob: d1c9b61629b3fd4b89d25aec01204225652bcbc3 [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001'use strict';
2
3var abs = require('./abs');
4var floor = require('./floor');
5var ToNumber = require('./ToNumber');
6
7var $isNaN = require('../helpers/isNaN');
8var $isFinite = require('../helpers/isFinite');
9var $sign = require('../helpers/sign');
10
11// http://262.ecma-international.org/5.1/#sec-9.4
12
13module.exports = function ToInteger(value) {
14 var number = ToNumber(value);
15 if ($isNaN(number)) { return 0; }
16 if (number === 0 || !$isFinite(number)) { return number; }
17 return $sign(number) * floor(abs(number));
18};