javascriptjquerydebugginggoogle-closure-compiler

`Cannot instantiate non-constructior` Closure Compiler warning?


Dear folks, what should I do with these error warnings that Closure Compiler outputs? Thank you very much for your ideas and code improtements on this particular type of error:

  1. JSC_WRONG_ARGUMENT_COUNT: Function parseInt: called with 1 argument(s). Function requires at least 2 argument(s) and no more than 2 argument(s). at line 593 character 12
    if (parseInt(jQuery.browser.version) < 7) {

  2. JSC_NOT_A_CONSTRUCTOR: cannot instantiate non-constructor at line 708 character 15
    lightbox = new Lightbox(this, opts.lightbox);

  3. JSC_NOT_A_CONSTRUCTOR: cannot instantiate non-constructor at line 1265 character 19
    var scroller = new Scroller($(this), opts);


Solution

  • Number 1:
    This warning means that you passed-in the wrong number of arguments in a function call.

    Here is a better explanation

    Number 2 & 3:
    The compiler expects all constructors to be marked with the JSDoc tag @constructor, like this:

    /**
     * @constructor
     */
    function MyClass() {
      this.foo = 'bar';
    }
    var obj = new MyClass();
    alert(obj.foo);
    

    Here is a better explanation.