Skip to content

Commit

Permalink
fixes #163: close both iterators in flatMap
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelficarra committed Jul 7, 2022
1 parent fca4d4b commit 5e1775b
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions spec.html
Expand Up @@ -643,8 +643,11 @@ <h1>Iterator.prototype.flatMap ( _mapper_ )</h1>
1. Else,
1. Let _innerValue_ be Completion(IteratorValue(_innerNext_)).
1. IfAbruptCloseIterator(_innerValue_, _iterated_).
1. Let _yielded_ be Completion(Yield(_innerValue_)).
1. IfAbruptCloseIterator(_yielded_, _iterated_).
1. Let _completion_ be Completion(Yield(_innerValue_)).
1. If _completion_ is an abrupt completion, then
1. Let _backupCompletion_ be Completion(IteratorClose(_innerIterator_, _completion_)).
1. IfAbruptCloseIterator(_backupCompletion_, _iterated_).
1. Return ? IteratorClose(_completion_, _iterated_).
1. Return CreateIteratorFromClosure(_closure_, ~Iterator Helper~, %IteratorHelperPrototype%).
</emu-alg>
</emu-clause>
Expand Down Expand Up @@ -903,8 +906,14 @@ <h1>AsyncIterator.prototype.flatMap ( _mapper_ )</h1>
1. Else,
1. Let _innerValue_ be Completion(IteratorValue(_innerNext_)).
1. IfAbruptCloseAsyncIterator(_innerValue_, _iterated_).
1. Let _yielded_ be Completion(Yield(_innerValue_)).
1. IfAbruptCloseAsyncIterator(_yielded_, _iterated_).
1. [id="step-async-iterator-flatmap-yield"] Let _completion_ be Completion(Yield(_innerValue_)).
1. If _completion_ is a return completion, then
1. Let _backupCompletion_ be Completion(IteratorClose(_innerIterator_, _completion_)).
1. IfAbruptCloseIterator(_backupCompletion_, _iterated_).
1. Return ? IteratorClose(_completion_, _iterated_).
1. Else if _completion_ is a throw completion, then
1. Assert: Awaiting _innerValue_ during the Yield on step <emu-xref href="#step-async-iterator-flatmap-yield"></emu-xref> threw.
1. Return ? IteratorClose(_completion_, _iterated_).
1. Return CreateAsyncIteratorFromClosure(_closure_, ~Async Iterator Helper~, %AsyncIteratorHelperPrototype%).
</emu-alg>
</emu-clause>
Expand Down

0 comments on commit 5e1775b

Please sign in to comment.