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); | |
} |