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