| var createBuiltin = $vm.createBuiltin; |
| |
| let i; |
| function verify(a, b, c, d, e, f) { |
| function assert(b, m) { |
| if (!b) |
| throw new Error(m); |
| } |
| assert(a === i); |
| assert(b === i+1); |
| assert(c === i+2); |
| assert(d === null); |
| assert(e === undefined); |
| assert(f === undefined); |
| } |
| noInline(verify); |
| |
| function func(a, b, c, d, e, f) |
| { |
| verify(a, b, c, d, e, f); |
| return !!(a%2) ? a + b + c + d : a + b + c + d; |
| } |
| |
| const bar = createBuiltin(`(function (f, a, b, c, d) { |
| let y = @idWithProfile(null, "SpecInt32Only"); |
| return f(a, b, c, y); |
| })`); |
| |
| noInline(bar); |
| |
| for (i = 0; i < 1000; ++i) { |
| bar(func, i, i+1, i+2, i+3); |
| } |