tor-browser

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

compare.js (1296B)


      1 function sameDate(d1, d2) {
      2  return (d1 instanceof Date && d2 instanceof Date && d1.valueOf() == d2.valueOf());
      3 }
      4 
      5 function sameRE(r1, r2) {
      6  return (r1 instanceof RegExp && r2 instanceof RegExp && r1.toString() == r2.toString());
      7 }
      8 
      9 function assert_array_equals_(observed, expected, msg) {
     10  if (observed.length == expected.length) {
     11    for (var i = 0; i < observed.length; i++) {
     12      if (observed[i] instanceof Date) {
     13        observed[i] = sameDate(observed[i], expected[i]);
     14        expected[i] = true;
     15      } else if (observed[i] instanceof RegExp) {
     16        observed[i] = sameRE(observed[i], expected[i]);
     17        expected[i] = true;
     18      }
     19    }
     20  }
     21 
     22  assert_array_equals(observed, expected, msg);
     23 }
     24 
     25 function assert_object_equals_(observed, expected, msg) {
     26  for (var p in observed) {
     27    if (observed[p] instanceof Date) {
     28      observed[p] = sameDate(observed[p], expected[p]);
     29      expected[p] = true;
     30    } else if (observed[p] instanceof RegExp) {
     31      observed[p] = sameRE(observed[p], expected[p]);
     32      expected[p] = true;
     33    } else if (observed[p] instanceof Array || String(observed[p]) === '[object Object]') {
     34      observed[p] = String(observed[p]) === String(expected[p]);
     35      expected[p] = true;
     36    }
     37    assert_equals(observed[p], expected[p], msg);
     38  }
     39 }