Подтвердить что ты не робот

SyntaxError: missing = в объявлении const Firefox 50

У меня есть цикл, как показано ниже:

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

Это ошибка? Или, может быть, серая область в спецификации?

4b9b3361

Ответ 1

Да, это похоже на ошибку в Firefox. Спецификация позволяет использовать const:

IterationStatement:
    for(ForDeclaration in Expression) Statement

ForDeclaration:
    LetOrConst ForBinding

ForBinding:
    BindingIdentifier
    BindingPattern

(усеченный и упрощенный)

Похоже, что Firefox неправильно интерпретирует ForDeclaration как LexicalBinding.

Связано: ECMAScript 2015: const in for loops

Это похоже на отчет об ошибке для этой проблемы: https://bugzilla.mozilla.org/show_bug.cgi?id=1101653.


Соответствующие let и const поступают в Firefox: https://twitter.com/evilpies/status/768881995912994816