Вы забыли закрывающую фигурную скобку в конце.
UPD: в конце функции. Еще у вас строка
finish += arguments[i];
недосягаемая, т.к. находится после return.
function test() {
var finish = 0;
return function() {
for (var i = 0; ; i++) {
if (arguments[i] == "undefined") {
return finish;
}
finish += arguments[i];
}
}
}
var x = test();
x(32,546,3);
UPD UPD: блин, у вас еще и вечный цикл! Вы неправильно сравниваете на undefined. Там не будет такой строки. Вот так надо
if (arguments[i] === undefined) {
return finish;
}
UPD UPD UPD: еще вы не указали условие завершения цикла, это плохой тон. У объекта arguments (да, это объект а не массив) есть поле length, пусть цикл идет от нуля до length
for (var i = 0; i < arguments.length ; i++) {