description( | |
"Tests that the DFG does the right thing on strict equality for known strings." | |
); | |
function foo(a, b) { | |
a = a.f; | |
b = b.f; | |
var c = a.length + b.length; | |
return [c, a === b]; | |
} | |
function bar(a, b) { | |
a = a.f; | |
b = b.f; | |
var c = a.length + b.length; | |
if (a === b) | |
return c + 1; | |
else | |
return c - 1; | |
} | |
for (var i = 0; i < 1000; ++i) { | |
var a = "blah" + i; | |
var b = "blah" + (1000 - i); | |
var areEqual = i == 500; | |
shouldBe("foo({f:\"" + a + "\"}, {f:\"" + b + "\"})", "[" + (a.length + b.length) + ", " + areEqual + "]"); | |
shouldBe("bar({f:\"" + a + "\"}, {f:\"" + b + "\"})", "" + (areEqual ? a.length + b.length + 1 : a.length + b.length - 1)); | |
} | |