| var wait = 100; |
| |
| var method_A = function() { |
| for (var t = 0; t < wait; ++t) {} |
| } |
| |
| var method_B = function() { |
| for (var t = 0; t < wait; ++t) {} |
| } |
| |
| var method_C = function() { |
| for (var t = 0; t < wait; ++t) {} |
| } |
| |
| var method_D = function() { |
| for (var t = 0; t < wait; ++t) {} |
| } |
| |
| var func = [method_A, method_B, method_C, method_D] |
| |
| for (var n = 0; n < 4; ++n) { |
| try { |
| setJitCompilerOption("baseline.enable", n & 1); |
| setJitCompilerOption("ion.enable", n & 2 ? 1: 0); |
| } catch(e) { |
| if (e.toString().includes("on the stack")) |
| continue; |
| throw e; |
| } |
| var opt = getJitCompilerOptions(); |
| assertEq(opt["baseline.enable"], n & 1); |
| assertEq(opt["ion.enable"], n & 2 ? 1 : 0); |
| for (var i = 0; i < 1001; ++i) |
| func[n](); |
| } |