Вот такая функция приводит к внутренней ошибке флеша

Код:
trace(checkLogin(''));
function checkLogin(login:String):String {
var s:String, ar:Array;
return '';
for each(s in ar) if (login.indexOf(s) >= 0) return '';
for each(s in ar) return '';
return '';
}
Причем убирание или изменение любой строки ошибку убирает. Как-то это странно и загадочно. Причем подобное встречаю не в первый раз, вот только щас удалось найти и выделить ошибку в нескольких строчках.