<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div><blockquote type="cite" class=""><div class=""><blockquote type="cite" class="">But: you need to guard against other ways of reaching `finally`.<br class=""></blockquote><br class="">Why? I intended to always reach finally, and always close the iterator. Also, simplicity ftw :-)<br class=""><br class="">> Thatís not what all the other constructs in ES6 do: they only call `return()` if iteration stops abruptly.<br class=""><br class="">Only because all the other constructs in ES6 try to exhaust the iterator. And when it's finished anyway, one doesn't need to close it.<br class="">There is in fact no problem with calling `.return()` too often, it just doesn't do anything to completed generators.<br class=""></div></blockquote><div><br class=""></div>True. I hadnít thought of that.</div><div><br class=""><blockquote type="cite" class=""><div class="">Btw, your `take` function is the perfect example where a non-exhausted iterator *should* be closed as return prematurely - like a `break` in a for-of loop would.<br class=""></div></blockquote><div><br class=""></div><div>Right. Always closing is much simpler. Otherwise, youíd have to check whether everything was exhausted or not.</div></div><br class=""><div apple-content-edited="true" class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">-- <br class="">Dr. Axel Rauschmayer<br class=""><a href="mailto:axel@rauschma.de" class="">axel@rauschma.de</a><br class="">rauschma.de<br class=""></div></div></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br class=""></body></html>