40 lines
623 B
JavaScript
40 lines
623 B
JavaScript
function* tryFinallyGenerator() {
|
|
var x = 1;
|
|
var y;
|
|
|
|
// finally inside a catch
|
|
try {
|
|
try {
|
|
yield x;
|
|
throw 7;
|
|
x = 2;
|
|
} finally {
|
|
x = 3;
|
|
}
|
|
} catch (e) {
|
|
y = e;
|
|
}
|
|
yield x * y;
|
|
|
|
// finally with no enclosing try
|
|
try {
|
|
y = 11;
|
|
yield y;
|
|
} finally {
|
|
y = 3;
|
|
}
|
|
yield y;
|
|
}
|
|
|
|
function accumulate(iterator) {
|
|
var result = '';
|
|
for (var value of iterator) {
|
|
result = result + String(value);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
assert.equal('121113', accumulate(tryFinallyGenerator()));
|