Когда я отвечал на еще один вопрос, я наткнулся на 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 не входит в какую-либо функцию.
Тогда почему это не бросается?