// |jit-test| skip-if: !('gc' in this) || !('clearKeptObjects' in this) // In generators, when we exit a lexical scope, its non-aliased bindings go away; // they don't keep their last values gc-alive.
let cases = [ function* onNormalExitFromFunction_VarBinding() { var tmp = yield 1;
consumeValue(tmp);
},
function* onNormalExitFromFunction_LetBinding() {
let tmp = yield 1;
consumeValue(tmp);
},
function* onNormalExitFromBlock() { if (typeof onNormalExitFromBlock === 'function') {
let tmp = yield 1;
consumeValue(tmp);
}
yield 2;
},
function runTest(g) {
consumeValue = eval("_ => {}");
let generator = g();
let result = generator.next();
assertEq(result.done, false);
assertEq(result.value, 1);
let object = {};
let weakRef = new WeakRef(object);
result = generator.next(object);
assertEq(result.value, result.done ? undefined : 2);
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.