public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js

Summary

Maintainability
F
3 wks
Test Coverage

eval can be harmful.
Open

        return eval("(" + json + ")");

Disallow eval() (no-eval)

JavaScript's eval() function is potentially dangerous and is often misused. Using eval() on untrusted code can open a program up to several different injection attacks. The use of eval() in most contexts can be substituted for a better, alternative approach to a problem.

var obj = { x: "foo" },
    key = "x",
    value = eval("obj." + key);

Rule Details

This rule is aimed at preventing potentially dangerous, unnecessary, and slow code by disallowing the use of the eval() function. As such, it will warn whenever the eval() function is used.

Examples of incorrect code for this rule:

/*eslint no-eval: "error"*/

var obj = { x: "foo" },
    key = "x",
    value = eval("obj." + key);

(0, eval)("var a = 0");

var foo = eval;
foo("var a = 0");

// This `this` is the global object.
this.eval("var a = 0");

Example of additional incorrect code for this rule when browser environment is set to true:

/*eslint no-eval: "error"*/
/*eslint-env browser*/

window.eval("var a = 0");

Example of additional incorrect code for this rule when node environment is set to true:

/*eslint no-eval: "error"*/
/*eslint-env node*/

global.eval("var a = 0");

Examples of correct code for this rule:

/*eslint no-eval: "error"*/
/*eslint-env es6*/

var obj = { x: "foo" },
    key = "x",
    value = obj[key];

class A {
    foo() {
        // This is a user-defined method.
        this.eval("var a = 0");
    }

    eval() {
    }
}

Options

This rule has an option to allow indirect calls to eval. Indirect calls to eval are less dangerous than direct calls to eval because they cannot dynamically change the scope. Because of this, they also will not negatively impact performance to the degree of direct eval.

{
    "no-eval": ["error", {"allowIndirect": true}] // default is false
}

Example of incorrect code for this rule with the {"allowIndirect": true} option:

/*eslint no-eval: "error"*/

var obj = { x: "foo" },
    key = "x",
    value = eval("obj." + key);

Examples of correct code for this rule with the {"allowIndirect": true} option:

/*eslint no-eval: "error"*/

(0, eval)("var a = 0");

var foo = eval;
foo("var a = 0");

this.eval("var a = 0");
/*eslint no-eval: "error"*/
/*eslint-env browser*/

window.eval("var a = 0");
/*eslint no-eval: "error"*/
/*eslint-env node*/

global.eval("var a = 0");

Known Limitations

  • This rule is warning every eval() even if the eval is not global's. This behavior is in order to detect calls of direct eval. Such as:
module.exports = function(eval) {
      // If the value of this `eval` is built-in `eval` function, this is a
      // call of direct `eval`.
      eval("var a = 0");
  };
  • This rule cannot catch renaming the global object. Such as:
var foo = window;
  foo.eval("var a = 0");

Further Reading

Related Rules

File jquery.fineuploader-3.4.1.js has 3372 lines of code (exceeds 250 allowed). Consider refactoring.
Wontfix

