Ошибка синтаксического анализа Google Closure Compiler: неверный идентификатор свойства для `css({float:'left'})`

Я использую приложение Google Closure Compiler (интерфейс командной строки). Когда я запускаю его, я получаю следующую ошибку.

deploy/js/Home.js:40: ERROR - Parse error. invalid property id
    this.$images.wrapAll('<div id="slideInner"></div>').css({float:'left'});
                                                                   ^

1 error(s), 0 warning(s)

person Chapsterj    schedule 07.07.2011    source источник
comment
Вы пробовали заключать ключ в кавычки? .css({'float':'left'}) ?   -  person Gabriele Petrioli    schedule 07.07.2011
comment
Обратите внимание, что я видел использование ключевых слов без кавычек, поскольку это вызывает ошибки в IE, так что в любом случае это хорошо исправить :)   -  person Michael Mior    schedule 07.07.2011


Ответы (2)


Я считаю, что вам нужно сделать:

{'float':'left'}

Это связано с тем, что float находится в списке ключевых слов Java, зарезервированных JavaScript, поэтому его нельзя используется как имя свойства. Это больше не может быть проблемой в новых движках JS, но может быть проблемой в старых, поэтому компилятор выдает ошибку.

person bolinfest    schedule 07.07.2011
comment
Действительно ли ключевые слова Java зарезервированы в Ecmascript? Я не смог найти действующую ссылку? Или это проблема JScript? - person Bergi; 25.09.2012

Если у вас уже есть тонны соевых файлов и вы не хотите ничего менять в каждом соевом файле, вы можете передать флаг компилятору:

--compiler_flags="--language_in=ECMASCRIPT5"

Это сработало хорошо для меня.

person Sebastien    schedule 18.09.2012