var a = [ "String", false, 42 ]; var count = 0; function getX(fromDFG) { if (fromDFG) return 42; return false; } noInline(getX); function foo(index) { var result = false; var x = getX(DFGTrue()); x * 2; var y = a[index % a.length]; result = y === x; count += 1; return result; } noInline(foo); var loopCount = 10000; function bar() { var result; for (var i = 0; i < loopCount - 1; i++) result = foo(i) result = foo(0); return result; } var result = bar(); if (result != false) throw "Error: bad result expected false: " + result; if (count != loopCount) throw "Error: bad count, expected: " + loopCount + ", got: " + count;