/**
 * http://github.com/Widen/fine-uploader
 *
 * Multiple file upload component with progress-bar, drag-and-drop, support for all modern browsers.
 *
Severity: Major
Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 wk to fix

    Function UploadHandlerXhr has a Cognitive Complexity of 150 (exceeds 5 allowed). Consider refactoring.
    Open

    qq.UploadHandlerXhr = function(o, uploadCompleteCallback, logCallback) {
        "use strict";
        
        var options = o,
            uploadComplete = uploadCompleteCallback,
    Severity: Minor
    Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 3 days to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function UploadHandlerXhr has 491 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    qq.UploadHandlerXhr = function(o, uploadCompleteCallback, logCallback) {
        "use strict";
        
        var options = o,
            uploadComplete = uploadCompleteCallback,
    Severity: Major
    Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 2 days to fix

      prototype has 59 functions (exceeds 20 allowed). Consider refactoring.
      Open

      qq.FineUploaderBasic.prototype = {
          log: function(str, level) {
              if (this._options.debug && (!level || level === 'info')) {
                  qq.log('[FineUploader] ' + str);
              }
      Severity: Major
      Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 day to fix

        Function DragAndDrop has a Cognitive Complexity of 52 (exceeds 5 allowed). Consider refactoring.
        Open

        qq.DragAndDrop = function(o) {
            "use strict";
        
            var options, dz, dirPending,
                droppedFiles = [],
        Severity: Minor
        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 day to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function UploadHandlerForm has 195 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

        qq.UploadHandlerForm = function(o, uploadCompleteCallback, logCallback) {
            "use strict";
        
            var options = o,
                inputs = [],
        Severity: Major
        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 7 hrs to fix

          Function DragAndDrop has 184 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

          qq.DragAndDrop = function(o) {
              "use strict";
          
              var options, dz, dirPending,
                  droppedFiles = [],
          Severity: Major
          Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 7 hrs to fix

            Function FineUploaderBasic has 138 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

            qq.FineUploaderBasic = function(o){
                var that = this;
                this._options = {
                    debug: false,
                    button: null,
            Severity: Major
            Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 5 hrs to fix

              Function FineUploader has 137 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

              qq.FineUploader = function(o){
                  // call parent constructor
                  qq.FineUploaderBasic.apply(this, arguments);
              
                  // additional options
              Severity: Major
              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 5 hrs to fix

                Function AjaxRequestor has 136 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                qq.AjaxRequestor = function(o) {
                    "use strict";
                
                    var log, shouldParamsBeInQueryString,
                        queue = [],
                Severity: Major
                Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 5 hrs to fix

                  Function UploadHandler has 136 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                  qq.UploadHandler = function(o) {
                      "use strict";
                  
                      var queue = [],
                          options, log, dequeue, handlerImpl;
                  Severity: Major
                  Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 5 hrs to fix

                    Function obj2url has a Cognitive Complexity of 32 (exceeds 5 allowed). Consider refactoring.
                    Open

                    qq.obj2url = function(obj, temp, prefixDone){
                        "use strict";
                        /*jshint laxbreak: true*/
                         var i, len,
                             uristrings = [],
                    Severity: Minor
                    Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 4 hrs to fix

                    Cognitive Complexity

                    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                    A method's cognitive complexity is based on a few simple rules:

                    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                    • Code is considered more complex for each "break in the linear flow of the code"
                    • Code is considered more complex when "flow breaking structures are nested"

                    Further reading

                    Function UploadHandlerForm has a Cognitive Complexity of 30 (exceeds 5 allowed). Consider refactoring.
                    Open

                    qq.UploadHandlerForm = function(o, uploadCompleteCallback, logCallback) {
                        "use strict";
                    
                        var options = o,
                            inputs = [],
                    Severity: Minor
                    Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 4 hrs to fix

                    Cognitive Complexity

                    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                    A method's cognitive complexity is based on a few simple rules:

                    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                    • Code is considered more complex for each "break in the linear flow of the code"
                    • Code is considered more complex when "flow breaking structures are nested"

                    Further reading

                    `` has 34 functions (exceeds 20 allowed). Consider refactoring.
                    Open

                    qq.extend(qq.FineUploader.prototype, {
                        clearStoredFiles: function() {
                            qq.FineUploaderBasic.prototype.clearStoredFiles.apply(this, arguments);
                            this._listElement.innerHTML = "";
                        },
                    Severity: Minor
                    Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 4 hrs to fix

                      Function qq has a Cognitive Complexity of 29 (exceeds 5 allowed). Consider refactoring.
                      Open

                      var qq = function(element) {
                          "use strict";
                      
                          return {
                              hide: function() {
                      Severity: Minor
                      Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 4 hrs to fix

                      Cognitive Complexity

                      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                      A method's cognitive complexity is based on a few simple rules:

                      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                      • Code is considered more complex for each "break in the linear flow of the code"
                      • Code is considered more complex when "flow breaking structures are nested"

                      Further reading

                      Function qq has 99 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                      var qq = function(element) {
                          "use strict";
                      
                          return {
                              hide: function() {
                      Severity: Major
                      Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 3 hrs to fix

                        Function UploadDropZone has 98 lines of code (exceeds 25 allowed). Consider refactoring.
                        Open

                        qq.UploadDropZone = function(o){
                            "use strict";
                        
                            var options, element, preventDrop, dropOutsideDisabled, disposeSupport = new qq.DisposeSupport();
                        
                        
                        Severity: Major
                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 3 hrs to fix

                          Function AjaxRequestor has a Cognitive Complexity of 23 (exceeds 5 allowed). Consider refactoring.
                          Open

                          qq.AjaxRequestor = function(o) {
                              "use strict";
                          
                              var log, shouldParamsBeInQueryString,
                                  queue = [],
                          Severity: Minor
                          Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 3 hrs to fix

                          Cognitive Complexity

                          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                          A method's cognitive complexity is based on a few simple rules:

                          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                          • Code is considered more complex for each "break in the linear flow of the code"
                          • Code is considered more complex when "flow breaking structures are nested"

                          Further reading

                          Function UploadButton has 72 lines of code (exceeds 25 allowed). Consider refactoring.
                          Open

                          qq.UploadButton = function(o) {
                              "use strict";
                          
                              var input,
                                  disposeSupport = new qq.DisposeSupport(),
                          Severity: Major
                          Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 2 hrs to fix

                            Function _createUploadHandler has 58 lines of code (exceeds 25 allowed). Consider refactoring.
                            Open

                                _createUploadHandler: function(){
                                    var self = this;
                            
                                    return new qq.UploadHandler({
                                        debug: this._options.debug,
                            Severity: Major
                            Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 2 hrs to fix

                              Function _uploadFileOrBlobDataList has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
                              Open

                                  _uploadFileOrBlobDataList: function(fileOrBlobDataList){
                                      var index,
                                          validationDescriptors = this._getValidationDescriptors(fileOrBlobDataList),
                                          batchValid = this._isBatchValid(validationDescriptors);
                              
                              
                              Severity: Minor
                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 2 hrs to fix

                              Cognitive Complexity

                              Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                              A method's cognitive complexity is based on a few simple rules:

                              • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                              • Code is considered more complex for each "break in the linear flow of the code"
                              • Code is considered more complex when "flow breaking structures are nested"

                              Further reading

                              Function has a complexity of 10.
                              Open

                              qq.obj2url = function(obj, temp, prefixDone){

                              Limit Cyclomatic Complexity (complexity)

                              Cyclomatic complexity measures the number of linearly independent paths through a program's source code. This rule allows setting a cyclomatic complexity threshold.

                              function a(x) {
                                  if (true) {
                                      return x; // 1st path
                                  } else if (false) {
                                      return x+1; // 2nd path
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Rule Details

                              This rule is aimed at reducing code complexity by capping the amount of cyclomatic complexity allowed in a program. As such, it will warn when the cyclomatic complexity crosses the configured threshold (default is 20).

                              Examples of incorrect code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else if (false) {
                                      return x+1;
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Examples of correct code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else {
                                      return 4;
                                  }
                              }

                              Options

                              Optionally, you may specify a max object property:

                              "complexity": ["error", 2]

                              is equivalent to

                              "complexity": ["error", { "max": 2 }]

                              Deprecated: the object property maximum is deprecated. Please use the property max instead.

                              When Not To Use It

                              If you can't determine an appropriate complexity limit for your code, then it's best to disable this rule.

                              Further Reading

                              Related Rules

                              • [max-depth](max-depth.md)
                              • [max-len](max-len.md)
                              • [max-nested-callbacks](max-nested-callbacks.md)
                              • [max-params](max-params.md)
                              • [max-statements](max-statements.md) Source: http://eslint.org/docs/rules/

                              Function FineUploader has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
                              Open

                              qq.FineUploader = function(o){
                                  // call parent constructor
                                  qq.FineUploaderBasic.apply(this, arguments);
                              
                                  // additional options
                              Severity: Minor
                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 2 hrs to fix

                              Cognitive Complexity

                              Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                              A method's cognitive complexity is based on a few simple rules:

                              • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                              • Code is considered more complex for each "break in the linear flow of the code"
                              • Code is considered more complex when "flow breaking structures are nested"

                              Further reading

                              Function has a complexity of 9.
                              Open

                                      this._disposeSupport.attach(list, 'click', function(e){

                              Limit Cyclomatic Complexity (complexity)

                              Cyclomatic complexity measures the number of linearly independent paths through a program's source code. This rule allows setting a cyclomatic complexity threshold.

                              function a(x) {
                                  if (true) {
                                      return x; // 1st path
                                  } else if (false) {
                                      return x+1; // 2nd path
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Rule Details

                              This rule is aimed at reducing code complexity by capping the amount of cyclomatic complexity allowed in a program. As such, it will warn when the cyclomatic complexity crosses the configured threshold (default is 20).

                              Examples of incorrect code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else if (false) {
                                      return x+1;
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Examples of correct code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else {
                                      return 4;
                                  }
                              }

                              Options

                              Optionally, you may specify a max object property:

                              "complexity": ["error", 2]

                              is equivalent to

                              "complexity": ["error", { "max": 2 }]

                              Deprecated: the object property maximum is deprecated. Please use the property max instead.

                              When Not To Use It

                              If you can't determine an appropriate complexity limit for your code, then it's best to disable this rule.

                              Further Reading

                              Related Rules

                              • [max-depth](max-depth.md)
                              • [max-len](max-len.md)
                              • [max-nested-callbacks](max-nested-callbacks.md)
                              • [max-params](max-params.md)
                              • [max-statements](max-statements.md) Source: http://eslint.org/docs/rules/

                              Function 'setParamsAndGetEntityToSend' has a complexity of 9.
                              Open

                                  function setParamsAndGetEntityToSend(params, xhr, fileOrBlob, id) {

                              Limit Cyclomatic Complexity (complexity)

                              Cyclomatic complexity measures the number of linearly independent paths through a program's source code. This rule allows setting a cyclomatic complexity threshold.

                              function a(x) {
                                  if (true) {
                                      return x; // 1st path
                                  } else if (false) {
                                      return x+1; // 2nd path
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Rule Details

                              This rule is aimed at reducing code complexity by capping the amount of cyclomatic complexity allowed in a program. As such, it will warn when the cyclomatic complexity crosses the configured threshold (default is 20).

                              Examples of incorrect code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else if (false) {
                                      return x+1;
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Examples of correct code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else {
                                      return 4;
                                  }
                              }

                              Options

                              Optionally, you may specify a max object property:

                              "complexity": ["error", 2]

                              is equivalent to

                              "complexity": ["error", { "max": 2 }]

                              Deprecated: the object property maximum is deprecated. Please use the property max instead.

                              When Not To Use It

                              If you can't determine an appropriate complexity limit for your code, then it's best to disable this rule.

                              Further Reading

                              Related Rules

                              • [max-depth](max-depth.md)
                              • [max-len](max-len.md)
                              • [max-nested-callbacks](max-nested-callbacks.md)
                              • [max-params](max-params.md)
                              • [max-statements](max-statements.md) Source: http://eslint.org/docs/rules/

                              Function UploadDropZone has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
                              Open

                              qq.UploadDropZone = function(o){
                                  "use strict";
                              
                                  var options, element, preventDrop, dropOutsideDisabled, disposeSupport = new qq.DisposeSupport();
                              
                              
                              Severity: Minor
                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                              Cognitive Complexity

                              Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                              A method's cognitive complexity is based on a few simple rules:

                              • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                              • Code is considered more complex for each "break in the linear flow of the code"
                              • Code is considered more complex when "flow breaking structures are nested"

                              Further reading

                              Function has a complexity of 8.
                              Open

                              qq.isFileOrInput = function(maybeFileOrInput) {

                              Limit Cyclomatic Complexity (complexity)

                              Cyclomatic complexity measures the number of linearly independent paths through a program's source code. This rule allows setting a cyclomatic complexity threshold.

                              function a(x) {
                                  if (true) {
                                      return x; // 1st path
                                  } else if (false) {
                                      return x+1; // 2nd path
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Rule Details

                              This rule is aimed at reducing code complexity by capping the amount of cyclomatic complexity allowed in a program. As such, it will warn when the cyclomatic complexity crosses the configured threshold (default is 20).

                              Examples of incorrect code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else if (false) {
                                      return x+1;
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Examples of correct code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else {
                                      return 4;
                                  }
                              }

                              Options

                              Optionally, you may specify a max object property:

                              "complexity": ["error", 2]

                              is equivalent to

                              "complexity": ["error", { "max": 2 }]

                              Deprecated: the object property maximum is deprecated. Please use the property max instead.

                              When Not To Use It

                              If you can't determine an appropriate complexity limit for your code, then it's best to disable this rule.

                              Further Reading

                              Related Rules

                              • [max-depth](max-depth.md)
                              • [max-len](max-len.md)
                              • [max-nested-callbacks](max-nested-callbacks.md)
                              • [max-params](max-params.md)
                              • [max-statements](max-statements.md) Source: http://eslint.org/docs/rules/

                              Method '_controlFailureTextDisplay' has a complexity of 8.
                              Open

                                  _controlFailureTextDisplay: function(item, response) {

                              Limit Cyclomatic Complexity (complexity)

                              Cyclomatic complexity measures the number of linearly independent paths through a program's source code. This rule allows setting a cyclomatic complexity threshold.

                              function a(x) {
                                  if (true) {
                                      return x; // 1st path
                                  } else if (false) {
                                      return x+1; // 2nd path
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Rule Details

                              This rule is aimed at reducing code complexity by capping the amount of cyclomatic complexity allowed in a program. As such, it will warn when the cyclomatic complexity crosses the configured threshold (default is 20).

                              Examples of incorrect code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else if (false) {
                                      return x+1;
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Examples of correct code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else {
                                      return 4;
                                  }
                              }

                              Options

                              Optionally, you may specify a max object property:

                              "complexity": ["error", 2]

                              is equivalent to

                              "complexity": ["error", { "max": 2 }]

                              Deprecated: the object property maximum is deprecated. Please use the property max instead.

                              When Not To Use It

                              If you can't determine an appropriate complexity limit for your code, then it's best to disable this rule.

                              Further Reading

                              Related Rules

                              • [max-depth](max-depth.md)
                              • [max-len](max-len.md)
                              • [max-nested-callbacks](max-nested-callbacks.md)
                              • [max-params](max-params.md)
                              • [max-statements](max-statements.md) Source: http://eslint.org/docs/rules/

                              Function has a complexity of 8.
                              Open

                              qq.FineUploader = function(o){

                              Limit Cyclomatic Complexity (complexity)

                              Cyclomatic complexity measures the number of linearly independent paths through a program's source code. This rule allows setting a cyclomatic complexity threshold.

                              function a(x) {
                                  if (true) {
                                      return x; // 1st path
                                  } else if (false) {
                                      return x+1; // 2nd path
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Rule Details

                              This rule is aimed at reducing code complexity by capping the amount of cyclomatic complexity allowed in a program. As such, it will warn when the cyclomatic complexity crosses the configured threshold (default is 20).

                              Examples of incorrect code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else if (false) {
                                      return x+1;
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Examples of correct code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else {
                                      return 4;
                                  }
                              }

                              Options

                              Optionally, you may specify a max object property:

                              "complexity": ["error", 2]

                              is equivalent to

                              "complexity": ["error", { "max": 2 }]

                              Deprecated: the object property maximum is deprecated. Please use the property max instead.

                              When Not To Use It

                              If you can't determine an appropriate complexity limit for your code, then it's best to disable this rule.

                              Further Reading

                              Related Rules

                              • [max-depth](max-depth.md)
                              • [max-len](max-len.md)
                              • [max-nested-callbacks](max-nested-callbacks.md)
                              • [max-params](max-params.md)
                              • [max-statements](max-statements.md) Source: http://eslint.org/docs/rules/

                              Method '_onComplete' has a complexity of 8.
                              Open

                                  _onComplete: function(id, name, result, xhr){

                              Limit Cyclomatic Complexity (complexity)

                              Cyclomatic complexity measures the number of linearly independent paths through a program's source code. This rule allows setting a cyclomatic complexity threshold.

                              function a(x) {
                                  if (true) {
                                      return x; // 1st path
                                  } else if (false) {
                                      return x+1; // 2nd path
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Rule Details

                              This rule is aimed at reducing code complexity by capping the amount of cyclomatic complexity allowed in a program. As such, it will warn when the cyclomatic complexity crosses the configured threshold (default is 20).

                              Examples of incorrect code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else if (false) {
                                      return x+1;
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Examples of correct code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else {
                                      return 4;
                                  }
                              }

                              Options

                              Optionally, you may specify a max object property:

                              "complexity": ["error", 2]

                              is equivalent to

                              "complexity": ["error", { "max": 2 }]

                              Deprecated: the object property maximum is deprecated. Please use the property max instead.

                              When Not To Use It

                              If you can't determine an appropriate complexity limit for your code, then it's best to disable this rule.

                              Further Reading

                              Related Rules

                              • [max-depth](max-depth.md)
                              • [max-len](max-len.md)
                              • [max-nested-callbacks](max-nested-callbacks.md)
                              • [max-params](max-params.md)
                              • [max-statements](max-statements.md) Source: http://eslint.org/docs/rules/

                              Function has too many statements (32). Maximum allowed is 30.
                              Open

                              qq.UploadHandlerXhr = function(o, uploadCompleteCallback, logCallback) {

                              enforce a maximum number of statements allowed in function blocks (max-statements)

                              The max-statements rule allows you to specify the maximum number of statements allowed in a function.

                              function foo() {
                                var bar = 1; // one statement
                                var baz = 2; // two statements
                                var qux = 3; // three statements
                              }

                              Rule Details

                              This rule enforces a maximum number of statements allowed in function blocks.

                              Options

                              This rule has a number or object option:

                              • "max" (default 10) enforces a maximum number of statements allows in function blocks

                              Deprecated: The object property maximum is deprecated; please use the object property max instead.

                              This rule has an object option:

                              • "ignoreTopLevelFunctions": true ignores top-level functions

                              max

                              Examples of incorrect code for this rule with the default { "max": 10 } option:

                              /*eslint max-statements: ["error", 10]*/
                              /*eslint-env es6*/
                              
                              function foo() {
                                var foo1 = 1;
                                var foo2 = 2;
                                var foo3 = 3;
                                var foo4 = 4;
                                var foo5 = 5;
                                var foo6 = 6;
                                var foo7 = 7;
                                var foo8 = 8;
                                var foo9 = 9;
                                var foo10 = 10;
                              
                                var foo11 = 11; // Too many.
                              }
                              
                              let foo = () => {
                                var foo1 = 1;
                                var foo2 = 2;
                                var foo3 = 3;
                                var foo4 = 4;
                                var foo5 = 5;
                                var foo6 = 6;
                                var foo7 = 7;
                                var foo8 = 8;
                                var foo9 = 9;
                                var foo10 = 10;
                              
                                var foo11 = 11; // Too many.
                              };

                              Examples of correct code for this rule with the default { "max": 10 } option:

                              /*eslint max-statements: ["error", 10]*/
                              /*eslint-env es6*/
                              
                              function foo() {
                                var foo1 = 1;
                                var foo2 = 2;
                                var foo3 = 3;
                                var foo4 = 4;
                                var foo5 = 5;
                                var foo6 = 6;
                                var foo7 = 7;
                                var foo8 = 8;
                                var foo9 = 9;
                                var foo10 = 10;
                                return function () {
                              
                                  // The number of statements in the inner function does not count toward the
                                  // statement maximum.
                              
                                  return 42;
                                };
                              }
                              
                              let foo = () => {
                                var foo1 = 1;
                                var foo2 = 2;
                                var foo3 = 3;
                                var foo4 = 4;
                                var foo5 = 5;
                                var foo6 = 6;
                                var foo7 = 7;
                                var foo8 = 8;
                                var foo9 = 9;
                                var foo10 = 10;
                                return function () {
                              
                                  // The number of statements in the inner function does not count toward the
                                  // statement maximum.
                              
                                  return 42;
                                };
                              }

                              ignoreTopLevelFunctions

                              Examples of additional correct code for this rule with the { "max": 10 }, { "ignoreTopLevelFunctions": true } options:

                              /*eslint max-statements: ["error", 10, { "ignoreTopLevelFunctions": true }]*/
                              
                              function foo() {
                                var foo1 = 1;
                                var foo2 = 2;
                                var foo3 = 3;
                                var foo4 = 4;
                                var foo5 = 5;
                                var foo6 = 6;
                                var foo7 = 7;
                                var foo8 = 8;
                                var foo9 = 9;
                                var foo10 = 10;
                                var foo11 = 11;
                              }

                              Related Rules

                              • [complexity](complexity.md)
                              • [max-depth](max-depth.md)
                              • [max-len](max-len.md)
                              • [max-nested-callbacks](max-nested-callbacks.md)
                              • [max-params](max-params.md) Source: http://eslint.org/docs/rules/

                              Function 'handleDataTransfer' has a complexity of 7.
                              Open

                                  function handleDataTransfer(dataTransfer) {

                              Limit Cyclomatic Complexity (complexity)

                              Cyclomatic complexity measures the number of linearly independent paths through a program's source code. This rule allows setting a cyclomatic complexity threshold.

                              function a(x) {
                                  if (true) {
                                      return x; // 1st path
                                  } else if (false) {
                                      return x+1; // 2nd path
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Rule Details

                              This rule is aimed at reducing code complexity by capping the amount of cyclomatic complexity allowed in a program. As such, it will warn when the cyclomatic complexity crosses the configured threshold (default is 20).

                              Examples of incorrect code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else if (false) {
                                      return x+1;
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Examples of correct code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else {
                                      return 4;
                                  }
                              }

                              Options

                              Optionally, you may specify a max object property:

                              "complexity": ["error", 2]

                              is equivalent to

                              "complexity": ["error", { "max": 2 }]

                              Deprecated: the object property maximum is deprecated. Please use the property max instead.

                              When Not To Use It

                              If you can't determine an appropriate complexity limit for your code, then it's best to disable this rule.

                              Further Reading

                              Related Rules

                              • [max-depth](max-depth.md)
                              • [max-len](max-len.md)
                              • [max-nested-callbacks](max-nested-callbacks.md)
                              • [max-params](max-params.md)
                              • [max-statements](max-statements.md) Source: http://eslint.org/docs/rules/

                              Function 'handleFileChunkingUpload' has a complexity of 7.
                              Open

                                  function handleFileChunkingUpload(id, retry) {

                              Limit Cyclomatic Complexity (complexity)

                              Cyclomatic complexity measures the number of linearly independent paths through a program's source code. This rule allows setting a cyclomatic complexity threshold.

                              function a(x) {
                                  if (true) {
                                      return x; // 1st path
                                  } else if (false) {
                                      return x+1; // 2nd path
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Rule Details

                              This rule is aimed at reducing code complexity by capping the amount of cyclomatic complexity allowed in a program. As such, it will warn when the cyclomatic complexity crosses the configured threshold (default is 20).

                              Examples of incorrect code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else if (false) {
                                      return x+1;
                                  } else {
                                      return 4; // 3rd path
                                  }
                              }

                              Examples of correct code for a maximum of 2:

                              /*eslint complexity: ["error", 2]*/
                              
                              function a(x) {
                                  if (true) {
                                      return x;
                                  } else {
                                      return 4;
                                  }
                              }

                              Options

                              Optionally, you may specify a max object property:

                              "complexity": ["error", 2]

                              is equivalent to

                              "complexity": ["error", { "max": 2 }]

                              Deprecated: the object property maximum is deprecated. Please use the property max instead.

                              When Not To Use It

                              If you can't determine an appropriate complexity limit for your code, then it's best to disable this rule.

                              Further Reading

                              Related Rules

                              • [max-depth](max-depth.md)
                              • [max-len](max-len.md)
                              • [max-nested-callbacks](max-nested-callbacks.md)
                              • [max-params](max-params.md)
                              • [max-statements](max-statements.md) Source: http://eslint.org/docs/rules/

                              Function obj2url has 43 lines of code (exceeds 25 allowed). Consider refactoring.
                              Open

                              qq.obj2url = function(obj, temp, prefixDone){
                                  "use strict";
                                  /*jshint laxbreak: true*/
                                   var i, len,
                                       uristrings = [],
                              Severity: Minor
                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                Function _setupDragAndDrop has 42 lines of code (exceeds 25 allowed). Consider refactoring.
                                Open

                                    _setupDragAndDrop: function() {
                                        var self = this,
                                            dropProcessingEl = this._find(this._element, 'dropProcessing'),
                                            dnd, preventSelectFiles, defaultDropAreaEl;
                                
                                
                                Severity: Minor
                                Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                  Function attachEvents has 41 lines of code (exceeds 25 allowed). Consider refactoring.
                                  Open

                                      function attachEvents(){
                                          disposeSupport.attach(element, 'dragover', function(e){
                                              if (!isValidFileDrag(e)) {
                                                  return;
                                              }
                                  Severity: Minor
                                  Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                    Function createInput has 40 lines of code (exceeds 25 allowed). Consider refactoring.
                                    Open

                                        function createInput() {
                                            var input = document.createElement("input");
                                    
                                            if (options.multiple){
                                                input.setAttribute("multiple", "multiple");
                                    Severity: Minor
                                    Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                      Function isFileOrInput has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
                                      Open

                                      qq.isFileOrInput = function(maybeFileOrInput) {
                                          "use strict";
                                          if (qq.isBlob(maybeFileOrInput) && window.File && maybeFileOrInput instanceof File) {
                                              return true;
                                          }
                                      Severity: Minor
                                      Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                      Cognitive Complexity

                                      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                      A method's cognitive complexity is based on a few simple rules:

                                      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                      • Code is considered more complex for each "break in the linear flow of the code"
                                      • Code is considered more complex when "flow breaking structures are nested"

                                      Further reading

                                      Function UploadHandler has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
                                      Open

                                      qq.UploadHandler = function(o) {
                                          "use strict";
                                      
                                          var queue = [],
                                              options, log, dequeue, handlerImpl;
                                      Severity: Minor
                                      Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                      Cognitive Complexity

                                      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                      A method's cognitive complexity is based on a few simple rules:

                                      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                      • Code is considered more complex for each "break in the linear flow of the code"
                                      • Code is considered more complex when "flow breaking structures are nested"

                                      Further reading

                                      Function _onComplete has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
                                      Open

                                          _onComplete: function(id, name, result, xhr){
                                              qq.FineUploaderBasic.prototype._onComplete.apply(this, arguments);
                                      
                                              var item = this.getItemByFileId(id);
                                      
                                      
                                      Severity: Minor
                                      Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                      Cognitive Complexity

                                      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                      A method's cognitive complexity is based on a few simple rules:

                                      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                      • Code is considered more complex for each "break in the linear flow of the code"
                                      • Code is considered more complex when "flow breaking structures are nested"

                                      Further reading

                                      Function PasteSupport has 37 lines of code (exceeds 25 allowed). Consider refactoring.
                                      Open

                                      qq.PasteSupport = function(o) {
                                          "use strict";
                                      
                                          var options, detachPasteHandler;
                                      
                                      
                                      Severity: Minor
                                      Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                        Function _controlFailureTextDisplay has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
                                        Open

                                            _controlFailureTextDisplay: function(item, response) {
                                                var mode, maxChars, responseProperty, failureReason, shortFailureReason;
                                        
                                                mode = this._options.failedUploadTextDisplay.mode;
                                                maxChars = this._options.failedUploadTextDisplay.maxChars;
                                        Severity: Minor
                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                        Cognitive Complexity

                                        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                        A method's cognitive complexity is based on a few simple rules:

                                        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                        • Code is considered more complex for each "break in the linear flow of the code"
                                        • Code is considered more complex when "flow breaking structures are nested"

                                        Further reading

                                        Function setupDragDrop has 35 lines of code (exceeds 25 allowed). Consider refactoring.
                                        Open

                                            function setupDragDrop(){
                                                if (options.dropArea) {
                                                    options.extraDropzones.push(options.dropArea);
                                                }
                                        
                                        
                                        Severity: Minor
                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                          Function handleDataTransfer has 34 lines of code (exceeds 25 allowed). Consider refactoring.
                                          Open

                                              function handleDataTransfer(dataTransfer) {
                                                  var i, items, entry;
                                          
                                                  options.callbacks.dropProcessing(true);
                                                  dz.dropDisabled(true);
                                          Severity: Minor
                                          Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                            Function DeleteFileAjaxRequestor has 34 lines of code (exceeds 25 allowed). Consider refactoring.
                                            Open

                                            qq.DeleteFileAjaxRequestor = function(o) {
                                                "use strict";
                                            
                                                var requestor,
                                                    options = {
                                            Severity: Minor
                                            Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                              Function Promise has 33 lines of code (exceeds 25 allowed). Consider refactoring.
                                              Open

                                              qq.Promise = function() {
                                                  "use strict";
                                              
                                                  var successValue, failureValue,
                                                      successCallback, failureCallback,
                                              Severity: Minor
                                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                                Function setParamsAndGetEntityToSend has 32 lines of code (exceeds 25 allowed). Consider refactoring.
                                                Open

                                                    function setParamsAndGetEntityToSend(params, xhr, fileOrBlob, id) {
                                                        var formData = new FormData(),
                                                            method = options.demoMode ? "GET" : "POST",
                                                            endpoint = options.endpointStore.getEndpoint(id),
                                                            url = endpoint,
                                                Severity: Minor
                                                Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                                  Function registerPostMessageCallback has 32 lines of code (exceeds 25 allowed). Consider refactoring.
                                                  Open

                                                      function registerPostMessageCallback(iframe, callback) {
                                                          var id = iframe.id;
                                                  
                                                          onloadCallbacks[uuids[id]] = callback;
                                                  
                                                  
                                                  Severity: Minor
                                                  Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                                    Function uploadNextChunk has 30 lines of code (exceeds 25 allowed). Consider refactoring.
                                                    Open

                                                        function uploadNextChunk(id) {
                                                            var chunkIdx = fileState[id].remainingChunkIdxs[0],
                                                                chunkData = getChunkData(id, chunkIdx),
                                                                xhr = createXhr(id),
                                                                size = api.getSize(id),
                                                    Severity: Minor
                                                    Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                                      Function _onComplete has 29 lines of code (exceeds 25 allowed). Consider refactoring.
                                                      Open

                                                          _onComplete: function(id, name, result, xhr){
                                                              qq.FineUploaderBasic.prototype._onComplete.apply(this, arguments);
                                                      
                                                              var item = this.getItemByFileId(id);
                                                      
                                                      
                                                      Severity: Minor
                                                      Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                                        Function upload has 29 lines of code (exceeds 25 allowed). Consider refactoring.
                                                        Open

                                                                upload: function(id){
                                                                    var input = inputs[id],
                                                                        fileName = api.getName(id),
                                                                        iframe = createIframe(id),
                                                                        form;
                                                        Severity: Minor
                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                                          Function each has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
                                                          Open

                                                          qq.each = function(obj, callback) {
                                                              "use strict";
                                                              var key, retVal;
                                                              if (obj) {
                                                                  for (key in obj) {
                                                          Severity: Minor
                                                          Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                                          Cognitive Complexity

                                                          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                          A method's cognitive complexity is based on a few simple rules:

                                                          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                          • Code is considered more complex for each "break in the linear flow of the code"
                                                          • Code is considered more complex when "flow breaking structures are nested"

                                                          Further reading

                                                          Function WindowReceiveMessage has 26 lines of code (exceeds 25 allowed). Consider refactoring.
                                                          Open

                                                          qq.WindowReceiveMessage = function(o) {
                                                              var options = {
                                                                      log: function(message, level) {}
                                                                  },
                                                                  callbackWrapperDetachers = {};
                                                          Severity: Minor
                                                          Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                                            Function _controlFailureTextDisplay has 26 lines of code (exceeds 25 allowed). Consider refactoring.
                                                            Open

                                                                _controlFailureTextDisplay: function(item, response) {
                                                                    var mode, maxChars, responseProperty, failureReason, shortFailureReason;
                                                            
                                                                    mode = this._options.failedUploadTextDisplay.mode;
                                                                    maxChars = this._options.failedUploadTextDisplay.maxChars;
                                                            Severity: Minor
                                                            Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 1 hr to fix

                                                              Function addFiles has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
                                                              Open

                                                                  addFiles: function(filesBlobDataOrInputs) {
                                                                      var self = this,
                                                                          verifiedFilesOrInputs = [],
                                                                          index, fileOrInput;
                                                              
                                                              
                                                              Severity: Minor
                                                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 55 mins to fix

                                                              Cognitive Complexity

                                                              Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                              A method's cognitive complexity is based on a few simple rules:

                                                              • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                              • Code is considered more complex for each "break in the linear flow of the code"
                                                              • Code is considered more complex when "flow breaking structures are nested"

                                                              Further reading

                                                              Function log has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
                                                              Open

                                                              qq.log = function(message, level) {
                                                                  "use strict";
                                                              
                                                                  if (window.console) {
                                                                      if (!level || level === 'info') {
                                                              Severity: Minor
                                                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 55 mins to fix

                                                              Cognitive Complexity

                                                              Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                              A method's cognitive complexity is based on a few simple rules:

                                                              • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                              • Code is considered more complex for each "break in the linear flow of the code"
                                                              • Code is considered more complex when "flow breaking structures are nested"

                                                              Further reading

                                                              Function Promise has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
                                                              Open

                                                              qq.Promise = function() {
                                                                  "use strict";
                                                              
                                                                  var successValue, failureValue,
                                                                      successCallback, failureCallback,
                                                              Severity: Minor
                                                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 45 mins to fix

                                                              Cognitive Complexity

                                                              Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                              A method's cognitive complexity is based on a few simple rules:

                                                              • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                              • Code is considered more complex for each "break in the linear flow of the code"
                                                              • Code is considered more complex when "flow breaking structures are nested"

                                                              Further reading

                                                              Function _parseFileOrBlobDataName has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
                                                              Open

                                                                  _parseFileOrBlobDataName: function(fileOrBlobData) {
                                                                      var name;
                                                              
                                                                      if (qq.isFileOrInput(fileOrBlobData)) {
                                                                          if (fileOrBlobData.value) {
                                                              Severity: Minor
                                                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 45 mins to fix

                                                              Cognitive Complexity

                                                              Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                              A method's cognitive complexity is based on a few simple rules:

                                                              • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                              • Code is considered more complex for each "break in the linear flow of the code"
                                                              • Code is considered more complex when "flow breaking structures are nested"

                                                              Further reading

                                                              Function UploadButton has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
                                                              Open

                                                              qq.UploadButton = function(o) {
                                                                  "use strict";
                                                              
                                                                  var input,
                                                                      disposeSupport = new qq.DisposeSupport(),
                                                              Severity: Minor
                                                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 45 mins to fix

                                                              Cognitive Complexity

                                                              Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                              A method's cognitive complexity is based on a few simple rules:

                                                              • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                              • Code is considered more complex for each "break in the linear flow of the code"
                                                              • Code is considered more complex when "flow breaking structures are nested"

                                                              Further reading

                                                              Function _onSubmitDelete has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
                                                              Open

                                                                  _onSubmitDelete: function(id) {
                                                                      if (this._isDeletePossible()) {
                                                                          if (this._options.callbacks.onSubmitDelete(id) !== false) {
                                                                              if (this._options.deleteFile.forceConfirm) {
                                                                                  this._showDeleteConfirm(id);
                                                              Severity: Minor
                                                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 45 mins to fix

                                                              Cognitive Complexity

                                                              Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                              A method's cognitive complexity is based on a few simple rules:

                                                              • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                              • Code is considered more complex for each "break in the linear flow of the code"
                                                              • Code is considered more complex when "flow breaking structures are nested"

                                                              Further reading

                                                              Function WindowReceiveMessage has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
                                                              Open

                                                              qq.WindowReceiveMessage = function(o) {
                                                                  var options = {
                                                                          log: function(message, level) {}
                                                                      },
                                                                      callbackWrapperDetachers = {};
                                                              Severity: Minor
                                                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 45 mins to fix

                                                              Cognitive Complexity

                                                              Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                              A method's cognitive complexity is based on a few simple rules:

                                                              • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                              • Code is considered more complex for each "break in the linear flow of the code"
                                                              • Code is considered more complex when "flow breaking structures are nested"

                                                              Further reading

                                                              Avoid deeply nested control flow statements.
                                                              Open

                                                                                      if (this._options.validation.stopOnFirstInvalidFile){
                                                                                          return;
                                                                                      }
                                                              Severity: Major
                                                              Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 45 mins to fix

                                                                Avoid deeply nested control flow statements.
                                                                Open

                                                                                        if (entry.isFile) {
                                                                                            droppedFiles.push(items[i].getAsFile());
                                                                                            if (i === items.length-1) {
                                                                                                maybeUploadDroppedFiles();
                                                                                            }
                                                                Severity: Major
                                                                Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 45 mins to fix

                                                                  Function _onBeforeManualRetry has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
                                                                  Open

                                                                      _onBeforeManualRetry: function(id) {
                                                                          var itemLimit = this._options.validation.itemLimit;
                                                                  
                                                                          if (this._preventRetries[id]) {
                                                                              this.log("Retries are forbidden for id " + id, 'warn');
                                                                  Severity: Minor
                                                                  Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 35 mins to fix

                                                                  Cognitive Complexity

                                                                  Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                                  A method's cognitive complexity is based on a few simple rules:

                                                                  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                                  • Code is considered more complex for each "break in the linear flow of the code"
                                                                  • Code is considered more complex when "flow breaking structures are nested"

                                                                  Further reading

                                                                  Function _maybeParseAndSendUploadError has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
                                                                  Open

                                                                      _maybeParseAndSendUploadError: function(id, name, response, xhr) {
                                                                          //assuming no one will actually set the response code to something other than 200 and still set 'success' to true
                                                                          if (!response.success){
                                                                              if (xhr && xhr.status !== 200 && !response.error) {
                                                                                  this._options.callbacks.onError(id, name, "XHR returned response code " + xhr.status, xhr);
                                                                  Severity: Minor
                                                                  Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 35 mins to fix

                                                                  Cognitive Complexity

                                                                  Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                                  A method's cognitive complexity is based on a few simple rules:

                                                                  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                                  • Code is considered more complex for each "break in the linear flow of the code"
                                                                  • Code is considered more complex when "flow breaking structures are nested"

                                                                  Further reading

                                                                  Function _parseFileOrBlobDataSize has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
                                                                  Open

                                                                      _parseFileOrBlobDataSize: function(fileOrBlobData) {
                                                                          var size;
                                                                  
                                                                          if (qq.isFileOrInput(fileOrBlobData)) {
                                                                              if (!fileOrBlobData.value){
                                                                  Severity: Minor
                                                                  Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 35 mins to fix

                                                                  Cognitive Complexity

                                                                  Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                                  A method's cognitive complexity is based on a few simple rules:

                                                                  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                                  • Code is considered more complex for each "break in the linear flow of the code"
                                                                  • Code is considered more complex when "flow breaking structures are nested"

                                                                  Further reading

                                                                  Function indexOf has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
                                                                  Open

                                                                  qq.indexOf = function(arr, elt, from){
                                                                      "use strict";
                                                                  
                                                                      if (arr.indexOf) {
                                                                          return arr.indexOf(elt, from);
                                                                  Severity: Minor
                                                                  Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 35 mins to fix

                                                                  Cognitive Complexity

                                                                  Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                                  A method's cognitive complexity is based on a few simple rules:

                                                                  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                                  • Code is considered more complex for each "break in the linear flow of the code"
                                                                  • Code is considered more complex when "flow breaking structures are nested"

                                                                  Further reading

                                                                  Function extend has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
                                                                  Open

                                                                  qq.extend = function (first, second, extendNested) {
                                                                      "use strict";
                                                                      qq.each(second, function(prop, val) {
                                                                          if (extendNested && qq.isObject(val)) {
                                                                              if (first[prop] === undefined) {
                                                                  Severity: Minor
                                                                  Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 35 mins to fix

                                                                  Cognitive Complexity

                                                                  Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                                  A method's cognitive complexity is based on a few simple rules:

                                                                  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                                  • Code is considered more complex for each "break in the linear flow of the code"
                                                                  • Code is considered more complex when "flow breaking structures are nested"

                                                                  Further reading

                                                                  Avoid too many return statements within this function.
                                                                  Open

                                                                              return false;
                                                                  Severity: Major
                                                                  Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 30 mins to fix

                                                                    Avoid too many return statements within this function.
                                                                    Open

                                                                                return false;
                                                                    Severity: Major
                                                                    Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 30 mins to fix

                                                                      Avoid too many return statements within this function.
                                                                      Open

                                                                              return true;
                                                                      Severity: Major
                                                                      Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 30 mins to fix

                                                                        Function _validateFileOrBlobData has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                                                                        Open

                                                                            _validateFileOrBlobData: function(fileOrBlobData){
                                                                                var validationDescriptor, name, size;
                                                                        
                                                                                validationDescriptor = this._getValidationDescriptor(fileOrBlobData);
                                                                                name = validationDescriptor.name;
                                                                        Severity: Minor
                                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 25 mins to fix

                                                                        Cognitive Complexity

                                                                        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                                        A method's cognitive complexity is based on a few simple rules:

                                                                        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                                        • Code is considered more complex for each "break in the linear flow of the code"
                                                                        • Code is considered more complex when "flow breaking structures are nested"

                                                                        Further reading

                                                                        Function _setupDragAndDrop has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                                                                        Open

                                                                            _setupDragAndDrop: function() {
                                                                                var self = this,
                                                                                    dropProcessingEl = this._find(this._element, 'dropProcessing'),
                                                                                    dnd, preventSelectFiles, defaultDropAreaEl;
                                                                        
                                                                        
                                                                        Severity: Minor
                                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js - About 25 mins to fix

                                                                        Cognitive Complexity

                                                                        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                                                                        A method's cognitive complexity is based on a few simple rules:

                                                                        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                                                                        • Code is considered more complex for each "break in the linear flow of the code"
                                                                        • Code is considered more complex when "flow breaking structures are nested"

                                                                        Further reading

                                                                        Use ‘===’ to compare with ‘null’.
                                                                        Open

                                                                                if (id == null) {

                                                                        Disallow Null Comparisons (no-eq-null)

                                                                        Comparing to null without a type-checking operator (== or !=), can have unintended results as the comparison will evaluate to true when comparing to not just a null, but also an undefined value.

                                                                        if (foo == null) {
                                                                          bar();
                                                                        }

                                                                        Rule Details

                                                                        The no-eq-null rule aims reduce potential bug and unwanted behavior by ensuring that comparisons to null only match null, and not also undefined. As such it will flag comparisons to null when using == and !=.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo == null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux != null) {
                                                                          baz();
                                                                        }

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo === null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux !== null) {
                                                                          baz();
                                                                        }

                                                                        Source: http://eslint.org/docs/rules/

                                                                        Expected '===' and instead saw '=='.
                                                                        Open

                                                                                while (c.charAt(0)==' ') {

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Use ‘===’ to compare with ‘null’.
                                                                        Open

                                                                                if (id == null) {

                                                                        Disallow Null Comparisons (no-eq-null)

                                                                        Comparing to null without a type-checking operator (== or !=), can have unintended results as the comparison will evaluate to true when comparing to not just a null, but also an undefined value.

                                                                        if (foo == null) {
                                                                          bar();
                                                                        }

                                                                        Rule Details

                                                                        The no-eq-null rule aims reduce potential bug and unwanted behavior by ensuring that comparisons to null only match null, and not also undefined. As such it will flag comparisons to null when using == and !=.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo == null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux != null) {
                                                                          baz();
                                                                        }

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo === null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux !== null) {
                                                                          baz();
                                                                        }

                                                                        Source: http://eslint.org/docs/rules/

                                                                        Use ‘===’ to compare with ‘null’.
                                                                        Open

                                                                                if (id == null) {

                                                                        Disallow Null Comparisons (no-eq-null)

                                                                        Comparing to null without a type-checking operator (== or !=), can have unintended results as the comparison will evaluate to true when comparing to not just a null, but also an undefined value.

                                                                        if (foo == null) {
                                                                          bar();
                                                                        }

                                                                        Rule Details

                                                                        The no-eq-null rule aims reduce potential bug and unwanted behavior by ensuring that comparisons to null only match null, and not also undefined. As such it will flag comparisons to null when using == and !=.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo == null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux != null) {
                                                                          baz();
                                                                        }

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo === null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux !== null) {
                                                                          baz();
                                                                        }

                                                                        Source: http://eslint.org/docs/rules/

                                                                        Expected '===' and instead saw '=='.
                                                                        Open

                                                                                if (id == null) {

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Use ‘===’ to compare with ‘null’.
                                                                        Open

                                                                                        if (fileName.match(extRegex) != null) {

                                                                        Disallow Null Comparisons (no-eq-null)

                                                                        Comparing to null without a type-checking operator (== or !=), can have unintended results as the comparison will evaluate to true when comparing to not just a null, but also an undefined value.

                                                                        if (foo == null) {
                                                                          bar();
                                                                        }

                                                                        Rule Details

                                                                        The no-eq-null rule aims reduce potential bug and unwanted behavior by ensuring that comparisons to null only match null, and not also undefined. As such it will flag comparisons to null when using == and !=.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo == null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux != null) {
                                                                          baz();
                                                                        }

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo === null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux !== null) {
                                                                          baz();
                                                                        }

                                                                        Source: http://eslint.org/docs/rules/

                                                                        Expected '===' and instead saw '=='.
                                                                        Open

                                                                                if (name == null) {

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Don't make functions within a loop.
                                                                        Open

                                                                                    (function() {

                                                                        Disallow Functions in Loops (no-loop-func)

                                                                        Writing functions within loops tends to result in errors due to the way the function creates a closure around the loop. For example:

                                                                        for (var i = 0; i < 10; i++) {
                                                                            funcs[i] = function() {
                                                                                return i;
                                                                            };
                                                                        }

                                                                        In this case, you would expect each function created within the loop to return a different number. In reality, each function returns 10, because that was the last value of i in the scope.

                                                                        let or const mitigate this problem.

                                                                        /*eslint-env es6*/
                                                                        
                                                                        for (let i = 0; i < 10; i++) {
                                                                            funcs[i] = function() {
                                                                                return i;
                                                                            };
                                                                        }

                                                                        In this case, each function created within the loop returns a different number as expected.

                                                                        Rule Details

                                                                        This error is raised to highlight a piece of code that may not work as you expect it to and could also indicate a misunderstanding of how the language works. Your code may run without any problems if you do not fix this error, but in some situations it could behave unexpectedly.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-loop-func: "error"*/
                                                                        /*eslint-env es6*/
                                                                        
                                                                        for (var i=10; i; i--) {
                                                                            (function() { return i; })();
                                                                        }
                                                                        
                                                                        while(i) {
                                                                            var a = function() { return i; };
                                                                            a();
                                                                        }
                                                                        
                                                                        do {
                                                                            function a() { return i; };
                                                                            a();
                                                                        } while (i);
                                                                        
                                                                        let foo = 0;
                                                                        for (let i=10; i; i--) {
                                                                            // Bad, function is referencing block scoped variable in the outer scope.
                                                                            var a = function() { return foo; };
                                                                            a();
                                                                        }

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-loop-func: "error"*/
                                                                        /*eslint-env es6*/
                                                                        
                                                                        var a = function() {};
                                                                        
                                                                        for (var i=10; i; i--) {
                                                                            a();
                                                                        }
                                                                        
                                                                        for (var i=10; i; i--) {
                                                                            var a = function() {}; // OK, no references to variables in the outer scopes.
                                                                            a();
                                                                        }
                                                                        
                                                                        for (let i=10; i; i--) {
                                                                            var a = function() { return i; }; // OK, all references are referring to block scoped variables in the loop.
                                                                            a();
                                                                        }
                                                                        
                                                                        var foo = 100;
                                                                        for (let i=10; i; i--) {
                                                                            var a = function() { return foo; }; // OK, all references are referring to never modified variables.
                                                                            a();
                                                                        }
                                                                        //... no modifications of foo after this loop ...

                                                                        Source: http://eslint.org/docs/rules/

                                                                        Expected '!==' and instead saw '!='.
                                                                        Open

                                                                                        if (id != null && paramsStore[id]) {

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Expected '===' and instead saw '=='.
                                                                        Open

                                                                                var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Expected '===' and instead saw '=='.
                                                                        Open

                                                                                if (id == null) {

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Use ‘===’ to compare with ‘null’.
                                                                        Open

                                                                                if (name == null) {

                                                                        Disallow Null Comparisons (no-eq-null)

                                                                        Comparing to null without a type-checking operator (== or !=), can have unintended results as the comparison will evaluate to true when comparing to not just a null, but also an undefined value.

                                                                        if (foo == null) {
                                                                          bar();
                                                                        }

                                                                        Rule Details

                                                                        The no-eq-null rule aims reduce potential bug and unwanted behavior by ensuring that comparisons to null only match null, and not also undefined. As such it will flag comparisons to null when using == and !=.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo == null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux != null) {
                                                                          baz();
                                                                        }

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo === null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux !== null) {
                                                                          baz();
                                                                        }

                                                                        Source: http://eslint.org/docs/rules/

                                                                        Use ‘===’ to compare with ‘null’.
                                                                        Open

                                                                                if (id == null) {

                                                                        Disallow Null Comparisons (no-eq-null)

                                                                        Comparing to null without a type-checking operator (== or !=), can have unintended results as the comparison will evaluate to true when comparing to not just a null, but also an undefined value.

                                                                        if (foo == null) {
                                                                          bar();
                                                                        }

                                                                        Rule Details

                                                                        The no-eq-null rule aims reduce potential bug and unwanted behavior by ensuring that comparisons to null only match null, and not also undefined. As such it will flag comparisons to null when using == and !=.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo == null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux != null) {
                                                                          baz();
                                                                        }

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo === null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux !== null) {
                                                                          baz();
                                                                        }

                                                                        Source: http://eslint.org/docs/rules/

                                                                        'e' is already defined.
                                                                        Open

                                                                                    var e = e || window.event;

                                                                        disallow variable redeclaration (no-redeclare)

                                                                        In JavaScript, it's possible to redeclare the same variable name using var. This can lead to confusion as to where the variable is actually declared and initialized.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating variables that have multiple declarations in the same scope.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-redeclare: "error"*/
                                                                        
                                                                        var a = 3;
                                                                        var a = 10;

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-redeclare: "error"*/
                                                                        
                                                                        var a = 3;
                                                                        // ...
                                                                        a = 10;

                                                                        Options

                                                                        This rule takes one optional argument, an object with a boolean property "builtinGlobals". It defaults to false. If set to true, this rule also checks redeclaration of built-in globals, such as Object, Array, Number...

                                                                        builtinGlobals

                                                                        Examples of incorrect code for the { "builtinGlobals": true } option:

                                                                        /*eslint no-redeclare: ["error", { "builtinGlobals": true }]*/
                                                                        
                                                                        var Object = 0;

                                                                        Examples of incorrect code for the { "builtinGlobals": true } option and the browser environment:

                                                                        /*eslint no-redeclare: ["error", { "builtinGlobals": true }]*/
                                                                        /*eslint-env browser*/
                                                                        
                                                                        var top = 0;

                                                                        The browser environment has many built-in global variables (for example, top). Some of built-in global variables cannot be redeclared. Source: http://eslint.org/docs/rules/

                                                                        Use ‘===’ to compare with ‘null’.
                                                                        Open

                                                                                        if (id != null && endpointStore[id]) {

                                                                        Disallow Null Comparisons (no-eq-null)

                                                                        Comparing to null without a type-checking operator (== or !=), can have unintended results as the comparison will evaluate to true when comparing to not just a null, but also an undefined value.

                                                                        if (foo == null) {
                                                                          bar();
                                                                        }

                                                                        Rule Details

                                                                        The no-eq-null rule aims reduce potential bug and unwanted behavior by ensuring that comparisons to null only match null, and not also undefined. As such it will flag comparisons to null when using == and !=.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo == null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux != null) {
                                                                          baz();
                                                                        }

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo === null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux !== null) {
                                                                          baz();
                                                                        }

                                                                        Source: http://eslint.org/docs/rules/

                                                                        Expected '!==' and instead saw '!='.
                                                                        Open

                                                                                        if (id != null && endpointStore[id]) {

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Expected '===' and instead saw '=='.
                                                                        Open

                                                                                if (id == null) {

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Expected '!==' and instead saw '!='.
                                                                        Open

                                                                                        if (fileName.match(extRegex) != null) {

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        The body of a for-in should be wrapped in an if statement to filter unwanted properties from the prototype.
                                                                        Open

                                                                                for (var prop in this._options.callbacks) {

                                                                        Require Guarding for-in (guard-for-in)

                                                                        Looping over objects with a for in loop will include properties that are inherited through the prototype chain. This behavior can lead to unexpected items in your for loop.

                                                                        for (key in foo) {
                                                                            doSomething(key);
                                                                        }

                                                                        Note that simply checking foo.hasOwnProperty(key) is likely to cause an error in some cases; see [no-prototype-builtins](no-prototype-builtins.md).

                                                                        Rule Details

                                                                        This rule is aimed at preventing unexpected behavior that could arise from using a for in loop without filtering the results in the loop. As such, it will warn when for in loops do not filter their results with an if statement.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint guard-for-in: "error"*/
                                                                        
                                                                        for (key in foo) {
                                                                            doSomething(key);
                                                                        }

                                                                        Examples of correct code for this rule:

                                                                        /*eslint guard-for-in: "error"*/
                                                                        
                                                                        for (key in foo) {
                                                                            if (Object.prototype.hasOwnProperty.call(foo, key)) {
                                                                                doSomething(key);
                                                                            }
                                                                            if ({}.hasOwnProperty.call(foo, key)) {
                                                                                doSomething(key);
                                                                            }
                                                                        }

                                                                        Related Rules

                                                                        • [no-prototype-builtins](no-prototype-builtins.md)

                                                                        Further Reading

                                                                        Expected return with your callback function.
                                                                        Open

                                                                                        retVal = callback(key, obj[key]);

                                                                        Enforce Return After Callback (callback-return)

                                                                        The callback pattern is at the heart of most I/O and event-driven programming in JavaScript.

                                                                        function doSomething(err, callback) {
                                                                            if (err) {
                                                                                return callback(err);
                                                                            }
                                                                            callback();
                                                                        }

                                                                        To prevent calling the callback multiple times it is important to return anytime the callback is triggered outside of the main function body. Neglecting this technique often leads to issues where you do something more than once. For example, in the case of an HTTP request, you may try to send HTTP headers more than once leading Node.js to throw a Can't render headers after they are sent to the client. error.

                                                                        Rule Details

                                                                        This rule is aimed at ensuring that callbacks used outside of the main function block are always part-of or immediately preceding a return statement. This rule decides what is a callback based on the name of the function being called.

                                                                        Options

                                                                        The rule takes a single option - an array of possible callback names - which may include object methods. The default callback names are callback, cb, next.

                                                                        Default callback names

                                                                        Examples of incorrect code for this rule with the default ["callback", "cb", "next"] option:

                                                                        /*eslint callback-return: "error"*/
                                                                        
                                                                        function foo(err, callback) {
                                                                            if (err) {
                                                                                callback(err);
                                                                            }
                                                                            callback();
                                                                        }

                                                                        Examples of correct code for this rule with the default ["callback", "cb", "next"] option:

                                                                        /*eslint callback-return: "error"*/
                                                                        
                                                                        function foo(err, callback) {
                                                                            if (err) {
                                                                                return callback(err);
                                                                            }
                                                                            callback();
                                                                        }

                                                                        Supplied callback names

                                                                        Examples of incorrect code for this rule with the option ["done", "send.error", "send.success"]:

                                                                        /*eslint callback-return: ["error", ["done", "send.error", "send.success"]]*/
                                                                        
                                                                        function foo(err, done) {
                                                                            if (err) {
                                                                                done(err);
                                                                            }
                                                                            done();
                                                                        }
                                                                        
                                                                        function bar(err, send) {
                                                                            if (err) {
                                                                                send.error(err);
                                                                            }
                                                                            send.success();
                                                                        }

                                                                        Examples of correct code for this rule with the option ["done", "send.error", "send.success"]:

                                                                        /*eslint callback-return: ["error", ["done", "send.error", "send.success"]]*/
                                                                        
                                                                        function foo(err, done) {
                                                                            if (err) {
                                                                                return done(err);
                                                                            }
                                                                            done();
                                                                        }
                                                                        
                                                                        function bar(err, send) {
                                                                            if (err) {
                                                                                return send.error(err);
                                                                            }
                                                                            send.success();
                                                                        }

                                                                        Known Limitations

                                                                        Because it is difficult to understand the meaning of a program through static analysis, this rule has limitations:

                                                                        • false negatives when this rule reports correct code, but the program calls the callback more than one time (which is incorrect behavior)
                                                                        • false positives when this rule reports incorrect code, but the program calls the callback only one time (which is correct behavior)

                                                                        Passing the callback by reference

                                                                        The static analysis of this rule does not detect that the program calls the callback if it is an argument of a function (for example, setTimeout).

                                                                        Example of a false negative when this rule reports correct code:

                                                                        /*eslint callback-return: "error"*/
                                                                        
                                                                        function foo(err, callback) {
                                                                            if (err) {
                                                                                setTimeout(callback, 0); // this is bad, but WILL NOT warn
                                                                            }
                                                                            callback();
                                                                        }

                                                                        Triggering the callback within a nested function

                                                                        The static analysis of this rule does not detect that the program calls the callback from within a nested function or an immediately-invoked function expression (IIFE).

                                                                        Example of a false negative when this rule reports correct code:

                                                                        /*eslint callback-return: "error"*/
                                                                        
                                                                        function foo(err, callback) {
                                                                            if (err) {
                                                                                process.nextTick(function() {
                                                                                    return callback(); // this is bad, but WILL NOT warn
                                                                                });
                                                                            }
                                                                            callback();
                                                                        }

                                                                        If/else statements

                                                                        The static analysis of this rule does not detect that the program calls the callback only one time in each branch of an if statement.

                                                                        Example of a false positive when this rule reports incorrect code:

                                                                        /*eslint callback-return: "error"*/
                                                                        
                                                                        function foo(err, callback) {
                                                                            if (err) {
                                                                                callback(err); // this is fine, but WILL warn
                                                                            } else {
                                                                                callback();    // this is fine, but WILL warn
                                                                            }
                                                                        }

                                                                        When Not To Use It

                                                                        There are some cases where you might want to call a callback function more than once. In those cases this rule may lead to incorrect behavior. In those cases you may want to reserve a special name for those callbacks and not include that in the list of callbacks that trigger warnings.

                                                                        Further Reading

                                                                        Related Rules

                                                                        Expected '===' and instead saw '=='.
                                                                        Open

                                                                                if (id == null) {

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Use ‘===’ to compare with ‘null’.
                                                                        Open

                                                                                        if (id != null && paramsStore[id]) {

                                                                        Disallow Null Comparisons (no-eq-null)

                                                                        Comparing to null without a type-checking operator (== or !=), can have unintended results as the comparison will evaluate to true when comparing to not just a null, but also an undefined value.

                                                                        if (foo == null) {
                                                                          bar();
                                                                        }

                                                                        Rule Details

                                                                        The no-eq-null rule aims reduce potential bug and unwanted behavior by ensuring that comparisons to null only match null, and not also undefined. As such it will flag comparisons to null when using == and !=.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo == null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux != null) {
                                                                          baz();
                                                                        }

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo === null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux !== null) {
                                                                          baz();
                                                                        }

                                                                        Source: http://eslint.org/docs/rules/

                                                                        Unexpected alert.
                                                                        Open

                                                                                        window.alert(message);

                                                                        Disallow Use of Alert (no-alert)

                                                                        JavaScript's alert, confirm, and prompt functions are widely considered to be obtrusive as UI elements and should be replaced by a more appropriate custom UI implementation. Furthermore, alert is often used while debugging code, which should be removed before deployment to production.

                                                                        alert("here!");

                                                                        Rule Details

                                                                        This rule is aimed at catching debugging code that should be removed and popup UI elements that should be replaced with less obtrusive, custom UIs. As such, it will warn when it encounters alert, prompt, and confirm function calls which are not shadowed.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-alert: "error"*/
                                                                        
                                                                        alert("here!");
                                                                        
                                                                        confirm("Are you sure?");
                                                                        
                                                                        prompt("What's your name?", "John Doe");

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-alert: "error"*/
                                                                        
                                                                        customAlert("Something happened!");
                                                                        
                                                                        customConfirm("Are you sure?");
                                                                        
                                                                        customPrompt("Who are you?");
                                                                        
                                                                        function foo() {
                                                                            var alert = myCustomLib.customAlert;
                                                                            alert();
                                                                        }

                                                                        Related Rules

                                                                        Unexpected confirm.
                                                                        Open

                                                                                        var result = window.confirm(message);

                                                                        Disallow Use of Alert (no-alert)

                                                                        JavaScript's alert, confirm, and prompt functions are widely considered to be obtrusive as UI elements and should be replaced by a more appropriate custom UI implementation. Furthermore, alert is often used while debugging code, which should be removed before deployment to production.

                                                                        alert("here!");

                                                                        Rule Details

                                                                        This rule is aimed at catching debugging code that should be removed and popup UI elements that should be replaced with less obtrusive, custom UIs. As such, it will warn when it encounters alert, prompt, and confirm function calls which are not shadowed.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-alert: "error"*/
                                                                        
                                                                        alert("here!");
                                                                        
                                                                        confirm("Are you sure?");
                                                                        
                                                                        prompt("What's your name?", "John Doe");

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-alert: "error"*/
                                                                        
                                                                        customAlert("Something happened!");
                                                                        
                                                                        customConfirm("Are you sure?");
                                                                        
                                                                        customPrompt("Who are you?");
                                                                        
                                                                        function foo() {
                                                                            var alert = myCustomLib.customAlert;
                                                                            alert();
                                                                        }

                                                                        Related Rules

                                                                        Expected '===' and instead saw '=='.
                                                                        Open

                                                                                    if (item.qqFileId == id) return item;

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Expected '===' and instead saw '=='.
                                                                        Open

                                                                                return ((qq.chrome() || (qq.safari() && qq.windows())) && e.clientX == 0 && e.clientY == 0) // null coords for Chrome and Safari Windows

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Expected '!==' and instead saw '!='.
                                                                        Open

                                                                                        return fileOrBlob.fileSize != null ? fileOrBlob.fileSize : fileOrBlob.size;

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Expected '===' and instead saw '=='.
                                                                        Open

                                                                                                iframe.contentDocument.body.innerHTML == "false"){

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Expected '!==' and instead saw '!='.
                                                                        Open

                                                                                    if (retVal != null && qq.trimStr(retVal).length > 0) {

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Unexpected prompt.
                                                                        Open

                                                                                        retVal = window.prompt(message, defaultValue);

                                                                        Disallow Use of Alert (no-alert)

                                                                        JavaScript's alert, confirm, and prompt functions are widely considered to be obtrusive as UI elements and should be replaced by a more appropriate custom UI implementation. Furthermore, alert is often used while debugging code, which should be removed before deployment to production.

                                                                        alert("here!");

                                                                        Rule Details

                                                                        This rule is aimed at catching debugging code that should be removed and popup UI elements that should be replaced with less obtrusive, custom UIs. As such, it will warn when it encounters alert, prompt, and confirm function calls which are not shadowed.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-alert: "error"*/
                                                                        
                                                                        alert("here!");
                                                                        
                                                                        confirm("Are you sure?");
                                                                        
                                                                        prompt("What's your name?", "John Doe");

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-alert: "error"*/
                                                                        
                                                                        customAlert("Something happened!");
                                                                        
                                                                        customConfirm("Are you sure?");
                                                                        
                                                                        customPrompt("Who are you?");
                                                                        
                                                                        function foo() {
                                                                            var alert = myCustomLib.customAlert;
                                                                            alert();
                                                                        }

                                                                        Related Rules

                                                                        Use ‘===’ to compare with ‘null’.
                                                                        Open

                                                                                    if (retVal != null && qq.trimStr(retVal).length > 0) {

                                                                        Disallow Null Comparisons (no-eq-null)

                                                                        Comparing to null without a type-checking operator (== or !=), can have unintended results as the comparison will evaluate to true when comparing to not just a null, but also an undefined value.

                                                                        if (foo == null) {
                                                                          bar();
                                                                        }

                                                                        Rule Details

                                                                        The no-eq-null rule aims reduce potential bug and unwanted behavior by ensuring that comparisons to null only match null, and not also undefined. As such it will flag comparisons to null when using == and !=.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo == null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux != null) {
                                                                          baz();
                                                                        }

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo === null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux !== null) {
                                                                          baz();
                                                                        }

                                                                        Source: http://eslint.org/docs/rules/

                                                                        Expected '===' and instead saw '=='.
                                                                        Open

                                                                                return ((qq.chrome() || (qq.safari() && qq.windows())) && e.clientX == 0 && e.clientY == 0) // null coords for Chrome and Safari Windows

                                                                        Require === and !== (eqeqeq)

                                                                        It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

                                                                        The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

                                                                        • [] == false
                                                                        • [] == ![]
                                                                        • 3 == "03"

                                                                        If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

                                                                        Rule Details

                                                                        This rule is aimed at eliminating the type-unsafe equality operators.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint eqeqeq: "error"*/
                                                                        
                                                                        if (x == 42) { }
                                                                        
                                                                        if ("" == text) { }
                                                                        
                                                                        if (obj.getStuff() != undefined) { }

                                                                        The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

                                                                        Options

                                                                        always

                                                                        The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

                                                                        Examples of incorrect code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a == b
                                                                        foo == true
                                                                        bananas != 1
                                                                        value == undefined
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        Examples of correct code for the "always" option:

                                                                        /*eslint eqeqeq: ["error", "always"]*/
                                                                        
                                                                        a === b
                                                                        foo === true
                                                                        bananas !== 1
                                                                        value === undefined
                                                                        typeof foo === 'undefined'
                                                                        'hello' !== 'world'
                                                                        0 === 0
                                                                        true === true
                                                                        foo === null

                                                                        This rule optionally takes a second argument, which should be an object with the following supported properties:

                                                                        • "null": Customize how this rule treats null literals. Possible values:
                                                                          • always (default) - Always use === or !==.
                                                                          • never - Never use === or !== with null.
                                                                          • ignore - Do not apply this rule to null.

                                                                        smart

                                                                        The "smart" option enforces the use of === and !== except for these cases:

                                                                        • Comparing two literal values
                                                                        • Evaluating the value of typeof
                                                                        • Comparing against null

                                                                        Examples of incorrect code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        // comparing two variables requires ===
                                                                        a == b
                                                                        
                                                                        // only one side is a literal
                                                                        foo == true
                                                                        bananas != 1
                                                                        
                                                                        // comparing to undefined requires ===
                                                                        value == undefined

                                                                        Examples of correct code for the "smart" option:

                                                                        /*eslint eqeqeq: ["error", "smart"]*/
                                                                        
                                                                        typeof foo == 'undefined'
                                                                        'hello' != 'world'
                                                                        0 == 0
                                                                        true == true
                                                                        foo == null

                                                                        allow-null

                                                                        Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

                                                                        ["error", "always", {"null": "ignore"}]

                                                                        When Not To Use It

                                                                        If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

                                                                        Use ‘===’ to compare with ‘null’.
                                                                        Open

                                                                                        return fileOrBlob.fileSize != null ? fileOrBlob.fileSize : fileOrBlob.size;

                                                                        Disallow Null Comparisons (no-eq-null)

                                                                        Comparing to null without a type-checking operator (== or !=), can have unintended results as the comparison will evaluate to true when comparing to not just a null, but also an undefined value.

                                                                        if (foo == null) {
                                                                          bar();
                                                                        }

                                                                        Rule Details

                                                                        The no-eq-null rule aims reduce potential bug and unwanted behavior by ensuring that comparisons to null only match null, and not also undefined. As such it will flag comparisons to null when using == and !=.

                                                                        Examples of incorrect code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo == null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux != null) {
                                                                          baz();
                                                                        }

                                                                        Examples of correct code for this rule:

                                                                        /*eslint no-eq-null: "error"*/
                                                                        
                                                                        if (foo === null) {
                                                                          bar();
                                                                        }
                                                                        
                                                                        while (qux !== null) {
                                                                          baz();
                                                                        }

                                                                        Source: http://eslint.org/docs/rules/

                                                                        TODO found
                                                                        Open

                                                                        //TODO Use XDomainRequest if expectCors = true.  Not necessary now since only DELETE requests are sent and XDR doesn't support pre-flighting.

                                                                        Similar blocks of code found in 4 locations. Consider refactoring.
                                                                        Open

                                                                            setEndpoint: function(endpoint, id) {
                                                                                /*jshint eqeqeq: true, eqnull: true*/
                                                                                if (id == null) {
                                                                                    this._options.request.endpoint = endpoint;
                                                                                }
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 943..951
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 952..960
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 1097..1105

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 64.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 4 locations. Consider refactoring.
                                                                        Open

                                                                            setParams: function(params, id) {
                                                                                /*jshint eqeqeq: true, eqnull: true*/
                                                                                if (id == null) {
                                                                                    this._options.request.params = params;
                                                                                }
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 952..960
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 961..969
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 1097..1105

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 64.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 4 locations. Consider refactoring.
                                                                        Open

                                                                            setDeleteFileParams: function(params, id) {
                                                                                /*jshint eqeqeq: true, eqnull: true*/
                                                                                if (id == null) {
                                                                                    this._options.deleteFile.params = params;
                                                                                }
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 943..951
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 961..969
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 1097..1105

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 64.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 4 locations. Consider refactoring.
                                                                        Open

                                                                            setDeleteFileEndpoint: function(endpoint, id) {
                                                                                /*jshint eqeqeq: true, eqnull: true*/
                                                                                if (id == null) {
                                                                                    this._options.deleteFile.endpoint = endpoint;
                                                                                }
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 943..951
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 952..960
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 961..969

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 64.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 2 locations. Consider refactoring.
                                                                        Open

                                                                                    if (this._classes.successIcon) {
                                                                                        this._find(item, 'finished').style.display = "inline-block";
                                                                                        qq(item).addClass(this._classes.successIcon);
                                                                                    }
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 2409..2412

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 62.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 2 locations. Consider refactoring.
                                                                        Open

                                                                                    if (this._classes.failIcon) {
                                                                                        this._find(item, 'finished').style.display = "inline-block";
                                                                                        qq(item).addClass(this._classes.failIcon);
                                                                                    }
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 2403..2406

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 62.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 2 locations. Consider refactoring.
                                                                        Open

                                                                                    if (element.addEventListener){
                                                                                        element.addEventListener(type, fn, false);
                                                                                    } else if (element.attachEvent){
                                                                                        element.attachEvent('on' + type, fn);
                                                                                    }
                                                                        Severity: Minor
                                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js and 1 other location - About 50 mins to fix
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 33..37

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 52.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 2 locations. Consider refactoring.
                                                                        Open

                                                                                    if (element.removeEventListener){
                                                                                        element.removeEventListener(type, fn, false);
                                                                                    } else if (element.attachEvent){
                                                                                        element.detachEvent('on' + type, fn);
                                                                                    }
                                                                        Severity: Minor
                                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js and 1 other location - About 50 mins to fix
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 22..26

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 52.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Identical blocks of code found in 2 locations. Consider refactoring.
                                                                        Open

                                                                                    if (options.hideDropzones && qq.FineUploader.prototype._leaving_document_out(e)) {
                                                                                        for (i=0; i < dropzones.length; i+=1) {
                                                                                            qq(dropzones[i]).hide();
                                                                                        }
                                                                                    }
                                                                        Severity: Minor
                                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js and 1 other location - About 40 mins to fix
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 1901..1905

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 49.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Identical blocks of code found in 2 locations. Consider refactoring.
                                                                        Open

                                                                                    if (options.hideDropzones) {
                                                                                        for (i=0; i < dropzones.length; i+=1) {
                                                                                            qq(dropzones[i]).hide();
                                                                                        }
                                                                                    }
                                                                        Severity: Minor
                                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js and 1 other location - About 40 mins to fix
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 1894..1898

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 49.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 2 locations. Consider refactoring.
                                                                        Open

                                                                        qq.chrome   = function(){
                                                                            "use strict";
                                                                            return navigator.vendor !== undefined && navigator.vendor.indexOf('Google') !== -1;
                                                                        };
                                                                        Severity: Minor
                                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js and 1 other location - About 40 mins to fix
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 302..305

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 48.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 2 locations. Consider refactoring.
                                                                        Open

                                                                        qq.safari   = function(){
                                                                            "use strict";
                                                                            return navigator.vendor !== undefined && navigator.vendor.indexOf("Apple") !== -1;
                                                                        };
                                                                        Severity: Minor
                                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js and 1 other location - About 40 mins to fix
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 306..309

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 48.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 2 locations. Consider refactoring.
                                                                        Open

                                                                            _onCancel: function(id, name) {
                                                                                qq.FineUploaderBasic.prototype._onCancel.apply(this, arguments);
                                                                                this._removeFileItem(id);
                                                                            },
                                                                        Severity: Minor
                                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js and 1 other location - About 35 mins to fix
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 2419..2423

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 47.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 2 locations. Consider refactoring.
                                                                        Open

                                                                            _onUpload: function(id, name){
                                                                                qq.FineUploaderBasic.prototype._onUpload.apply(this, arguments);
                                                                        
                                                                                this._showSpinner(id);
                                                                            },
                                                                        Severity: Minor
                                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js and 1 other location - About 35 mins to fix
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 2424..2427

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 47.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 2 locations. Consider refactoring.
                                                                        Open

                                                                                    } else {
                                                                                        // fix missing properties in Safari 4 and firefox 11.0a2
                                                                                        name = (fileOrBlobData.fileName !== null && fileOrBlobData.fileName !== undefined) ? fileOrBlobData.fileName : fileOrBlobData.name;
                                                                                    }
                                                                        Severity: Minor
                                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js and 1 other location - About 35 mins to fix
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 1617..1620

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 46.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        Similar blocks of code found in 2 locations. Consider refactoring.
                                                                        Open

                                                                                    if (!fileOrBlobData.value){
                                                                                        // fix missing properties in Safari 4 and firefox 11.0a2
                                                                                        size = (fileOrBlobData.fileSize !== null && fileOrBlobData.fileSize !== undefined) ? fileOrBlobData.fileSize : fileOrBlobData.size;
                                                                                    }
                                                                        Severity: Minor
                                                                        Found in public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js and 1 other location - About 35 mins to fix
                                                                        public/assets/js/core/fineuploader/jquery.fineuploader-3.4.1.js on lines 1602..1605

                                                                        Duplicated Code

                                                                        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                                                        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                                                        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                                                        Tuning

                                                                        This issue has a mass of 46.

                                                                        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                                                        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                                                        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                                                        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                                                        Refactorings

                                                                        Further Reading

                                                                        There are no issues that match your filters.

                                                                        Category
                                                                        Status