| description("Verify that we don't trash m_currentInstruction with an inlined function."); |
| |
| function myPush(a, o) { |
| a.push(o); |
| } |
| |
| function myPop(a) { |
| a.pop(); |
| } |
| |
| function foo(a) { |
| myPush(a, 42); |
| myPop(a); |
| return a.length; |
| } |
| |
| noInline(foo); |
| |
| function test() { |
| var myArray = ["one", "two", "three"]; |
| |
| for (var i = 0; i < 10000; ++i) { |
| if (foo(myArray) != 3) { |
| testFailed("Array changed unexpectedly"); |
| return false; |
| } |
| } |
| return true; |
| } |
| |
| if (test()) |
| testPassed("Correctly inlined callee and used m_currentInstruction in caller"); |