In that case we have a gotcha. Is there any interest to change that behavior? Since es6 isn’t finial yet.
> On Dec 22, 2014, at 9:29 PM, Gary Guo <nbdd0...@hotmail.com> wrote: > > On Mon, 22 Dec 2014 21:06:18 +0800, Glen Huang <curvedm...@gmail.com> wrote: > >Ideally it shouldn’t, because its twin `for (var a in null) {}` won’t. > > > >But looking at step 8 in > >https://people.mozilla.org/~jorendorff/es6-draft.html#sec-runtime-semantics-forin-div-ofexpressionevaluation-abstract-operation > > > ><https://people.mozilla.org/~jorendorff/es6-draft.html#sec-runtime-semantics-forin-div-ofexpressionevaluation-abstract-operation>, > > when passing `null` to `GetIterator()`, it will throw a type error when the > >result of step 2 `CheckIterable(null)`, which is `undefind`, is called in > >step 3 in the algorithm for `GetIterator()`. > > > >Did I miss something or the current spec does throw an error? > > To me since `IsCallable(undefined)` is `false`, so it throws an `TypeError`. > Traceur and V8 will both throw a `TypeError` saying that cannot read property > @@iterator from undefined or null, and Firefox throws a `TypeError` saying > that null have no property. So it should be an error.
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss