function* f() { try { yield 1 yield 2 yield 3 } finally { yield 4 yield 5 } } const iter = f() for (const val of iter) { console.log(val) if (val === 2) break } console.log(iter.next()) console.log(iter.next())