"use strict"; | |
function foo(x, y) | |
{ | |
if (arguments.length >= 2) | |
return foo(x+y) | |
return x; | |
} | |
noInline(foo); | |
function bar(x) | |
{ | |
if (arguments.length >= 2) | |
return bar(arguments[0] + arguments[1]) | |
return x; | |
} | |
noInline(bar); | |
for (var i = 0; i < 10000; ++i) { | |
var result = foo(40, 2); | |
if (result !== 42) | |
throw "Wrong result for foo, expected 42, got " + result; | |
result = bar(40, 2); | |
if (result !== 42) | |
throw "Wrong result for bar, expected 42, got " + result; | |
} |