Я видел это странное поведение прямо сейчас, когда я не мог определить
function(){}
или
function(a){
console.log(a)
}
Он выдает Uncaught SyntaxError
.
Но test = function(){}
или (function(){})
действительно работали.
У инструментов Safari dev есть лучший отчет об ошибке: он говорит
SyntaxError: Операторы функций должны иметь имя.
Хорошо, нет смысла определять такую функцию, если вы никогда не будете ее использовать. Но все еще странно. Наверное, я уже ответил на этот вопрос.