Проблема с closure-compiler в расширеном режиме
вломы его качать так что юзаю эту версию http://closure-compiler.appspot.com/home
суть в том что когда я пихаю это в расширенном режиме то он выдает варнинг Number of warnings: 1 JSC_DETERMINISTIC_TEST: condition always evaluates to false left : number right: (Number|null) at line 21 character 8 return (array.length - 1) === iterationIndex; что мыл функция ifIterationIsLast всегда возвращает false, но это НЕ ТАК. Гугл совсем поехал в края далекие? собственно код который я сжимаю function test(name, value) { var keys = name.split('.'); keys.forEach(function (key, i) { //Последняя ли это итерация, последний ли обрабатывается ключ var iterationIsLast = ifIterationIsLast(keys, i); }); /** * Проверить последняя ли это итерация прямого обхода массива * @param {Array} array массив * @param {Number} iterationIndex индекс итерации * @returns {boolean} */ function ifIterationIsLast(array, iterationIndex) { return (array.length - 1) === iterationIndex; } } test('System.ff', 31); |
кажется разобрался number и Number не одно и то же
ожидается обект класса Number а не приметивное значение, а передаем приметивное значение, а приведения типов не делаем. просто поменял запись в jsdoc с Number на number /** * Проверить последняя ли это итерация прямого обхода массива * @param {Array} array массив * @param {number} iterationIndex индекс итерации * @returns {boolean} */ |
Почему появляются варнинги если функция вызывается без аргумента:
Вот пример: function a (arg) { if (arg) { // xxx } else { // ууу } } a(xxx); a(); И чем плох может быть такой код? |
там написано что код не делает ни чего) и это подозрительно, может вы забыли что то? строка 2 символ 0
а вообще если используешь продвинутый режим то пиши jsdoc, он без него не работает |
Цитата:
ну вот теперь делает: function a (arg) { if (arg) { alert("Привет " + arg) } else { alert("Привет юзер!"); } } a("Вася"); a(); в advanced выдаст: JSC_WRONG_ARGUMENT_COUNT: Function a: called with 0 argument(s). Function requires at least 1 argument(s) and no more than 1 argument(s). at line 9 character 0 a(); ^ я просто хотел узнать, может так писать код нельзя? :) Цитата:
|
Цитата:
Цитата:
Цитата:
В данном случае просто возьми имя параметра в квадратные скобочки и это будет означать что он не обязательный) @param {string} [arg] если просто @param {string} arg то обязательный по умолчанию все обязательные http://code.google.com/p/jsdoc-toolkit/w/list интересно а шторм всю эту байду понимает?) завтра потестю |
Цитата:
https://developers.google.com/closur...n_levels?hl=ru https://developers.google.com/closur...utorial3?hl=ru https://developers.google.com/closur...compiler?hl=en Особое внимаение обрати на инструкцию @expose, когда-нибудь пригодится. И вообще, пора уже запомнить, что в расширешенный режим GCC не нужно использовать для отдельных файлов, он предназначен только для работы с проектом |
Цитата:
и что number !== Number К тому же руководство на инглише и провести его нереально, а переводчик переводит криво. Цитата:
к тому же С ЧЕГО ТЫ ВЗЯЛ что он для этого нужен?? Вообще то можно составить "словарь" вещей которые он не будет сокращать и тогда можно грамотно сжимать разные библиотеки и делать експорт. короче я вообще не понял к чему все это умничество. п.с. годная ссылка https://developers.google.com/closur...compiler?hl=en |
Цитата:
Цитата:
А вот это уже нет: new Number(11) !== 11 Цитата:
|
Цитата:
Кстати а у гугля есть CSS сжимальщик? |
Часовой пояс GMT +3, время: 11:52. |