It's a v8 bug in sloppy mode, in that v8 sloppy mode is still using legacy let/const semantics.
`'use strict'; for (const i of [1, 2, 3]) console.log(i)` will print out what you expect, since it properly rebinds per iteration. On Sat, Oct 17, 2015 at 11:09 PM, Isiah Meadows <[email protected]> wrote: > I was toying around with for-of loops in Node 4.0, and I ran into the > following problem: > > ``` > $ node > > for (let i of [1, 2, 3]) console.log(i) > 1 > 2 > 3 > undefined > > for (const i of [1, 2, 3]) console.log(i) > 1 > 1 > 1 > undefined > ``` > > That second loop is rather surprising. Is that the correct behavior > (in which I need to file an ESLint bug), or is this a V8 bug? > > -- > Isiah Meadows > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

