А почему он должен работать? Т.е., если записать
string function(){ return 'str' }()
то ф-я выполнится? Что-то не нашел такого в синтаксисе...
Из статьи
Цитата:
|
Когда программа встречает токен, недопустимый грамматикой, вставляется ";", если (а) в этом месте присутствует перенос строки
|
Вот теперь проблема с выражением, начинающимся со скобок (и с новой строки) становится не ясна. Либо оптимизатор не полностью поддерживает стандарт языка.
P.S. По своему опыту знаю, что пропуск точек с запятой мешает автоформатированию в jsfiddle и т.п. средах, что немного угнетает...