tor-browser

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

binary-arith-fold-nan.js (1169B)


      1 const values = [
      2  -Infinity,
      3  -Number.MAX_VALUE,
      4  -Number.MIN_VALUE,
      5  -0,
      6 
      7  +0,
      8  +Number.MIN_VALUE,
      9  +Number.MAX_VALUE
     10  +Infinity,
     11 
     12  -123,
     13  -0.5,
     14  +123,
     15  +0.5,
     16 ];
     17 
     18 for (let i = 0; i < 200; ++i) {
     19  let val = values[i % values.length];
     20 
     21  // rhs is NaN
     22  assertEq(val + NaN, NaN);
     23  assertEq(val - NaN, NaN);
     24  assertEq(val * NaN, NaN);
     25  assertEq(val / NaN, NaN);
     26  assertEq(val % NaN, NaN);
     27  assertEq(val ** NaN, NaN);
     28 
     29  // rhs is undefined, ToNumber(undefined) is NaN
     30  assertEq(val + undefined, NaN);
     31  assertEq(val - undefined, NaN);
     32  assertEq(val * undefined, NaN);
     33  assertEq(val / undefined, NaN);
     34  assertEq(val % undefined, NaN);
     35  assertEq(val ** undefined, NaN);
     36 
     37  // lhs is NaN
     38  assertEq(NaN + val, NaN);
     39  assertEq(NaN - val, NaN);
     40  assertEq(NaN * val, NaN);
     41  assertEq(NaN / val, NaN);
     42  assertEq(NaN % val, NaN);
     43  assertEq(NaN ** val, (val === 0 ? 1 : NaN));
     44 
     45  // lhs is undefined, ToNumber(undefined) is NaN
     46  assertEq(undefined + val, NaN);
     47  assertEq(undefined - val, NaN);
     48  assertEq(undefined * val, NaN);
     49  assertEq(undefined / val, NaN);
     50  assertEq(undefined % val, NaN);
     51  assertEq(undefined ** val, (val === 0 ? 1 : NaN));
     52 }