function foo(a, b) { | |
return a + "x" + b; | |
} | |
noInline(foo); | |
for (var i = 0; i < 10000; ++i) { | |
var b; | |
var expected; | |
if (i & 1) { | |
b = 42; | |
expected = "ax42"; | |
} else { | |
b = "b"; | |
expected = "axb"; | |
} | |
var result = foo("a", b); | |
if (result != expected) | |
throw "Error: bad result: " + result; | |
} | |
var longStr = "l"; | |
for (var i = 0; i < 30; ++i) | |
longStr = longStr + longStr; | |
var result = null; | |
var didThrow = false; | |
try { | |
result = foo(longStr, longStr); | |
} catch (e) { | |
didThrow = true; | |
} | |
if (!didThrow) | |
throw "Error: did not throw"; | |
if (result !== null) | |
throw "Error: did set result: " + result; |