function foo(a, b) {
return a == b;
}
function bar(a, b) {
if (a == b)
return "yes";
else
return "no";
}
function baz(a, b) {
if (a != b)
return "no";
else
return "yes";
}
var o = {f:1};
var p = {f:2};
var q = {f:3};
var array1 = [o, p, q];
var array2 = [o, null];
var expecteds = [true,"yes","yes",false,"no","no",false,"no","no",false,"no","no",false,"no","no",false,"no","no"];
var expectedsIndex = 0;
function dostuff(result) {
if (result == expecteds[expectedsIndex % expecteds.length]) {
expectedsIndex++;
return;
}
print("Bad result with a = " + a + ", b = " + b + ": wanted " + expecteds[expectedsIndex % expecteds.length] + " but got " + result);
throw "Error";
}
for (var i = 0; i < 100000; ++i) {
var a = array1[i % array1.length];
var b = array2[i % array2.length];
dostuff(foo(a, b));
dostuff(bar(a, b));
dostuff(baz(a, b));
}