tor-browser

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

object-loose-equality.js (1679B)


      1 var obj = {};
      2 var sym = Symbol();
      3 
      4 var notEqual = [
      5    [obj, sym],
      6 
      7    [0, {valueOf() { return null; }}],
      8    [0, {toString() { return null; }}],
      9    [null, {valueOf() { return null; }}],
     10    [null, {toString() { return null; }}],
     11    [undefined, {valueOf() { return null; }}],
     12    [undefined, {toString() { return null; }}],
     13    ["", {valueOf() { return null; }}],
     14    ["", {toString() { return null; }}],
     15    ["0", {valueOf() { return null; }}],
     16    ["0", {toString() { return null; }}],
     17 
     18    [0, {valueOf() { return undefined; }}],
     19    [0, {toString() { return undefined; }}],
     20    [null, {valueOf() { return undefined; }}],
     21    [null, {toString() { return undefined; }}],
     22    [undefined, {valueOf() { return undefined; }}],
     23    [undefined, {toString() { return undefined; }}],
     24    ["", {valueOf() { return undefined; }}],
     25    ["", {toString() { return undefined; }}],
     26    ["0", {valueOf() { return undefined; }}],
     27    ["0", {toString() { return undefined; }}],
     28 ]
     29 
     30 var equal = [
     31    [sym, {valueOf() { return sym; }}],
     32    [sym, {toString() { return sym; }}],
     33 
     34    ["abc", {valueOf() { return "abc"; }}],
     35    ["abc", {toString() { return "abc"; }}],
     36 
     37    [1, {valueOf() { return 1; }}],
     38    [1, {toString() { return 1; }}],
     39 
     40    [1, {valueOf() { return true; }}],
     41    [1, {toString() { return true; }}],
     42 
     43    [true, {valueOf() { return true; }}],
     44    [true, {toString() { return true; }}],
     45 
     46    [true, {valueOf() { return 1; }}],
     47    [true, {toString() { return 1; }}],
     48 ]
     49 
     50 for (var [lhs, rhs] of notEqual) {
     51    assertEq(lhs == rhs, false);
     52    assertEq(rhs == lhs, false);
     53 }
     54 
     55 for (var [lhs, rhs] of equal) {
     56    assertEq(lhs == rhs, true);
     57    assertEq(rhs == lhs, true);
     58 }