Это связано с тем, что JSLint
использует Pratt Parser , анализатор сверху вниз, а не полноценный интерпретатор JavaScript.
Если бы это было действительно истолковано, то это не дало бы вам этой ошибки.
add_one
является подразумеваемым глобальным, потому что синтаксический анализатор еще не сталкивался с этой переменной, поэтому он предполагает, что окружающий код будет иметь эту переменную.
Но, если вы перевернете его, то парсер уже наткнулся на переменную add_one
, и это все персики и сливки: -)
Кстати, я заметил небольшую опечатку в вашей строке функции закрытия:
}());
должно быть })();
.