tor-browser

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

constant-compare-null-undefined.js (1347B)


      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 testConstantCompareFn(fn, i, expectedOnSuccess) {
      9    assertEq(fn(i), expectedOnSuccess);
     10 
     11    // test with double values
     12    assertEq(fn(0.5), !expectedOnSuccess);
     13    assertEq(fn(-0.5), !expectedOnSuccess);
     14 
     15    // test with string values
     16    assertEq(fn(String(i)), !expectedOnSuccess);
     17    assertEq(fn(String(!i)), !expectedOnSuccess);
     18 
     19    // test with int values
     20    assertEq(fn(1), !expectedOnSuccess);
     21    assertEq(fn(0), !expectedOnSuccess);
     22    assertEq(fn(-1), !expectedOnSuccess);
     23 
     24    // test with BigInt values
     25    assertEq(fn(BigInt(1)), !expectedOnSuccess);
     26 
     27    // test with NaN
     28    assertEq(fn(NaN), !expectedOnSuccess);
     29 
     30    // test with Infinity
     31    assertEq(fn(Infinity), !expectedOnSuccess);
     32    assertEq(fn(-Infinity), !expectedOnSuccess);
     33 
     34    // test with object values
     35    assertEq(fn({}), !expectedOnSuccess);
     36    assertEq(fn([]), !expectedOnSuccess);
     37  }
     38 
     39  testConstantCompareFn(makeConstantCompareFn(null, '==='), null, true);
     40  testConstantCompareFn(makeConstantCompareFn(null, '!=='), null, false);
     41 
     42  testConstantCompareFn(makeConstantCompareFn(undefined, '==='), undefined, true);
     43  testConstantCompareFn(makeConstantCompareFn(undefined, '!=='), undefined, false);
     44 }