bitwise.js (1460B)
1 import { isInteger } from '../../utils/number.js'; 2 var n1 = 'number'; 3 var n2 = 'number, number'; 4 export function bitAndNumber(x, y) { 5 if (!isInteger(x) || !isInteger(y)) { 6 throw new Error('Integers expected in function bitAnd'); 7 } 8 9 return x & y; 10 } 11 bitAndNumber.signature = n2; 12 export function bitNotNumber(x) { 13 if (!isInteger(x)) { 14 throw new Error('Integer expected in function bitNot'); 15 } 16 17 return ~x; 18 } 19 bitNotNumber.signature = n1; 20 export function bitOrNumber(x, y) { 21 if (!isInteger(x) || !isInteger(y)) { 22 throw new Error('Integers expected in function bitOr'); 23 } 24 25 return x | y; 26 } 27 bitOrNumber.signature = n2; 28 export function bitXorNumber(x, y) { 29 if (!isInteger(x) || !isInteger(y)) { 30 throw new Error('Integers expected in function bitXor'); 31 } 32 33 return x ^ y; 34 } 35 bitXorNumber.signature = n2; 36 export function leftShiftNumber(x, y) { 37 if (!isInteger(x) || !isInteger(y)) { 38 throw new Error('Integers expected in function leftShift'); 39 } 40 41 return x << y; 42 } 43 leftShiftNumber.signature = n2; 44 export function rightArithShiftNumber(x, y) { 45 if (!isInteger(x) || !isInteger(y)) { 46 throw new Error('Integers expected in function rightArithShift'); 47 } 48 49 return x >> y; 50 } 51 rightArithShiftNumber.signature = n2; 52 export function rightLogShiftNumber(x, y) { 53 if (!isInteger(x) || !isInteger(y)) { 54 throw new Error('Integers expected in function rightLogShift'); 55 } 56 57 return x >>> y; 58 } 59 rightLogShiftNumber.signature = n2;