Когда я отвечал на еще один вопрос, я наткнулся на Node.js-модуль с инструкцией верхнего уровня return
. Например:
console.log("Trying to reach");
return;
console.log("dead code");
Это работает без каких-либо ошибок и печатает:
Trying to reach
в стандартном выводе, но не "dead code
" - действие return
фактически прекращено.
Но согласно спецификации инструкций return
в ECMAScript 5.1,
Семантика
Программа ECMAScript считается синтаксически неправильной, если она содержит оператор return, который не находится в пределах
FunctionBody
.
В программе, показанной выше, return
не входит в какую-либо функцию.
Тогда почему это не бросается?