simple-squiggle

A restricted subset of Squiggle
Log | Files | Refs | README

bitwise.js (1968B)


      1 "use strict";
      2 
      3 Object.defineProperty(exports, "__esModule", {
      4   value: true
      5 });
      6 exports.bitAndNumber = bitAndNumber;
      7 exports.bitNotNumber = bitNotNumber;
      8 exports.bitOrNumber = bitOrNumber;
      9 exports.bitXorNumber = bitXorNumber;
     10 exports.leftShiftNumber = leftShiftNumber;
     11 exports.rightArithShiftNumber = rightArithShiftNumber;
     12 exports.rightLogShiftNumber = rightLogShiftNumber;
     13 
     14 var _number = require("../../utils/number.js");
     15 
     16 var n1 = 'number';
     17 var n2 = 'number, number';
     18 
     19 function bitAndNumber(x, y) {
     20   if (!(0, _number.isInteger)(x) || !(0, _number.isInteger)(y)) {
     21     throw new Error('Integers expected in function bitAnd');
     22   }
     23 
     24   return x & y;
     25 }
     26 
     27 bitAndNumber.signature = n2;
     28 
     29 function bitNotNumber(x) {
     30   if (!(0, _number.isInteger)(x)) {
     31     throw new Error('Integer expected in function bitNot');
     32   }
     33 
     34   return ~x;
     35 }
     36 
     37 bitNotNumber.signature = n1;
     38 
     39 function bitOrNumber(x, y) {
     40   if (!(0, _number.isInteger)(x) || !(0, _number.isInteger)(y)) {
     41     throw new Error('Integers expected in function bitOr');
     42   }
     43 
     44   return x | y;
     45 }
     46 
     47 bitOrNumber.signature = n2;
     48 
     49 function bitXorNumber(x, y) {
     50   if (!(0, _number.isInteger)(x) || !(0, _number.isInteger)(y)) {
     51     throw new Error('Integers expected in function bitXor');
     52   }
     53 
     54   return x ^ y;
     55 }
     56 
     57 bitXorNumber.signature = n2;
     58 
     59 function leftShiftNumber(x, y) {
     60   if (!(0, _number.isInteger)(x) || !(0, _number.isInteger)(y)) {
     61     throw new Error('Integers expected in function leftShift');
     62   }
     63 
     64   return x << y;
     65 }
     66 
     67 leftShiftNumber.signature = n2;
     68 
     69 function rightArithShiftNumber(x, y) {
     70   if (!(0, _number.isInteger)(x) || !(0, _number.isInteger)(y)) {
     71     throw new Error('Integers expected in function rightArithShift');
     72   }
     73 
     74   return x >> y;
     75 }
     76 
     77 rightArithShiftNumber.signature = n2;
     78 
     79 function rightLogShiftNumber(x, y) {
     80   if (!(0, _number.isInteger)(x) || !(0, _number.isInteger)(y)) {
     81     throw new Error('Integers expected in function rightLogShift');
     82   }
     83 
     84   return x >>> y;
     85 }
     86 
     87 rightLogShiftNumber.signature = n2;