I guess all built-in iterators return themselves for `Symbol.iterator`
protocol. So they are all singletons. I described in detail where
confusion/substitution of concepts happens in that analysis in the recent
two comments.
Dmitry
On Mon, Apr 6, 2015 at 1:07 PM, joe joe...@gmail.com wrote:
Regardless of what the spec says, you cannot avoid singleton iterators in
real-world code. In my opinion, the spec should refrain from specifying
when object creation happens within the iteration protocol, wait for the
relevant code and contract patterns to develop and then include something
in
On Apr 6, 2015, at 2:23 PM, Dmitry Soshnikov dmitry.soshni...@gmail.com
wrote:
I guess all built-in iterators return themselves for `Symbol.iterator`
protocol. So they are all singletons. I described in detail where
confusion/substitution of concepts happens in that analysis in the
Axel Rauschmayer wrote:
There are two different aspects:
1. If you get an iterable, it sometimes matters whether iteration
restarts when you ask the iterable for an iterator.
Rather, if you have an object o and o[Symbol.iterator]() === o then you
have an iterator.
2. Self-iterability is
Exactly, that's what I tried to explain. Since in one case it considers
just an iterable (an array), and in other case -- an iterator (which is by
coincidence is also an iterable). But an array's iterator is an iterable
as well, and also always returns itself for iterator protocol.
Yeah, the
There are two different aspects:
1. If you get an iterable, it sometimes matters whether iteration restarts when
you ask the iterable for an iterator.
2. Self-iterability is how iterators turn themselves into iterables so that
constructs that work with iterables can be used. It also enables
Good write up, although fresh vs singleton topic doesn't make sense, and
doesn't reflect the spec. I responded on the gist.
Dmitry
On Sat, Mar 28, 2015 at 4:41 AM, Axel Rauschmayer a...@rauschma.de wrote:
FWIW: I have written down my understanding of the ES6 iteration protocol
(shaped by
7 matches
Mail list logo