1 | var MAX_INT = require('./MAX_INT');
|
2 |
|
3 | /**
|
4 | * "Convert" value into an 31-bit unsigned integer (since 1 bit is used for sign).
|
5 | * IMPORTANT: value wil wrap at 2^31, if negative will return 0.
|
6 | */
|
7 | function toUInt31(val){
|
8 | // we do not use lang/toNumber because of perf and also because it
|
9 | // doesn't break the functionality
|
10 | return (val <= 0)? 0 : (val > MAX_INT? ~~(val % (MAX_INT + 1)) : ~~val);
|
11 | }
|
12 |
|
13 | module.exports = toUInt31;
|
14 |
|
15 |
|