var shapes = []; for (var i = 0; i < 8; i++) {
shapes.push({x: 1, ["y" + i]: 1});
}
function foo(o, o2, cond) { var result = 0; for (var i = 0; i < 2; i++) { if (cond) {
result += o.x; // hoistable guard
}
}
result += o2.x; // folded stub return result;
}
// Ion-compile
with ({}) {} for (var i = 0; i < 2000; i++) {
foo({x: 1}, shapes[i%6], i % 2 == 0);
}
// Bail out in LICM-hoisted guard. // Hit unrelated fallback and add shape to folded stub
foo(undefined, shapes[6], false);
// Get numFixableBailouts to 9 for (var i = 0; i < 9; i++) {
foo(undefined, shapes[6], false);
}
// Bail out in non-LICM guard. Invalidate. // Add shape to folded stub.
foo({x:1}, shapes[7], false);
// Recompile. for (var i = 0; i < 2000; i++) {
foo({x: 1}, shapes[i%8], i % 2 == 0);
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.