36 lines
705 B
JavaScript
36 lines
705 B
JavaScript
description(
|
|
"Check that short-circuiting Branch(LogicalNot(@a)) and then failing speculation does not result in the branch being taken the wrong way."
|
|
);
|
|
|
|
function foo(a) {
|
|
if (a.f)
|
|
return 1;
|
|
return 0;
|
|
}
|
|
|
|
function bar(a) {
|
|
var b = !a.f;
|
|
if (b)
|
|
return 1;
|
|
return 0;
|
|
}
|
|
|
|
silentTestPass = true;
|
|
noInline(foo);
|
|
noInline(bar);
|
|
|
|
var True = true;
|
|
var False = false;
|
|
for (var i = 0; i < 200; i = dfgIncrement({f:[foo, bar], i:i + 1, n:50})) {
|
|
var x;
|
|
if (i == 100) {
|
|
True = "string";
|
|
False = void 0;
|
|
}
|
|
shouldBe("foo({f:True})", "1");
|
|
shouldBe("foo({f:False})", "0");
|
|
shouldBe("bar({f:True})", "0");
|
|
shouldBe("bar({f:False})", "1");
|
|
}
|
|
|