UNPKG

foop

Version:

interfaces that describe their intentions.

29 lines (28 loc) 2.4 kB
/** * v8 has an optimization for storing 31-bit signed numbers. * Values which have either 00 or 11 as the high order bits qualify. * This function drops the highest order bit in a signed number, maintaining * the sign bit. * * @since 5.0.0-beta.6 * @version 2.0.0 <- accidentally had as signed, fixed to uint * @memberOf cast * * @name toUint31 * @alias castToSigned31BitUinteger * @alias castTo31 * @alias castToUint31 * @alias toSignedUint31 * @alias smi * * @param {number} i32 32bit integer * @return {number} unsigned31Integer number * * {@link https://github.com/facebook/immutable-js/blob/master/src/Math.js#L22 immutablejs-tounsigned31} * @see {@link immutablejs-tounsigned31} */ module.exports = function toUnsigned31(i32) { // eslint-disable-next-line return i32 >>> 1 & 0x40000000 | i32 & 0xbfffffff; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9VaW50MzEuanMiLCJzb3VyY2VzIjpbInRvVWludDMxLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogdjggaGFzIGFuIG9wdGltaXphdGlvbiBmb3Igc3RvcmluZyAzMS1iaXQgc2lnbmVkIG51bWJlcnMuXG4gKiBWYWx1ZXMgd2hpY2ggaGF2ZSBlaXRoZXIgMDAgb3IgMTEgYXMgdGhlIGhpZ2ggb3JkZXIgYml0cyBxdWFsaWZ5LlxuICogVGhpcyBmdW5jdGlvbiBkcm9wcyB0aGUgaGlnaGVzdCBvcmRlciBiaXQgaW4gYSBzaWduZWQgbnVtYmVyLCBtYWludGFpbmluZ1xuICogdGhlIHNpZ24gYml0LlxuICpcbiAqIEBzaW5jZSA1LjAuMC1iZXRhLjZcbiAqIEB2ZXJzaW9uIDIuMC4wIDwtIGFjY2lkZW50YWxseSBoYWQgYXMgc2lnbmVkLCBmaXhlZCB0byB1aW50XG4gKiBAbWVtYmVyT2YgY2FzdFxuICpcbiAqIEBuYW1lIHRvVWludDMxXG4gKiBAYWxpYXMgY2FzdFRvU2lnbmVkMzFCaXRVaW50ZWdlclxuICogQGFsaWFzIGNhc3RUbzMxXG4gKiBAYWxpYXMgY2FzdFRvVWludDMxXG4gKiBAYWxpYXMgdG9TaWduZWRVaW50MzFcbiAqIEBhbGlhcyBzbWlcbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gaTMyIDMyYml0IGludGVnZXJcbiAqIEByZXR1cm4ge251bWJlcn0gdW5zaWduZWQzMUludGVnZXIgbnVtYmVyXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9pbW11dGFibGUtanMvYmxvYi9tYXN0ZXIvc3JjL01hdGguanMjTDIyIGltbXV0YWJsZWpzLXRvdW5zaWduZWQzMX1cbiAqIEBzZWUge0BsaW5rIGltbXV0YWJsZWpzLXRvdW5zaWduZWQzMX1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiB0b1Vuc2lnbmVkMzEoaTMyKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICByZXR1cm4gaTMyID4+PiAxICYgMHg0MDAwMDAwMCB8IGkzMiAmIDB4YmZmZmZmZmY7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUJBLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxZQUFZLENBQUMsR0FBRyxFQUFFOztFQUUxQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsVUFBVSxHQUFHLEdBQUcsR0FBRyxVQUFVLENBQUM7Q0FDbEQ7In0=