SyntaxError:missing =在const声明Firefox 50中

weg*_*gry 14 firefox google-chrome const ecmascript-6

我有一个如下循环:

const bar = {a: 1, b: 2}
for (const k in bar) { //Throws in Firefox but not Chrome 54
    console.log(k)
}
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?或者规格中的灰色区域?

Fel*_*ing 14

是的,这似乎是Firefox中的一个错误.该规范允许使用的const:

IterationStatement:
    for(ForDeclaration in Expression) Statement

ForDeclaration:
    LetOrConst ForBinding

ForBinding:
    BindingIdentifier
    BindingPattern
Run Code Online (Sandbox Code Playgroud)

(截断和简化)

似乎Firefox错误地将ForDeclaration解释为LexicalBinding.

相关:ECMAScript 2015:for循环中的const

这似乎是这个问题的错误报告:https://bugzilla.mozilla.org/show_bug.cgi?id = 1101653.


适当的,let并将const来到Firefox:https://twitter.com/evilpies/status/768881995912994816