Снова, чтоб не засорять форум, спрашиваю здесь.
Почему первый вариант вызывает ошибку, второй возвращает 4, третий работает корректно (получаем объект, указанный в скобках)?
eval('{a:4, b:6}'); //Unexpected token :
eval('{a:4}'); //4
eval('({a:4, b:6})'); //объект {a:4, b:6}
Проверялось только в хроме.