On Wed, Oct 3, 2012 at 9:47 AM, Erik Arvidsson <erik.arvids...@gmail.com> wrote: > On Wed, Oct 3, 2012 at 3:24 AM, Andreas Rossberg <rossb...@google.com> wrote: >> On 3 October 2012 05:38, Brendan Eich <bren...@mozilla.com> wrote: >>> Which is more important, iterating over holes (preserved if possible), or >>> skipping them and therefore spreading array-likes but not iterables? >> >> I, for one, couldn't care less about holes. We shouldn't compromise >> any useful feature just for the sake of preserving some array hole >> craziness. > > Filling in holes with undefined seems like the right thing to do. > People do not depend on holes. > > Having Array.prototype.@iterator skip holes is bad because we don't > have the index so we don't know that anything was skipped.
I agree. Firefox currently fills holes in with undefined: js> var a = [1,,,,2]; js> [...a] [1, undefined, undefined, undefined, 2] Of course we'll eventually implement whatever TC39 specifies, and I don't think it matters *too* much; but I like this behavior because * the spread syntax just uses the iteration protocol; * it lets developers continue to ignore any holes they might have in their arrays (that is, it doesn't "squeeze out" the holes, which those developers might find astonishing--of course if they use .sort() or .forEach() on that array, they'll be astonished anyway). -j _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss