JSLint - проблемы с импортом пакетов

Я пишу сценарий Java с помощью rhino. У меня есть несколько классов, написанных на java, которые я импортирую в javascript.

Но когда я проверяю javascript на JSLint, он делает недействительным javascript, говоря:

Проблема в строке 9, символ 1: 'importPackage' использовался до того, как он был определен.

Вот образец из моего сценария:

importPackage(Packages.org.raj.test);
var test = "123";

Я также выбрал вариант «Предположить Rhino», но все равно отображается та же ошибка.

Как мне решить эту проблему?

Обратите внимание, что стандарт ECMA не распространяется на взаимодействие с Java (или с любой внешней объектной системой, если на то пошло).


person RAJ    schedule 21.03.2012    source источник


Ответы (2)


Я явно добавил следующую строку поверх своего скрипта

/ * глобальный importPackage: true * /

и это работает!

person Community    schedule 30.08.2012

Похоже, что флаг «Assume Rhino» (он же rhino: true в директиве options) предопределяет для вас только несколько глобальных переменных, и importPackage не входит в их число. Вы можете увидеть полный список в коде.

Ответ Пола - это в основном правильный обходной путь, который вы просто вручную объявляете каждый дополнительный глобал, который вы используете. Этот код аккуратно передает JSLint:

/*global importPackage, Packages */
importPackage(Packages.org.raj.test);
var test = "123";
person peterflynn    schedule 24.04.2013