On Mar 3, 2014, at 5:36 AM, Claude Pache wrote: > > Le 3 mars 2014 à 13:56, Andy Wingo <[email protected]> a écrit : > >> On Mon 03 Mar 2014 12:49, Claude Pache <[email protected]> writes: >> >>> Le 3 mars 2014 à 10:46, Andy Wingo <[email protected]> a écrit : >>> >>>> >>>> An iterable is simply an object with a callable @@iterator property. >>>> Calling @@iterator on an object and getting back a result is the >>>> sum-total of the iterator structural type -- so yes, this problem is >>>> solved. >>> >>> What does exactly the spec think what an iterable is? >> >> For what purpose? > > For the purpose of giving the most reasonable answer to the `if (OBJ is > Iterable)` test that Caitlin Potter was asking for earlier in this thread. > > For me, the answer should be the same as what makes `Array.from` choose > between the branch "iterable" and the branch "array-like". Which, as I have > said, I cannot guess until bug 2486 is resolved. Deeper philosophical > thoughts over what an iterable *really* is don't matt
7.4.2 IsIterable ( obj ) The abstract operation IsIterable with argument obj performs the following steps: 1. If Type(obj) is not Object, then return undefined. 2. Let iteratorGetter be Get(obj, @@Iterator). 3. Return iteratorGetter. the above is the test that Array.from uses An Iterable is an object that has a Symbol.iterator keyed property whose value is not undefined. A well-fromed Iterable is one whose @@iterator method is a function that returns an object that supports the Iterator interface. If an iterable is not well-formed then using it as such is likely to result in runtime exceptions or buggy behavior. Allen _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

