foop
Version:
interfaces that describe their intentions.
40 lines (37 loc) • 3.01 kB
JavaScript
var MAX_32_BIT = require('../native/MAX_32_BIT')
var toInteger = require('./toInteger')
/**
* ToInt32(argument)
* >> 0 is shorthand for toInt32
*
* @name toInt32
* @alias toSigned32
* @alias toInteger32
* @alias to32BitInteger
* @alias to32Bit
*
* @param {number} x any number
* @return {number} 32bit integer
*
* {@link http://2ality.com/2012/02/js-integers.html 2ality-integers}
* {@link https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/JSAPI_reference/JS::ToInt32 mozilla-toint32}
* {@link https://tc39.github.io/ecma262/#sec-toint32 emca-toint32}
* {@link https://github.com/facebook/immutable-js/blob/master/src/TrieUtils.js#L93 immutable-js-resolveindex}
* @see {@link emca-toint32}
* @see {@link immutable-js-resolveindex}
* @see {@link 2ality-integers}
*
* @see native/MAX_32_BIT
* @see cast/toInteger
*
* @example
*
* toInt32(Math.pow(2,32)) //=> 0
* toInt32(Math.pow(2,32)+1) //=> 1
*
*/
function toInt32(x) {
return toInteger(x) % MAX_32_BIT
}
module.exports = toInt32
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9JbnQzMi5qcyIsInNvdXJjZXMiOlsidG9JbnQzMi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBNQVhfMzJfQklUID0gcmVxdWlyZSgnLi4vbmF0aXZlL01BWF8zMl9CSVQnKVxuY29uc3QgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi90b0ludGVnZXInKVxuXG4vKipcbiAqIFRvSW50MzIoYXJndW1lbnQpXG4gKiA+PiAwIGlzIHNob3J0aGFuZCBmb3IgdG9JbnQzMlxuICpcbiAqIEBuYW1lIHRvSW50MzJcbiAqIEBhbGlhcyB0b1NpZ25lZDMyXG4gKiBAYWxpYXMgdG9JbnRlZ2VyMzJcbiAqIEBhbGlhcyB0bzMyQml0SW50ZWdlclxuICogQGFsaWFzIHRvMzJCaXRcbiAqXG4gKiBAcGFyYW0ge251bWJlcn0geCBhbnkgbnVtYmVyXG4gKiBAcmV0dXJuIHtudW1iZXJ9IDMyYml0IGludGVnZXJcbiAqXG4gKiB7QGxpbmsgaHR0cDovLzJhbGl0eS5jb20vMjAxMi8wMi9qcy1pbnRlZ2Vycy5odG1sIDJhbGl0eS1pbnRlZ2Vyc31cbiAqIHtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL01vemlsbGEvUHJvamVjdHMvU3BpZGVyTW9ua2V5L0pTQVBJX3JlZmVyZW5jZS9KUzo6VG9JbnQzMiBtb3ppbGxhLXRvaW50MzJ9XG4gKiB7QGxpbmsgaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdG9pbnQzMiBlbWNhLXRvaW50MzJ9XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2ltbXV0YWJsZS1qcy9ibG9iL21hc3Rlci9zcmMvVHJpZVV0aWxzLmpzI0w5MyBpbW11dGFibGUtanMtcmVzb2x2ZWluZGV4fVxuICogQHNlZSB7QGxpbmsgZW1jYS10b2ludDMyfVxuICogQHNlZSB7QGxpbmsgaW1tdXRhYmxlLWpzLXJlc29sdmVpbmRleH1cbiAqIEBzZWUge0BsaW5rIDJhbGl0eS1pbnRlZ2Vyc31cbiAqXG4gKiBAc2VlIG5hdGl2ZS9NQVhfMzJfQklUXG4gKiBAc2VlIGNhc3QvdG9JbnRlZ2VyXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgdG9JbnQzMihNYXRoLnBvdygyLDMyKSkgICAvLz0+IDBcbiAqICB0b0ludDMyKE1hdGgucG93KDIsMzIpKzEpIC8vPT4gMVxuICpcbiAqL1xuZnVuY3Rpb24gdG9JbnQzMih4KSB7XG4gIHJldHVybiB0b0ludGVnZXIoeCkgJSBNQVhfMzJfQklUXG59XG5cbm1vZHVsZS5leHBvcnRzID0gdG9JbnQzMlxuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUM7QUFDbERBLEdBQUssQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQ3hDLFNBQVMsT0FBTyxDQUFDLENBQUMsRUFBRTtFQUNsQixPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVO0NBQ2pDOztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTzsifQ==