Это ошибка в Firefox Developer Edition?

Посмотрите на код ниже:

var c = 50;

{
    console.log(y);
    let y = 50;
}

Этот код, как ожидают, бросит ReferenceError, и это делает. Но в консоли сообщение с приложением за исключением просто ошеломило меня. Это говорит:

ReferenceError: не может получить доступ к лексическому объявлению 'c' до инициализации

В коде c первая объявленная переменная Сообщение об ошибке указывает, что что-то не так с объявлением c, Это явно y переменная внутри блока, вызывающая исключение. Мы не можем использовать переменные, объявленные с помощью let до его объявления. Когда я объявляю другую переменную в первой строке, скажите testсообщение об ошибке меняется на:

ReferenceError: не может получить доступ к лексическому объявлению 'test' до инициализации

Я что-то упустил или я прав насчет ошибки? У меня установлена ​​последняя версия Firefox Developer Edition (версия 49.0a2).

Еще одна вещь, на которую стоит обратить внимание, это то, что блок - это просто закрывающий блок, а не тело функции.

1 ответ

Этот пост сделан в соответствии с этим мета постом, а не закрыт (см. Это).


Как Martin Smith и Martin Smith ( 1, 2), эта проблема была решена в версии 53/54. Соответствующий отчет об Devashish Jaiswal, сделанный Devashish Jaiswal (оригинальный постер).

Другие вопросы по тегам