diff options
Diffstat (limited to 'js/src/jit-test/tests/warp/fun-call-not-inlined.js')
-rw-r--r-- | js/src/jit-test/tests/warp/fun-call-not-inlined.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/warp/fun-call-not-inlined.js b/js/src/jit-test/tests/warp/fun-call-not-inlined.js new file mode 100644 index 0000000000..3428167de5 --- /dev/null +++ b/js/src/jit-test/tests/warp/fun-call-not-inlined.js @@ -0,0 +1,29 @@ +// |jit-test| --fast-warmup + +// Call a scripted function instead of Function.prototype.call. +function testScriptedAtFunCallOp() { + var f = function(x) { + if (x === 130) bailout(); + return x; + }; + f.call = f; + + for (var i = 0; i < 150; i++) { + assertEq(f.call(i), i); + } +} +testScriptedAtFunCallOp(); + +// Call Function.prototype.call instead of a "normal" function. +function testFunCallAtNormalCallOp() { + var f = function(x) { + if (x === 130) bailout(); + return x; + }; + f.myCall = Function.prototype.call; + + for (var i = 0; i < 150; i++) { + assertEq(f.myCall(null, i), i); + } +} +testFunCallAtNormalCallOp(); |