| |
| // Test setting return value; |
| |
| function bail() { bailout(); } |
| function bail2() { bailout(); return 2; } |
| |
| // Test 1: Test setting/getting return value in ionmonkey |
| function test() { |
| return evalcx("1;"); |
| } |
| assertEq(test(), 1) |
| |
| // Test 3: Test ion -> baseline |
| function test2() { |
| return evaluate("1; bail2();"); |
| } |
| assertEq(test2(), 2) |
| |
| // Test 3: Test ion -> baseline |
| function test3() { |
| return evaluate("1; bail2(); 3"); |
| } |
| assertEq(test3(), 3) |
| |
| // Test4: Test baseline -> ion entering (very fragile, since iterations need to be precise, before it gets tested) |
| function test4() { |
| return evaluate("1; for(var i=0; i<1097; i++) { 3; };"); |
| } |
| assertEq(test4(), 3) |