diff options
Diffstat (limited to 'src/node_modules/es-abstract/5/ToInteger.js')
-rw-r--r-- | src/node_modules/es-abstract/5/ToInteger.js | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/node_modules/es-abstract/5/ToInteger.js b/src/node_modules/es-abstract/5/ToInteger.js new file mode 100644 index 0000000..c29fff5 --- /dev/null +++ b/src/node_modules/es-abstract/5/ToInteger.js @@ -0,0 +1,18 @@ +'use strict'; + +var abs = require('./abs'); +var floor = require('./floor'); +var ToNumber = require('./ToNumber'); + +var $isNaN = require('../helpers/isNaN'); +var $isFinite = require('../helpers/isFinite'); +var $sign = require('../helpers/sign'); + +// http://www.ecma-international.org/ecma-262/5.1/#sec-9.4 + +module.exports = function ToInteger(value) { + var number = ToNumber(value); + if ($isNaN(number)) { return 0; } + if (number === 0 || !$isFinite(number)) { return number; } + return $sign(number) * floor(abs(number)); +}; |