Kolyaj,
Как это? Происходит, вот:
try {
fun = function(){}
fun()
[function(){alert(123)}][0]()
} catch(e) {
alert(e); // Type Error: fun() is undefined
}
Такой текст ошибки, как я понимаю, из-за того, что результат fun() является не массивом (как ожидает конструкция), а undefined, из-за этого происходит ошибка типа.