symbol-loose-equal-incompatible.js (682B)
1 // Test loose equality comparison between Symbols and String/Boolean/Int32/Double/BigInt. 2 3 var xs = [ 4 Symbol(), Symbol(), Symbol(), Symbol(), 5 Symbol(), Symbol(), Symbol(), Symbol(), 6 ]; 7 8 var ys = [ 9 "", "test", true, false, 10 123, 123.5, NaN, 456n, 11 ]; 12 13 function testLooseEqual() { 14 for (var i = 0; i < 100; ++i) { 15 var j = i % xs.length; 16 var x = xs[j]; 17 var y = ys[j]; 18 19 assertEq(x == y, false); 20 assertEq(y == x, false); 21 } 22 } 23 testLooseEqual(); 24 25 function testLooseNotEqual() { 26 for (var i = 0; i < 100; ++i) { 27 var j = i % xs.length; 28 var x = xs[j]; 29 var y = ys[j]; 30 31 assertEq(x != y, true); 32 assertEq(y != x, true); 33 } 34 } 35 testLooseNotEqual();