tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

constant-compare-boolean-operands.js (1386B)


      1 load(libdir + "asserts.js");
      2 
      3 function makeConstantCompareFn(val, op) {
      4  return new Function('val', `return val ${op} ${val};`);
      5 }
      6 
      7 {
      8  function testBooleanConstantCompareFn(fn, i, expectedOnSuccess) {
      9    assertEq(fn(i), expectedOnSuccess);
     10    assertEq(fn(!i), !expectedOnSuccess);
     11 
     12    // test with double values
     13    assertEq(fn(0.5), !expectedOnSuccess);
     14    assertEq(fn(-0.5), !expectedOnSuccess);
     15 
     16    // test with string values
     17    assertEq(fn(String(i)), !expectedOnSuccess);
     18    assertEq(fn(String(!i)), !expectedOnSuccess);
     19 
     20    // test with int values
     21    assertEq(fn(1), !expectedOnSuccess);
     22    assertEq(fn(0), !expectedOnSuccess);
     23    assertEq(fn(-1), !expectedOnSuccess);
     24 
     25    // test with BigInt values
     26    assertEq(fn(BigInt(1)), !expectedOnSuccess);
     27 
     28    // test with NaN
     29    assertEq(fn(NaN), !expectedOnSuccess);
     30 
     31    // test with Infinity
     32    assertEq(fn(Infinity), !expectedOnSuccess);
     33    assertEq(fn(-Infinity), !expectedOnSuccess);
     34 
     35    // test with undefined
     36    assertEq(fn(undefined), !expectedOnSuccess);
     37 
     38    // test with null
     39    assertEq(fn(null), !expectedOnSuccess);
     40 
     41    // test with object values
     42    assertEq(fn({}), !expectedOnSuccess);
     43    assertEq(fn([]), !expectedOnSuccess);
     44  }
     45 
     46  testBooleanConstantCompareFn(makeConstantCompareFn(true, '==='), true, true);
     47  testBooleanConstantCompareFn(makeConstantCompareFn(true, '!=='), true, false);
     48 }