For or loops are spec'ed to call the internal spec function, IteratorClose when there is an abrupt completion in the loop body (an exception was thrown, return and break)
The point of this was to allow cleaning up the iterator in case it holds on to some kind of resource. The problem is that none of the other iterations in the spec calls IteratorClose. For example, ```js class MySet extends Set { add(v) { if (valueNoGood(v)) throw new NoGoodError(); return super(v); } } new MySet(new ReadLines('~/test.txt')); ``` In the above code `ReadLines.prototype.return` is never called, defeating the whole purpose of adding return hooks to for-of. I see two options here. 1. Add IteratorClose to all places in the spec where we use iterators. 2. Remove IteratorClose from for-of loops. I know we talked about this before on several occasions but I'm still unhappy with the current state. -- erik
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss