// 2 environment objects: Call => Var. The lambda uses both of them. function testBasic(p = defaultValue()) { for (var i = 0; i < 2000; i++) {} return () => i + p;
}
assertEq(testBasic()(), 2123);
function testBailout(p = defaultValue()) { for (var i = 0; i < 2000; i++) { if (i > 1950) {
bailout();
}
} return () => i + p;
}
assertEq(testBailout()(), 2123);
// 3 environment objects: Call => Var => Lexical. The lambda uses all of them.
let escaped; function testVarAndLexical(p = defaultValue()) { var q = p + 1;
let i = 0; for (; i < 2000; i++) {
escaped = () => i + p + q;
}
}
testVarAndLexical();
assertEq(escaped(), 2247);
function testVarAndLexicalBailout(p = defaultValue()) { var q = p + 1;
let i = 0; for (; i < 2000; i++) {
escaped = () => i + p - q; if (i > 1950) {
bailout();
}
}
}
testVarAndLexicalBailout();
assertEq(escaped(), 1999);
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.