42 lines
668 B
JavaScript

function *usingThrow() {
try {
try {
try {
throw "thrown";
} finally {
yield 1;
}
} catch (thrown) {
yield thrown;
} finally {
yield 2;
}
} finally {
yield 3;
}
}
function *usingRaise() {
try {
try {
try {
genHelpers.raise("thrown");
} finally {
yield 1;
}
} catch (thrown) {
yield thrown;
} finally {
yield 2;
}
} finally {
yield 3;
}
}
// should statically execute in order
genHelpers.check(usingThrow(), [1, "thrown", 2, 3]);
// should dynamically execute in order
genHelpers.check(usingRaise(), [1, "thrown", 2, 3]);