// |jit-test| test-join=--no-unboxed-objects // // Unboxed object optimization might not trigger in all cases, thus we ensure // that Sink optimization is working well independently of the // object representation. // Ion eager fails the test below because we have not yet created any // template object in baseline before running the content of the top-level // function. if (getJitCompilerOptions()["ion.warmup.trigger"] <= 20) setJitCompilerOption("ion.warmup.trigger", 20); // These arguments have to be computed by baseline, and thus captured in a // resume point. The next function checks that we can remove the computation of // these arguments. function f(a, b, c, d) { } function topLevel() { for (var i = 0; i < 30; i++) { var unused = {}; var a = {}; var b = {}; var c = {}; var d = {}; assertRecoveredOnBailout(unused, true); assertRecoveredOnBailout(a, true); assertRecoveredOnBailout(b, true); assertRecoveredOnBailout(c, true); assertRecoveredOnBailout(d, true); f(a, b, c, d); } } topLevel();